From 2c2a5a25acc19ec71e7a32c9a50b24b3224c7e52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Fri, 24 May 2024 11:03:22 +0200 Subject: [PATCH 1/2] fix(core): unsupported browser redirect url MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- .../UnsupportedBrowserController.php | 4 +- core/src/views/UnsupportedBrowser.vue | 12 +- ...pps_comments_src_components_Comment_vue.js | 937 + ...comments_src_components_Comment_vue.js.map | 1 + ...nts_src_views_ActivityCommentAction_vue.js | 255 + ...src_views_ActivityCommentAction_vue.js.map | 1 + ...ents_src_views_ActivityCommentEntry_vue.js | 262 + ..._src_views_ActivityCommentEntry_vue.js.map | 1 + ...l_3csvg_20xmlns_27http_www_w3_or-753dbe.js | 18897 ++++++++++++++++ ...svg_20xmlns_27http_www_w3_or-753dbe.js.map | 1 + ...apps_files_src_views_TemplatePicker_vue.js | 996 + ..._files_src_views_TemplatePicker_vue.js.map | 1 + ...nents_AppStoreDiscover_CarouselType_vue.js | 529 + ...s_AppStoreDiscover_CarouselType_vue.js.map | 1 + ...omponents_AppStoreDiscover_PostType_vue.js | 818 + ...nents_AppStoreDiscover_PostType_vue.js.map | 1 + ...nents_AppStoreDiscover_ShowcaseType_vue.js | 597 + ...s_AppStoreDiscover_ShowcaseType_vue.js.map | 1 + ...n_src_components_AppChangelogDialog_vue.js | 642 + ...c_components_AppChangelogDialog_vue.js.map | 1 + ...e_src_components_LegacyDialogPrompt_vue.js | 316 + ...c_components_LegacyDialogPrompt_vue.js.map | 1 + ...rc_utils_RedirectUnsupportedBrowsers_js.js | 10902 +++++++++ ...tils_RedirectUnsupportedBrowsers_js.js.map | 1 + ...7_20width_2724_27_20height_2724_-567e4b.js | 1032 + ...width_2724_27_20height_2724_-567e4b.js.map | 1 + dist/federatedfilesharing-external.js | 6 + dist/federatedfilesharing-external.js.map | 1 + ..._dialogs_dist_chunks_index-CqRCpcyw_mjs.js | 44 + ...logs_dist_chunks_index-CqRCpcyw_mjs.js.map | 1 + ...dist_chunks_ConflictPicker-Bif6rCp6_mjs.js | 710 + ..._chunks_ConflictPicker-Bif6rCp6_mjs.js.map | 1 + ...st_Components_NcRichContenteditable_mjs.js | 26 + ...omponents_NcRichContenteditable_mjs.js.map | 1 + dist/settings-apps-view-settings-apps-view.js | 6005 +++++ ...ttings-apps-view-settings-apps-view.js.map | 1 + dist/settings-users-settings-users.js | 6493 ++++++ dist/settings-users-settings-users.js.map | 1 + dist/user-status-modal-user-status-modal.js | 2526 +++ ...user-status-modal-user-status-modal.js.map | 1 + 40 files changed, 52026 insertions(+), 2 deletions(-) create mode 100644 dist/apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js create mode 100644 dist/apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js.map create mode 100644 dist/apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js create mode 100644 dist/apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js.map create mode 100644 dist/apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js create mode 100644 dist/apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js.map create mode 100644 dist/apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js create mode 100644 dist/apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js.map create mode 100644 dist/apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js create mode 100644 dist/apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js.map create mode 100644 dist/apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js create mode 100644 dist/apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js.map create mode 100644 dist/apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js create mode 100644 dist/apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js.map create mode 100644 dist/apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js create mode 100644 dist/apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js.map create mode 100644 dist/apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js create mode 100644 dist/apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js.map create mode 100644 dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js create mode 100644 dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map create mode 100644 dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js create mode 100644 dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map create mode 100644 dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js create mode 100644 dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map create mode 100644 dist/federatedfilesharing-external.js create mode 100644 dist/federatedfilesharing-external.js.map create mode 100644 dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js create mode 100644 dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map create mode 100644 dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js create mode 100644 dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map create mode 100644 dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js create mode 100644 dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map create mode 100644 dist/settings-apps-view-settings-apps-view.js create mode 100644 dist/settings-apps-view-settings-apps-view.js.map create mode 100644 dist/settings-users-settings-users.js create mode 100644 dist/settings-users-settings-users.js.map create mode 100644 dist/user-status-modal-user-status-modal.js create mode 100644 dist/user-status-modal-user-status-modal.js.map diff --git a/core/Controller/UnsupportedBrowserController.php b/core/Controller/UnsupportedBrowserController.php index dfcff8df38140..0017576c18ed3 100644 --- a/core/Controller/UnsupportedBrowserController.php +++ b/core/Controller/UnsupportedBrowserController.php @@ -51,6 +51,8 @@ public function __construct(IRequest $request) { public function index(): Response { Util::addScript('core', 'unsupported-browser'); Util::addStyle('core', 'icons'); - return new TemplateResponse('core', 'unsupportedbrowser', [], TemplateResponse::RENDER_AS_ERROR); + + // not using RENDER_AS_ERROR as we need the JSConfigHelper for url generation + return new TemplateResponse('core', 'unsupportedbrowser', [], TemplateResponse::RENDER_AS_GUEST); } } diff --git a/core/src/views/UnsupportedBrowser.vue b/core/src/views/UnsupportedBrowser.vue index fbd26a669462e..7aa0346333295 100644 --- a/core/src/views/UnsupportedBrowser.vue +++ b/core/src/views/UnsupportedBrowser.vue @@ -130,12 +130,22 @@ export default { // Redirect if there is the data const urlParams = new URLSearchParams(window.location.search) if (urlParams.has('redirect_url')) { - const redirectPath = Buffer.from(urlParams.get('redirect_url'), 'base64').toString() || '/' + let redirectPath = Buffer.from(urlParams.get('redirect_url'), 'base64').toString() || '/' + + // remove index.php and double slashes + redirectPath = redirectPath + .replace('index.php', '') + .replace(getRootUrl(), '') + .replace(/\/\//g, '/') + + // if we have a valid redirect url, use it if (redirectPath.startsWith('/')) { window.location = generateUrl(redirectPath) return } } + + // else redirect to root window.location = generateUrl('/') }, diff --git a/dist/apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js b/dist/apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js new file mode 100644 index 0000000000000..804228fc79d57 --- /dev/null +++ b/dist/apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js @@ -0,0 +1,937 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue"],{ + +/***/ "./apps/comments/src/mixins/CommentMixin.js": +/*!**************************************************!*\ + !*** ./apps/comments/src/mixins/CommentMixin.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _services_NewComment_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/NewComment.js */ "./apps/comments/src/services/NewComment.js"); +/* harmony import */ var _services_DeleteComment_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/DeleteComment.js */ "./apps/comments/src/services/DeleteComment.js"); +/* harmony import */ var _services_EditComment_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../services/EditComment.js */ "./apps/comments/src/services/EditComment.js"); +/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../logger.js */ "./apps/comments/src/logger.js"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); +/** + * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + props: { + id: { + type: Number, + default: null + }, + message: { + type: String, + default: '' + }, + resourceId: { + type: [String, Number], + required: true + }, + resourceType: { + type: String, + default: 'files' + } + }, + data() { + return { + deleted: false, + editing: false, + loading: false + }; + }, + methods: { + // EDITION + onEdit() { + this.editing = true; + }, + onEditCancel() { + this.editing = false; + // Restore original value + this.updateLocalMessage(this.message); + }, + async onEditComment(message) { + this.loading = true; + try { + await (0,_services_EditComment_js__WEBPACK_IMPORTED_MODULE_3__["default"])(this.resourceType, this.resourceId, this.id, message); + _logger_js__WEBPACK_IMPORTED_MODULE_4__["default"].debug('Comment edited', { + resourceType: this.resourceType, + resourceId: this.resourceId, + id: this.id, + message + }); + this.$emit('update:message', message); + this.editing = false; + } catch (error) { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(t('comments', 'An error occurred while trying to edit the comment')); + console.error(error); + } finally { + this.loading = false; + } + }, + // DELETION + onDeleteWithUndo() { + this.deleted = true; + const timeOutDelete = setTimeout(this.onDelete, _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.TOAST_UNDO_TIMEOUT); + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showUndo)(t('comments', 'Comment deleted'), () => { + clearTimeout(timeOutDelete); + this.deleted = false; + }); + }, + async onDelete() { + try { + await (0,_services_DeleteComment_js__WEBPACK_IMPORTED_MODULE_2__["default"])(this.resourceType, this.resourceId, this.id); + _logger_js__WEBPACK_IMPORTED_MODULE_4__["default"].debug('Comment deleted', { + resourceType: this.resourceType, + resourceId: this.resourceId, + id: this.id + }); + this.$emit('delete', this.id); + } catch (error) { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(t('comments', 'An error occurred while trying to delete the comment')); + console.error(error); + this.deleted = false; + } + }, + // CREATION + async onNewComment(message) { + this.loading = true; + try { + const newComment = await (0,_services_NewComment_js__WEBPACK_IMPORTED_MODULE_1__["default"])(this.resourceType, this.resourceId, message); + _logger_js__WEBPACK_IMPORTED_MODULE_4__["default"].debug('New comment posted', { + resourceType: this.resourceType, + resourceId: this.resourceId, + newComment + }); + this.$emit('new', newComment); + + // Clear old content + this.$emit('update:message', ''); + this.localMessage = ''; + } catch (error) { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(t('comments', 'An error occurred while trying to create the comment')); + console.error(error); + } finally { + this.loading = false; + } + } + } +}); + +/***/ }), + +/***/ "./apps/comments/src/services/DeleteComment.js": +/*!*****************************************************!*\ + !*** ./apps/comments/src/services/DeleteComment.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _DavClient_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DavClient.js */ "./apps/comments/src/services/DavClient.js"); +/** + * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + + + +/** + * Delete a comment + * + * @param {string} resourceType the resource type + * @param {number} resourceId the resource ID + * @param {number} commentId the comment iD + */ +/* harmony default export */ async function __WEBPACK_DEFAULT_EXPORT__(resourceType, resourceId, commentId) { + const commentPath = ['', resourceType, resourceId, commentId].join('/'); + + // Fetch newly created comment data + await _DavClient_js__WEBPACK_IMPORTED_MODULE_0__["default"].deleteFile(commentPath); +} + +/***/ }), + +/***/ "./apps/comments/src/services/EditComment.js": +/*!***************************************************!*\ + !*** ./apps/comments/src/services/EditComment.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _DavClient_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DavClient.js */ "./apps/comments/src/services/DavClient.js"); +/** + * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + + + +/** + * Edit an existing comment + * + * @param {string} resourceType the resource type + * @param {number} resourceId the resource ID + * @param {number} commentId the comment iD + * @param {string} message the message content + */ +/* harmony default export */ async function __WEBPACK_DEFAULT_EXPORT__(resourceType, resourceId, commentId, message) { + const commentPath = ['', resourceType, resourceId, commentId].join('/'); + return await _DavClient_js__WEBPACK_IMPORTED_MODULE_0__["default"].customRequest(commentPath, Object.assign({ + method: 'PROPPATCH', + data: "\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t".concat(message, "\n\t\t\t\t\n\t\t\t\n\t\t\t") + })); +} + +/***/ }), + +/***/ "./apps/comments/src/services/NewComment.js": +/*!**************************************************!*\ + !*** ./apps/comments/src/services/NewComment.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); +/* harmony import */ var _utils_davUtils_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/davUtils.js */ "./apps/comments/src/utils/davUtils.js"); +/* harmony import */ var _utils_decodeHtmlEntities_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/decodeHtmlEntities.js */ "./apps/comments/src/utils/decodeHtmlEntities.js"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _DavClient_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./DavClient.js */ "./apps/comments/src/services/DavClient.js"); +/** + * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + + + + + + + +/** + * Retrieve the comments list + * + * @param {string} resourceType the resource type + * @param {number} resourceId the resource ID + * @param {string} message the message + * @return {object} the new comment + */ +/* harmony default export */ async function __WEBPACK_DEFAULT_EXPORT__(resourceType, resourceId, message) { + const resourcePath = ['', resourceType, resourceId].join('/'); + const response = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__["default"].post((0,_utils_davUtils_js__WEBPACK_IMPORTED_MODULE_1__.getRootPath)() + resourcePath, { + actorDisplayName: (0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__.getCurrentUser)().displayName, + actorId: (0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__.getCurrentUser)().uid, + actorType: 'users', + creationDateTime: new Date().toUTCString(), + message, + objectType: resourceType, + verb: 'comment' + }); + + // Retrieve comment id from resource location + const commentId = parseInt(response.headers['content-location'].split('/').pop()); + const commentPath = resourcePath + '/' + commentId; + + // Fetch newly created comment data + const comment = await _DavClient_js__WEBPACK_IMPORTED_MODULE_4__["default"].stat(commentPath, { + details: true + }); + const props = comment.data.props; + // Decode twice to handle potentially double-encoded entities + // FIXME Remove this once https://github.com/nextcloud/server/issues/29306 + // is resolved + props.actorDisplayName = (0,_utils_decodeHtmlEntities_js__WEBPACK_IMPORTED_MODULE_2__.decodeHtmlEntities)(props.actorDisplayName, 2); + props.message = (0,_utils_decodeHtmlEntities_js__WEBPACK_IMPORTED_MODULE_2__.decodeHtmlEntities)(props.message, 2); + return comment.data; +} + +/***/ }), + +/***/ "./apps/comments/src/utils/decodeHtmlEntities.js": +/*!*******************************************************!*\ + !*** ./apps/comments/src/utils/decodeHtmlEntities.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ decodeHtmlEntities: () => (/* binding */ decodeHtmlEntities) +/* harmony export */ }); +/** + * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + +/** + * @param {any} value - + * @param {any} passes - + */ +function decodeHtmlEntities(value) { + let passes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; + const parser = new DOMParser(); + let decoded = value; + for (let i = 0; i < passes; i++) { + decoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent; + } + return decoded; +} + +/***/ }), + +/***/ "./apps/comments/src/mixins/CommentView.ts": +/*!*************************************************!*\ + !*** ./apps/comments/src/mixins/CommentView.ts ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/** + * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ + props: { + resourceId: { + type: Number, + required: true + }, + resourceType: { + type: String, + default: 'files' + } + }, + data() { + return { + editorData: { + actorDisplayName: (0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)().displayName, + actorId: (0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)().uid, + key: 'editor' + }, + userData: {} + }; + }, + methods: { + /** + * Autocomplete @mentions + * + * @param {string} search the query + * @param {Function} callback the callback to process the results with + */ + async autoComplete(search, callback) { + const { + data + } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_3__.generateOcsUrl)('core/autocomplete/get'), { + params: { + search, + itemType: 'files', + itemId: this.resourceId, + sorter: 'commenters|share-recipients', + limit: (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_2__.loadState)('comments', 'maxAutoCompleteResults') + } + }); + // Save user data so it can be used by the editor to replace mentions + data.ocs.data.forEach(user => { + this.userData[user.id] = user; + }); + return callback(Object.values(this.userData)); + }, + /** + * Make sure we have all mentions as Array of objects + * + * @param mentions the mentions list + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + genMentionsData(mentions) { + Object.values(mentions).flat().forEach(mention => { + var _getCurrentUser; + this.userData[mention.mentionId] = { + // TODO: support groups + icon: 'icon-user', + id: mention.mentionId, + label: mention.mentionDisplayName, + source: 'users', + primary: ((_getCurrentUser = (0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)()) === null || _getCurrentUser === void 0 ? void 0 : _getCurrentUser.uid) === mention.mentionId + }; + }); + return this.userData; + } + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=script&lang=js": +/*!******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=script&lang=js ***! + \******************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionButton.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActions.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActions.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionSeparator_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionSeparator.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionSeparator.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAvatar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAvatar.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDateTime.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDateTime.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Mixins_richEditor_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/vue/dist/Mixins/richEditor.js */ "./node_modules/@nextcloud/vue/dist/Mixins/richEditor.mjs"); +/* harmony import */ var vue_material_design_icons_ArrowRight_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue-material-design-icons/ArrowRight.vue */ "./node_modules/vue-material-design-icons/ArrowRight.vue"); +/* harmony import */ var _mixins_CommentMixin_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../mixins/CommentMixin.js */ "./apps/comments/src/mixins/CommentMixin.js"); + + + + + + + + + + + + +// Dynamic loading +const NcRichContenteditable = () => Promise.all(/*! import() */[__webpack_require__.e("core-common"), __webpack_require__.e("node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs")]).then(__webpack_require__.bind(__webpack_require__, /*! @nextcloud/vue/dist/Components/NcRichContenteditable.js */ "./node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs")); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'Comment', + components: { + ArrowRight: vue_material_design_icons_ArrowRight_vue__WEBPACK_IMPORTED_MODULE_9__["default"], + NcActionButton: _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_2__["default"], + NcActions: _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_3__["default"], + NcActionSeparator: _nextcloud_vue_dist_Components_NcActionSeparator_js__WEBPACK_IMPORTED_MODULE_4__["default"], + NcAvatar: _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_5__["default"], + NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_6__["default"], + NcDateTime: _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_7__["default"], + NcRichContenteditable + }, + mixins: [_nextcloud_vue_dist_Mixins_richEditor_js__WEBPACK_IMPORTED_MODULE_8__["default"], _mixins_CommentMixin_js__WEBPACK_IMPORTED_MODULE_10__["default"]], + inheritAttrs: false, + props: { + actorDisplayName: { + type: String, + required: true + }, + actorId: { + type: String, + required: true + }, + creationDateTime: { + type: String, + default: null + }, + /** + * Force the editor display + */ + editor: { + type: Boolean, + default: false + }, + /** + * Provide the autocompletion data + */ + autoComplete: { + type: Function, + required: true + }, + tag: { + type: String, + default: 'div' + } + }, + data() { + return { + expanded: false, + // Only change data locally and update the original + // parent data when the request is sent and resolved + localMessage: '', + submitted: false + }; + }, + computed: { + /** + * Is the current user the author of this comment + * + * @return {boolean} + */ + isOwnComment() { + return (0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__.getCurrentUser)().uid === this.actorId; + }, + /** + * Rendered content as html string + * + * @return {string} + */ + renderedContent() { + if (this.isEmptyMessage) { + return ''; + } + return this.renderContent(this.localMessage); + }, + isEmptyMessage() { + return !this.localMessage || this.localMessage.trim() === ''; + }, + /** + * Timestamp of the creation time (in ms UNIX time) + */ + timestamp() { + return Date.parse(this.creationDateTime); + } + }, + watch: { + // If the data change, update the local value + message(message) { + this.updateLocalMessage(message); + } + }, + beforeMount() { + // Init localMessage + this.updateLocalMessage(this.message); + }, + methods: { + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate, + /** + * Update local Message on outer change + * + * @param {string} message the message to set + */ + updateLocalMessage(message) { + this.localMessage = message.toString(); + this.submitted = false; + }, + /** + * Dispatch message between edit and create + */ + onSubmit() { + // Do not submit if message is empty + if (this.localMessage.trim() === '') { + return; + } + if (this.editor) { + this.onNewComment(this.localMessage.trim()); + this.$nextTick(() => { + // Focus the editor again + this.$refs.editor.$el.focus(); + }); + return; + } + this.onEditComment(this.localMessage.trim()); + }, + onExpand() { + this.expanded = true; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=template&id=5aee423d&scoped=true": +/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=template&id=5aee423d&scoped=true ***! + \*****************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c(_vm.tag, { + directives: [{ + name: "show", + rawName: "v-show", + value: !_vm.deleted, + expression: "!deleted" + }], + tag: "component", + staticClass: "comment", + class: { + "comment--loading": _vm.loading + } + }, [_c("div", { + staticClass: "comment__side" + }, [_c("NcAvatar", { + staticClass: "comment__avatar", + attrs: { + "display-name": _vm.actorDisplayName, + user: _vm.actorId, + size: 32 + } + })], 1), _vm._v(" "), _c("div", { + staticClass: "comment__body" + }, [_c("div", { + staticClass: "comment__header" + }, [_c("span", { + staticClass: "comment__author" + }, [_vm._v(_vm._s(_vm.actorDisplayName))]), _vm._v(" "), _vm.isOwnComment && _vm.id && !_vm.loading ? _c("NcActions", { + staticClass: "comment__actions" + }, [!_vm.editing ? [_c("NcActionButton", { + attrs: { + "close-after-click": true, + icon: "icon-rename" + }, + on: { + click: _vm.onEdit + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("comments", "Edit comment")) + "\n\t\t\t\t\t")]), _vm._v(" "), _c("NcActionSeparator"), _vm._v(" "), _c("NcActionButton", { + attrs: { + "close-after-click": true, + icon: "icon-delete" + }, + on: { + click: _vm.onDeleteWithUndo + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("comments", "Delete comment")) + "\n\t\t\t\t\t")])] : _c("NcActionButton", { + attrs: { + icon: "icon-close" + }, + on: { + click: _vm.onEditCancel + } + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("comments", "Cancel edit")) + "\n\t\t\t\t")])], 2) : _vm._e(), _vm._v(" "), _vm.id && _vm.loading ? _c("div", { + staticClass: "comment_loading icon-loading-small" + }) : _vm.creationDateTime ? _c("NcDateTime", { + staticClass: "comment__timestamp", + attrs: { + timestamp: _vm.timestamp, + "ignore-seconds": true + } + }) : _vm._e()], 1), _vm._v(" "), _vm.editor || _vm.editing ? _c("form", { + staticClass: "comment__editor", + on: { + submit: function ($event) { + $event.preventDefault(); + } + } + }, [_c("div", { + staticClass: "comment__editor-group" + }, [_c("NcRichContenteditable", { + ref: "editor", + attrs: { + "auto-complete": _vm.autoComplete, + contenteditable: !_vm.loading, + label: _vm.editor ? _vm.t("comments", "New comment") : _vm.t("comments", "Edit comment"), + placeholder: _vm.t("comments", "Write a comment …"), + value: _vm.localMessage, + "user-data": _vm.userData, + "aria-describedby": "tab-comments__editor-description" + }, + on: { + "update:value": _vm.updateLocalMessage, + submit: _vm.onSubmit + } + }), _vm._v(" "), _c("div", { + staticClass: "comment__submit" + }, [_c("NcButton", { + attrs: { + type: "tertiary-no-background", + "native-type": "submit", + "aria-label": _vm.t("comments", "Post comment"), + disabled: _vm.isEmptyMessage + }, + on: { + click: _vm.onSubmit + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_vm.loading ? _c("span", { + staticClass: "icon-loading-small" + }) : _c("ArrowRight", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 2357784758) + })], 1)], 1), _vm._v(" "), _c("div", { + staticClass: "comment__editor-description", + attrs: { + id: "tab-comments__editor-description" + } + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("comments", "@ for mentions, : for emoji, / for smart picker")) + "\n\t\t\t")])]) : _c("div", { + staticClass: "comment__message", + class: { + "comment__message--expanded": _vm.expanded + }, + domProps: { + innerHTML: _vm._s(_vm.renderedContent) + }, + on: { + click: _vm.onExpand + } + })])]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.comment[data-v-5aee423d] { + display: flex; + gap: 8px; + padding: 5px 10px; +} +.comment__side[data-v-5aee423d] { + display: flex; + align-items: flex-start; + padding-top: 6px; +} +.comment__body[data-v-5aee423d] { + display: flex; + flex-grow: 1; + flex-direction: column; +} +.comment__header[data-v-5aee423d] { + display: flex; + align-items: center; + min-height: 44px; +} +.comment__actions[data-v-5aee423d] { + margin-left: 10px !important; +} +.comment__author[data-v-5aee423d] { + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + color: var(--color-text-maxcontrast); +} +.comment_loading[data-v-5aee423d], .comment__timestamp[data-v-5aee423d] { + margin-left: auto; + text-align: right; + white-space: nowrap; + color: var(--color-text-maxcontrast); +} +.comment__editor-group[data-v-5aee423d] { + position: relative; +} +.comment__editor-description[data-v-5aee423d] { + color: var(--color-text-maxcontrast); + padding-block: var(--default-grid-baseline); +} +.comment__submit[data-v-5aee423d] { + position: absolute !important; + bottom: 0; + right: 0; +} +.comment__message[data-v-5aee423d] { + white-space: pre-wrap; + word-break: break-word; + max-height: 70px; + overflow: hidden; + margin-top: -6px; +} +.comment__message--expanded[data-v-5aee423d] { + max-height: none; + overflow: visible; +} +.rich-contenteditable__input[data-v-5aee423d] { + min-height: 44px; + margin: 0; + padding: 10px; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true": +/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true ***! + \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_style_index_0_id_5aee423d_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_style_index_0_id_5aee423d_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_style_index_0_id_5aee423d_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_style_index_0_id_5aee423d_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_style_index_0_id_5aee423d_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./apps/comments/src/components/Comment.vue": +/*!**************************************************!*\ + !*** ./apps/comments/src/components/Comment.vue ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Comment_vue_vue_type_template_id_5aee423d_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Comment.vue?vue&type=template&id=5aee423d&scoped=true */ "./apps/comments/src/components/Comment.vue?vue&type=template&id=5aee423d&scoped=true"); +/* harmony import */ var _Comment_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Comment.vue?vue&type=script&lang=js */ "./apps/comments/src/components/Comment.vue?vue&type=script&lang=js"); +/* harmony import */ var _Comment_vue_vue_type_style_index_0_id_5aee423d_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true */ "./apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _Comment_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _Comment_vue_vue_type_template_id_5aee423d_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _Comment_vue_vue_type_template_id_5aee423d_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "5aee423d", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/comments/src/components/Comment.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/comments/src/components/Comment.vue?vue&type=script&lang=js": +/*!**************************************************************************!*\ + !*** ./apps/comments/src/components/Comment.vue?vue&type=script&lang=js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/comments/src/components/Comment.vue?vue&type=template&id=5aee423d&scoped=true": +/*!********************************************************************************************!*\ + !*** ./apps/comments/src/components/Comment.vue?vue&type=template&id=5aee423d&scoped=true ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_template_id_5aee423d_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_template_id_5aee423d_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_template_id_5aee423d_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=template&id=5aee423d&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=template&id=5aee423d&scoped=true"); + + +/***/ }), + +/***/ "./apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true": +/*!***********************************************************************************************************!*\ + !*** ./apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true ***! + \***********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Comment_vue_vue_type_style_index_0_id_5aee423d_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true"); + + +/***/ }) + +}]); +//# sourceMappingURL=apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js.map?v=3e9e8566b886abb3b654 \ No newline at end of file diff --git a/dist/apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js.map b/dist/apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js.map new file mode 100644 index 0000000000000..3a857c0d10a69 --- /dev/null +++ b/dist/apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue-apps_comments_src_mixins_CommentView_ts-apps_comments_src_components_Comment_vue.js?v=3e9e8566b886abb3b654","mappings":";;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC9IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACnIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA","sources":["webpack:///nextcloud/apps/comments/src/mixins/CommentMixin.js","webpack:///nextcloud/apps/comments/src/services/DeleteComment.js","webpack:///nextcloud/apps/comments/src/services/EditComment.js","webpack:///nextcloud/apps/comments/src/services/NewComment.js","webpack:///nextcloud/apps/comments/src/utils/decodeHtmlEntities.js","webpack:///nextcloud/apps/comments/src/mixins/CommentView.ts","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=template&id=5aee423d&scoped=true","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true","webpack://nextcloud/./apps/comments/src/components/Comment.vue?96c1","webpack:///nextcloud/apps/comments/src/components/Comment.vue","webpack://nextcloud/./apps/comments/src/components/Comment.vue?1347"],"sourcesContent":["/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs';\nimport NewComment from '../services/NewComment.js';\nimport DeleteComment from '../services/DeleteComment.js';\nimport EditComment from '../services/EditComment.js';\nimport logger from '../logger.js';\nexport default {\n props: {\n id: {\n type: Number,\n default: null\n },\n message: {\n type: String,\n default: ''\n },\n resourceId: {\n type: [String, Number],\n required: true\n },\n resourceType: {\n type: String,\n default: 'files'\n }\n },\n data() {\n return {\n deleted: false,\n editing: false,\n loading: false\n };\n },\n methods: {\n // EDITION\n onEdit() {\n this.editing = true;\n },\n onEditCancel() {\n this.editing = false;\n // Restore original value\n this.updateLocalMessage(this.message);\n },\n async onEditComment(message) {\n this.loading = true;\n try {\n await EditComment(this.resourceType, this.resourceId, this.id, message);\n logger.debug('Comment edited', {\n resourceType: this.resourceType,\n resourceId: this.resourceId,\n id: this.id,\n message\n });\n this.$emit('update:message', message);\n this.editing = false;\n } catch (error) {\n showError(t('comments', 'An error occurred while trying to edit the comment'));\n console.error(error);\n } finally {\n this.loading = false;\n }\n },\n // DELETION\n onDeleteWithUndo() {\n this.deleted = true;\n const timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT);\n showUndo(t('comments', 'Comment deleted'), () => {\n clearTimeout(timeOutDelete);\n this.deleted = false;\n });\n },\n async onDelete() {\n try {\n await DeleteComment(this.resourceType, this.resourceId, this.id);\n logger.debug('Comment deleted', {\n resourceType: this.resourceType,\n resourceId: this.resourceId,\n id: this.id\n });\n this.$emit('delete', this.id);\n } catch (error) {\n showError(t('comments', 'An error occurred while trying to delete the comment'));\n console.error(error);\n this.deleted = false;\n }\n },\n // CREATION\n async onNewComment(message) {\n this.loading = true;\n try {\n const newComment = await NewComment(this.resourceType, this.resourceId, message);\n logger.debug('New comment posted', {\n resourceType: this.resourceType,\n resourceId: this.resourceId,\n newComment\n });\n this.$emit('new', newComment);\n\n // Clear old content\n this.$emit('update:message', '');\n this.localMessage = '';\n } catch (error) {\n showError(t('comments', 'An error occurred while trying to create the comment'));\n console.error(error);\n } finally {\n this.loading = false;\n }\n }\n }\n};","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js';\n\n/**\n * Delete a comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n */\nexport default async function (resourceType, resourceId, commentId) {\n const commentPath = ['', resourceType, resourceId, commentId].join('/');\n\n // Fetch newly created comment data\n await client.deleteFile(commentPath);\n}","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js';\n\n/**\n * Edit an existing comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n * @param {string} message the message content\n */\nexport default async function (resourceType, resourceId, commentId, message) {\n const commentPath = ['', resourceType, resourceId, commentId].join('/');\n return await client.customRequest(commentPath, Object.assign({\n method: 'PROPPATCH',\n data: \"\\n\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\\t\\n\\t\\t\\t\\t\\t\".concat(message, \"\\n\\t\\t\\t\\t\\n\\t\\t\\t\\n\\t\\t\\t\")\n }));\n}","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getRootPath } from '../utils/davUtils.js';\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js';\nimport axios from '@nextcloud/axios';\nimport client from './DavClient.js';\n\n/**\n * Retrieve the comments list\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {string} message the message\n * @return {object} the new comment\n */\nexport default async function (resourceType, resourceId, message) {\n const resourcePath = ['', resourceType, resourceId].join('/');\n const response = await axios.post(getRootPath() + resourcePath, {\n actorDisplayName: getCurrentUser().displayName,\n actorId: getCurrentUser().uid,\n actorType: 'users',\n creationDateTime: new Date().toUTCString(),\n message,\n objectType: resourceType,\n verb: 'comment'\n });\n\n // Retrieve comment id from resource location\n const commentId = parseInt(response.headers['content-location'].split('/').pop());\n const commentPath = resourcePath + '/' + commentId;\n\n // Fetch newly created comment data\n const comment = await client.stat(commentPath, {\n details: true\n });\n const props = comment.data.props;\n // Decode twice to handle potentially double-encoded entities\n // FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n // is resolved\n props.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2);\n props.message = decodeHtmlEntities(props.message, 2);\n return comment.data;\n}","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param {any} value -\n * @param {any} passes -\n */\nexport function decodeHtmlEntities(value) {\n let passes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n const parser = new DOMParser();\n let decoded = value;\n for (let i = 0; i < passes; i++) {\n decoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent;\n }\n return decoded;\n}","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n props: {\n resourceId: {\n type: Number,\n required: true\n },\n resourceType: {\n type: String,\n default: 'files'\n }\n },\n data() {\n return {\n editorData: {\n actorDisplayName: getCurrentUser().displayName,\n actorId: getCurrentUser().uid,\n key: 'editor'\n },\n userData: {}\n };\n },\n methods: {\n /**\n * Autocomplete @mentions\n *\n * @param {string} search the query\n * @param {Function} callback the callback to process the results with\n */\n async autoComplete(search, callback) {\n const {\n data\n } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n params: {\n search,\n itemType: 'files',\n itemId: this.resourceId,\n sorter: 'commenters|share-recipients',\n limit: loadState('comments', 'maxAutoCompleteResults')\n }\n });\n // Save user data so it can be used by the editor to replace mentions\n data.ocs.data.forEach(user => {\n this.userData[user.id] = user;\n });\n return callback(Object.values(this.userData));\n },\n /**\n * Make sure we have all mentions as Array of objects\n *\n * @param mentions the mentions list\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n genMentionsData(mentions) {\n Object.values(mentions).flat().forEach(mention => {\n var _getCurrentUser;\n this.userData[mention.mentionId] = {\n // TODO: support groups\n icon: 'icon-user',\n id: mention.mentionId,\n label: mention.mentionDisplayName,\n source: 'users',\n primary: ((_getCurrentUser = getCurrentUser()) === null || _getCurrentUser === void 0 ? void 0 : _getCurrentUser.uid) === mention.mentionId\n };\n });\n return this.userData;\n }\n }\n});","import { getCurrentUser } from '@nextcloud/auth';\nimport { translate as t } from '@nextcloud/l10n';\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js';\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js';\nimport NcActionSeparator from '@nextcloud/vue/dist/Components/NcActionSeparator.js';\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js';\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js';\nimport NcDateTime from '@nextcloud/vue/dist/Components/NcDateTime.js';\nimport RichEditorMixin from '@nextcloud/vue/dist/Mixins/richEditor.js';\nimport ArrowRight from 'vue-material-design-icons/ArrowRight.vue';\nimport CommentMixin from '../mixins/CommentMixin.js';\n\n// Dynamic loading\nconst NcRichContenteditable = () => import('@nextcloud/vue/dist/Components/NcRichContenteditable.js');\nexport default {\n name: 'Comment',\n components: {\n ArrowRight,\n NcActionButton,\n NcActions,\n NcActionSeparator,\n NcAvatar,\n NcButton,\n NcDateTime,\n NcRichContenteditable\n },\n mixins: [RichEditorMixin, CommentMixin],\n inheritAttrs: false,\n props: {\n actorDisplayName: {\n type: String,\n required: true\n },\n actorId: {\n type: String,\n required: true\n },\n creationDateTime: {\n type: String,\n default: null\n },\n /**\n * Force the editor display\n */\n editor: {\n type: Boolean,\n default: false\n },\n /**\n * Provide the autocompletion data\n */\n autoComplete: {\n type: Function,\n required: true\n },\n tag: {\n type: String,\n default: 'div'\n }\n },\n data() {\n return {\n expanded: false,\n // Only change data locally and update the original\n // parent data when the request is sent and resolved\n localMessage: '',\n submitted: false\n };\n },\n computed: {\n /**\n * Is the current user the author of this comment\n *\n * @return {boolean}\n */\n isOwnComment() {\n return getCurrentUser().uid === this.actorId;\n },\n /**\n * Rendered content as html string\n *\n * @return {string}\n */\n renderedContent() {\n if (this.isEmptyMessage) {\n return '';\n }\n return this.renderContent(this.localMessage);\n },\n isEmptyMessage() {\n return !this.localMessage || this.localMessage.trim() === '';\n },\n /**\n * Timestamp of the creation time (in ms UNIX time)\n */\n timestamp() {\n return Date.parse(this.creationDateTime);\n }\n },\n watch: {\n // If the data change, update the local value\n message(message) {\n this.updateLocalMessage(message);\n }\n },\n beforeMount() {\n // Init localMessage\n this.updateLocalMessage(this.message);\n },\n methods: {\n t,\n /**\n * Update local Message on outer change\n *\n * @param {string} message the message to set\n */\n updateLocalMessage(message) {\n this.localMessage = message.toString();\n this.submitted = false;\n },\n /**\n * Dispatch message between edit and create\n */\n onSubmit() {\n // Do not submit if message is empty\n if (this.localMessage.trim() === '') {\n return;\n }\n if (this.editor) {\n this.onNewComment(this.localMessage.trim());\n this.$nextTick(() => {\n // Focus the editor again\n this.$refs.editor.$el.focus();\n });\n return;\n }\n this.onEditComment(this.localMessage.trim());\n },\n onExpand() {\n this.expanded = true;\n }\n }\n};","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(_vm.tag, {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.deleted,\n expression: \"!deleted\"\n }],\n tag: \"component\",\n staticClass: \"comment\",\n class: {\n \"comment--loading\": _vm.loading\n }\n }, [_c(\"div\", {\n staticClass: \"comment__side\"\n }, [_c(\"NcAvatar\", {\n staticClass: \"comment__avatar\",\n attrs: {\n \"display-name\": _vm.actorDisplayName,\n user: _vm.actorId,\n size: 32\n }\n })], 1), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"comment__body\"\n }, [_c(\"div\", {\n staticClass: \"comment__header\"\n }, [_c(\"span\", {\n staticClass: \"comment__author\"\n }, [_vm._v(_vm._s(_vm.actorDisplayName))]), _vm._v(\" \"), _vm.isOwnComment && _vm.id && !_vm.loading ? _c(\"NcActions\", {\n staticClass: \"comment__actions\"\n }, [!_vm.editing ? [_c(\"NcActionButton\", {\n attrs: {\n \"close-after-click\": true,\n icon: \"icon-rename\"\n },\n on: {\n click: _vm.onEdit\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"comments\", \"Edit comment\")) + \"\\n\\t\\t\\t\\t\\t\")]), _vm._v(\" \"), _c(\"NcActionSeparator\"), _vm._v(\" \"), _c(\"NcActionButton\", {\n attrs: {\n \"close-after-click\": true,\n icon: \"icon-delete\"\n },\n on: {\n click: _vm.onDeleteWithUndo\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"comments\", \"Delete comment\")) + \"\\n\\t\\t\\t\\t\\t\")])] : _c(\"NcActionButton\", {\n attrs: {\n icon: \"icon-close\"\n },\n on: {\n click: _vm.onEditCancel\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"comments\", \"Cancel edit\")) + \"\\n\\t\\t\\t\\t\")])], 2) : _vm._e(), _vm._v(\" \"), _vm.id && _vm.loading ? _c(\"div\", {\n staticClass: \"comment_loading icon-loading-small\"\n }) : _vm.creationDateTime ? _c(\"NcDateTime\", {\n staticClass: \"comment__timestamp\",\n attrs: {\n timestamp: _vm.timestamp,\n \"ignore-seconds\": true\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _vm.editor || _vm.editing ? _c(\"form\", {\n staticClass: \"comment__editor\",\n on: {\n submit: function ($event) {\n $event.preventDefault();\n }\n }\n }, [_c(\"div\", {\n staticClass: \"comment__editor-group\"\n }, [_c(\"NcRichContenteditable\", {\n ref: \"editor\",\n attrs: {\n \"auto-complete\": _vm.autoComplete,\n contenteditable: !_vm.loading,\n label: _vm.editor ? _vm.t(\"comments\", \"New comment\") : _vm.t(\"comments\", \"Edit comment\"),\n placeholder: _vm.t(\"comments\", \"Write a comment …\"),\n value: _vm.localMessage,\n \"user-data\": _vm.userData,\n \"aria-describedby\": \"tab-comments__editor-description\"\n },\n on: {\n \"update:value\": _vm.updateLocalMessage,\n submit: _vm.onSubmit\n }\n }), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"comment__submit\"\n }, [_c(\"NcButton\", {\n attrs: {\n type: \"tertiary-no-background\",\n \"native-type\": \"submit\",\n \"aria-label\": _vm.t(\"comments\", \"Post comment\"),\n disabled: _vm.isEmptyMessage\n },\n on: {\n click: _vm.onSubmit\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_vm.loading ? _c(\"span\", {\n staticClass: \"icon-loading-small\"\n }) : _c(\"ArrowRight\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 2357784758)\n })], 1)], 1), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"comment__editor-description\",\n attrs: {\n id: \"tab-comments__editor-description\"\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(_vm.t(\"comments\", \"@ for mentions, : for emoji, / for smart picker\")) + \"\\n\\t\\t\\t\")])]) : _c(\"div\", {\n staticClass: \"comment__message\",\n class: {\n \"comment__message--expanded\": _vm.expanded\n },\n domProps: {\n innerHTML: _vm._s(_vm.renderedContent)\n },\n on: {\n click: _vm.onExpand\n }\n })])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.comment[data-v-5aee423d] {\n display: flex;\n gap: 8px;\n padding: 5px 10px;\n}\n.comment__side[data-v-5aee423d] {\n display: flex;\n align-items: flex-start;\n padding-top: 6px;\n}\n.comment__body[data-v-5aee423d] {\n display: flex;\n flex-grow: 1;\n flex-direction: column;\n}\n.comment__header[data-v-5aee423d] {\n display: flex;\n align-items: center;\n min-height: 44px;\n}\n.comment__actions[data-v-5aee423d] {\n margin-left: 10px !important;\n}\n.comment__author[data-v-5aee423d] {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n color: var(--color-text-maxcontrast);\n}\n.comment_loading[data-v-5aee423d], .comment__timestamp[data-v-5aee423d] {\n margin-left: auto;\n text-align: right;\n white-space: nowrap;\n color: var(--color-text-maxcontrast);\n}\n.comment__editor-group[data-v-5aee423d] {\n position: relative;\n}\n.comment__editor-description[data-v-5aee423d] {\n color: var(--color-text-maxcontrast);\n padding-block: var(--default-grid-baseline);\n}\n.comment__submit[data-v-5aee423d] {\n position: absolute !important;\n bottom: 0;\n right: 0;\n}\n.comment__message[data-v-5aee423d] {\n white-space: pre-wrap;\n word-break: break-word;\n max-height: 70px;\n overflow: hidden;\n margin-top: -6px;\n}\n.comment__message--expanded[data-v-5aee423d] {\n max-height: none;\n overflow: visible;\n}\n.rich-contenteditable__input[data-v-5aee423d] {\n min-height: 44px;\n margin: 0;\n padding: 10px;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=5aee423d&scoped=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=js\"\nexport * from \"./Comment.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=5aee423d&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5aee423d\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('5aee423d')) {\n api.createRecord('5aee423d', component.options)\n } else {\n api.reload('5aee423d', component.options)\n }\n module.hot.accept(\"./Comment.vue?vue&type=template&id=5aee423d&scoped=true\", function () {\n api.rerender('5aee423d', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/comments/src/components/Comment.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js b/dist/apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js new file mode 100644 index 0000000000000..f4b11f414dbc3 --- /dev/null +++ b/dist/apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js @@ -0,0 +1,255 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["apps_comments_src_views_ActivityCommentAction_vue"],{ + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=script&lang=ts": +/*!*************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=script&lang=ts ***! + \*************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _components_Comment_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/Comment.vue */ "./apps/comments/src/components/Comment.vue"); +/* harmony import */ var _mixins_CommentView_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../mixins/CommentView.js */ "./apps/comments/src/mixins/CommentView.ts"); +/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../logger */ "./apps/comments/src/logger.js"); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_5__.defineComponent)({ + components: { + Comment: _components_Comment_vue__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + mixins: [_mixins_CommentView_js__WEBPACK_IMPORTED_MODULE_1__["default"]], + props: { + reloadCallback: { + type: Function, + required: true + } + }, + methods: { + onNewComment() { + try { + // just force reload + this.reloadCallback(); + } catch (e) { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_3__.showError)((0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_4__.translate)('comments', 'Could not reload comments')); + _logger__WEBPACK_IMPORTED_MODULE_2__["default"].debug(e); + } + } + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c("Comment", _vm._b({ + staticClass: "comments-action", + attrs: { + "auto-complete": _vm.autoComplete, + "resource-type": _vm.resourceType, + editor: true, + "user-data": _vm.userData, + "resource-id": _vm.resourceId + }, + on: { + new: _vm.onNewComment + } + }, "Comment", _vm.editorData, false)); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css": +/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css ***! + \*****************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.comments-action[data-v-31f7eb84] { + padding: 0; +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_style_index_0_id_31f7eb84_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_style_index_0_id_31f7eb84_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_style_index_0_id_31f7eb84_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_style_index_0_id_31f7eb84_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_style_index_0_id_31f7eb84_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./apps/comments/src/views/ActivityCommentAction.vue": +/*!***********************************************************!*\ + !*** ./apps/comments/src/views/ActivityCommentAction.vue ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ActivityCommentAction_vue_vue_type_template_id_31f7eb84_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true */ "./apps/comments/src/views/ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true"); +/* harmony import */ var _ActivityCommentAction_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ActivityCommentAction.vue?vue&type=script&lang=ts */ "./apps/comments/src/views/ActivityCommentAction.vue?vue&type=script&lang=ts"); +/* harmony import */ var _ActivityCommentAction_vue_vue_type_style_index_0_id_31f7eb84_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css */ "./apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _ActivityCommentAction_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _ActivityCommentAction_vue_vue_type_template_id_31f7eb84_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _ActivityCommentAction_vue_vue_type_template_id_31f7eb84_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "31f7eb84", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/comments/src/views/ActivityCommentAction.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/comments/src/views/ActivityCommentAction.vue?vue&type=script&lang=ts": +/*!***********************************************************************************!*\ + !*** ./apps/comments/src/views/ActivityCommentAction.vue?vue&type=script&lang=ts ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=script&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/comments/src/views/ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true": +/*!*****************************************************************************************************!*\ + !*** ./apps/comments/src/views/ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true ***! + \*****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_template_id_31f7eb84_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_template_id_31f7eb84_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_template_id_31f7eb84_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true"); + + +/***/ }), + +/***/ "./apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css": +/*!*******************************************************************************************************************!*\ + !*** ./apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentAction_vue_vue_type_style_index_0_id_31f7eb84_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css"); + + +/***/ }) + +}]); +//# sourceMappingURL=apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js.map?v=300c396f26af888e14e9 \ No newline at end of file diff --git a/dist/apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js.map b/dist/apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js.map new file mode 100644 index 0000000000000..7bec695794a66 --- /dev/null +++ b/dist/apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps_comments_src_views_ActivityCommentAction_vue-apps_comments_src_views_ActivityCommentAction_vue.js?v=300c396f26af888e14e9","mappings":";;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA","sources":["webpack:///nextcloud/apps/comments/src/views/ActivityCommentAction.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/comments/src/views/ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true","webpack:///nextcloud/apps/comments/src/views/ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css","webpack://nextcloud/./apps/comments/src/views/ActivityCommentAction.vue?ff7b","webpack:///nextcloud/apps/comments/src/views/ActivityCommentAction.vue","webpack://nextcloud/./apps/comments/src/views/ActivityCommentAction.vue?4978","webpack://nextcloud/./apps/comments/src/views/ActivityCommentAction.vue?17ec","webpack://nextcloud/./apps/comments/src/views/ActivityCommentAction.vue?ad3f"],"sourcesContent":["import { defineComponent } from 'vue';\nimport Comment from '../components/Comment.vue';\nimport CommentView from '../mixins/CommentView.js';\nimport logger from '../logger';\nimport { showError } from '@nextcloud/dialogs';\nimport { translate as t } from '@nextcloud/l10n';\nexport default defineComponent({\n components: {\n Comment\n },\n mixins: [CommentView],\n props: {\n reloadCallback: {\n type: Function,\n required: true\n }\n },\n methods: {\n onNewComment() {\n try {\n // just force reload\n this.reloadCallback();\n } catch (e) {\n showError(t('comments', 'Could not reload comments'));\n logger.debug(e);\n }\n }\n }\n});","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"Comment\", _vm._b({\n staticClass: \"comments-action\",\n attrs: {\n \"auto-complete\": _vm.autoComplete,\n \"resource-type\": _vm.resourceType,\n editor: true,\n \"user-data\": _vm.userData,\n \"resource-id\": _vm.resourceId\n },\n on: {\n new: _vm.onNewComment\n }\n }, \"Comment\", _vm.editorData, false));\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.comments-action[data-v-31f7eb84] {\n\tpadding: 0;\n}\n`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true\"\nimport script from \"./ActivityCommentAction.vue?vue&type=script&lang=ts\"\nexport * from \"./ActivityCommentAction.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31f7eb84\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('31f7eb84')) {\n api.createRecord('31f7eb84', component.options)\n } else {\n api.reload('31f7eb84', component.options)\n }\n module.hot.accept(\"./ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true\", function () {\n api.rerender('31f7eb84', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/comments/src/views/ActivityCommentAction.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=script&lang=ts\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=template&id=31f7eb84&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentAction.vue?vue&type=style&index=0&id=31f7eb84&scoped=true&lang=css\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js b/dist/apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js new file mode 100644 index 0000000000000..a503ef158e561 --- /dev/null +++ b/dist/apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js @@ -0,0 +1,262 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["apps_comments_src_views_ActivityCommentEntry_vue"],{ + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=script&lang=ts": +/*!************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=script&lang=ts ***! + \************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _components_Comment_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../components/Comment.vue */ "./apps/comments/src/components/Comment.vue"); +/* harmony import */ var _mixins_CommentView__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../mixins/CommentView */ "./apps/comments/src/mixins/CommentView.ts"); + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'ActivityCommentEntry', + components: { + Comment: _components_Comment_vue__WEBPACK_IMPORTED_MODULE_1__["default"] + }, + mixins: [_mixins_CommentView__WEBPACK_IMPORTED_MODULE_2__["default"]], + props: { + comment: { + type: Object, + required: true + }, + reloadCallback: { + type: Function, + required: true + } + }, + data() { + return { + commentMessage: '' + }; + }, + watch: { + comment() { + this.commentMessage = this.comment.props.message; + } + }, + mounted() { + this.commentMessage = this.comment.props.message; + }, + methods: { + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true": +/*!*************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true ***! + \*************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("Comment", _vm._b({ + ref: "comment", + staticClass: "comments-activity", + attrs: { + tag: "li", + "auto-complete": _vm.autoComplete, + "resource-type": _vm.resourceType, + message: _vm.commentMessage, + "resource-id": _vm.resourceId, + "user-data": _vm.genMentionsData(_vm.comment.props.mentions) + }, + on: { + delete: function ($event) { + return _vm.reloadCallback(); + } + } + }, "Comment", _vm.comment.props, false)); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css": +/*!****************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css ***! + \****************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.comments-activity[data-v-6b61ff9a] { + padding: 0; +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_style_index_0_id_6b61ff9a_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_style_index_0_id_6b61ff9a_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_style_index_0_id_6b61ff9a_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_style_index_0_id_6b61ff9a_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_style_index_0_id_6b61ff9a_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./apps/comments/src/views/ActivityCommentEntry.vue": +/*!**********************************************************!*\ + !*** ./apps/comments/src/views/ActivityCommentEntry.vue ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ActivityCommentEntry_vue_vue_type_template_id_6b61ff9a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true */ "./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true"); +/* harmony import */ var _ActivityCommentEntry_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ActivityCommentEntry.vue?vue&type=script&lang=ts */ "./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=script&lang=ts"); +/* harmony import */ var _ActivityCommentEntry_vue_vue_type_style_index_0_id_6b61ff9a_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css */ "./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _ActivityCommentEntry_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _ActivityCommentEntry_vue_vue_type_template_id_6b61ff9a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _ActivityCommentEntry_vue_vue_type_template_id_6b61ff9a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "6b61ff9a", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/comments/src/views/ActivityCommentEntry.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=script&lang=ts": +/*!**********************************************************************************!*\ + !*** ./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=script&lang=ts ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=script&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true": +/*!****************************************************************************************************!*\ + !*** ./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_template_id_6b61ff9a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_template_id_6b61ff9a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_template_id_6b61ff9a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true"); + + +/***/ }), + +/***/ "./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css": +/*!******************************************************************************************************************!*\ + !*** ./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css ***! + \******************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActivityCommentEntry_vue_vue_type_style_index_0_id_6b61ff9a_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css"); + + +/***/ }) + +}]); +//# sourceMappingURL=apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js.map?v=d921c2e843d441c4bcce \ No newline at end of file diff --git a/dist/apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js.map b/dist/apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js.map new file mode 100644 index 0000000000000..e7ee61037a948 --- /dev/null +++ b/dist/apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps_comments_src_views_ActivityCommentEntry_vue-apps_comments_src_views_ActivityCommentEntry_vue.js?v=d921c2e843d441c4bcce","mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA","sources":["webpack:///nextcloud/apps/comments/src/views/ActivityCommentEntry.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/comments/src/views/ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true","webpack:///nextcloud/apps/comments/src/views/ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css","webpack://nextcloud/./apps/comments/src/views/ActivityCommentEntry.vue?6a99","webpack:///nextcloud/apps/comments/src/views/ActivityCommentEntry.vue","webpack://nextcloud/./apps/comments/src/views/ActivityCommentEntry.vue?3fc5","webpack://nextcloud/./apps/comments/src/views/ActivityCommentEntry.vue?2bee","webpack://nextcloud/./apps/comments/src/views/ActivityCommentEntry.vue?a1bb"],"sourcesContent":["import { translate as t } from '@nextcloud/l10n';\nimport Comment from '../components/Comment.vue';\nimport CommentView from '../mixins/CommentView';\nexport default {\n name: 'ActivityCommentEntry',\n components: {\n Comment\n },\n mixins: [CommentView],\n props: {\n comment: {\n type: Object,\n required: true\n },\n reloadCallback: {\n type: Function,\n required: true\n }\n },\n data() {\n return {\n commentMessage: ''\n };\n },\n watch: {\n comment() {\n this.commentMessage = this.comment.props.message;\n }\n },\n mounted() {\n this.commentMessage = this.comment.props.message;\n },\n methods: {\n t\n }\n};","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"Comment\", _vm._b({\n ref: \"comment\",\n staticClass: \"comments-activity\",\n attrs: {\n tag: \"li\",\n \"auto-complete\": _vm.autoComplete,\n \"resource-type\": _vm.resourceType,\n message: _vm.commentMessage,\n \"resource-id\": _vm.resourceId,\n \"user-data\": _vm.genMentionsData(_vm.comment.props.mentions)\n },\n on: {\n delete: function ($event) {\n return _vm.reloadCallback();\n }\n }\n }, \"Comment\", _vm.comment.props, false));\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.comments-activity[data-v-6b61ff9a] {\n\tpadding: 0;\n}\n`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true\"\nimport script from \"./ActivityCommentEntry.vue?vue&type=script&lang=ts\"\nexport * from \"./ActivityCommentEntry.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b61ff9a\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('6b61ff9a')) {\n api.createRecord('6b61ff9a', component.options)\n } else {\n api.reload('6b61ff9a', component.options)\n }\n module.hot.accept(\"./ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true\", function () {\n api.rerender('6b61ff9a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/comments/src/views/ActivityCommentEntry.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=script&lang=ts\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=template&id=6b61ff9a&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActivityCommentEntry.vue?vue&type=style&index=0&id=6b61ff9a&scoped=true&lang=css\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js b/dist/apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js new file mode 100644 index 0000000000000..7b21a5e1d88fd --- /dev/null +++ b/dist/apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js @@ -0,0 +1,18897 @@ +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe"],{ + +/***/ "./node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js": +/*!******************************************************************!*\ + !*** ./node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js ***! + \******************************************************************/ +/***/ (function(module, __unused_webpack_exports, __webpack_require__) { + +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); +/*! + * vue-qrcode v1.0.2 + * https://fengyuanchen.github.io/vue-qrcode + * + * Copyright 2018-present Chen Fengyuan + * Released under the MIT license + * + * Date: 2020-01-18T06:04:33.222Z + */ + +(function (global, factory) { + true ? module.exports = factory() : + 0; +}(this, (function () { 'use strict'; + + function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs'); + } + + function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; + } + + var qrcode = createCommonjsModule(function (module, exports) { + (function(f){{module.exports=f();}})(function(){return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof commonjsRequire&&commonjsRequire;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t);}return n[i].exports}for(var u="function"==typeof commonjsRequire&&commonjsRequire,i=0;i>> (7 - index % 8)) & 1) === 1 + }, + + put: function (num, length) { + for (var i = 0; i < length; i++) { + this.putBit(((num >>> (length - i - 1)) & 1) === 1); + } + }, + + getLengthInBits: function () { + return this.length + }, + + putBit: function (bit) { + var bufIndex = Math.floor(this.length / 8); + if (this.buffer.length <= bufIndex) { + this.buffer.push(0); + } + + if (bit) { + this.buffer[bufIndex] |= (0x80 >>> (this.length % 8)); + } + + this.length++; + } + }; + + module.exports = BitBuffer; + + },{}],5:[function(require,module,exports){ + var BufferUtil = require('../utils/buffer'); + + /** + * Helper class to handle QR Code symbol modules + * + * @param {Number} size Symbol size + */ + function BitMatrix (size) { + if (!size || size < 1) { + throw new Error('BitMatrix size must be defined and greater than 0') + } + + this.size = size; + this.data = BufferUtil.alloc(size * size); + this.reservedBit = BufferUtil.alloc(size * size); + } + + /** + * Set bit value at specified location + * If reserved flag is set, this bit will be ignored during masking process + * + * @param {Number} row + * @param {Number} col + * @param {Boolean} value + * @param {Boolean} reserved + */ + BitMatrix.prototype.set = function (row, col, value, reserved) { + var index = row * this.size + col; + this.data[index] = value; + if (reserved) this.reservedBit[index] = true; + }; + + /** + * Returns bit value at specified location + * + * @param {Number} row + * @param {Number} col + * @return {Boolean} + */ + BitMatrix.prototype.get = function (row, col) { + return this.data[row * this.size + col] + }; + + /** + * Applies xor operator at specified location + * (used during masking process) + * + * @param {Number} row + * @param {Number} col + * @param {Boolean} value + */ + BitMatrix.prototype.xor = function (row, col, value) { + this.data[row * this.size + col] ^= value; + }; + + /** + * Check if bit at specified location is reserved + * + * @param {Number} row + * @param {Number} col + * @return {Boolean} + */ + BitMatrix.prototype.isReserved = function (row, col) { + return this.reservedBit[row * this.size + col] + }; + + module.exports = BitMatrix; + + },{"../utils/buffer":28}],6:[function(require,module,exports){ + var BufferUtil = require('../utils/buffer'); + var Mode = require('./mode'); + + function ByteData (data) { + this.mode = Mode.BYTE; + this.data = BufferUtil.from(data); + } + + ByteData.getBitsLength = function getBitsLength (length) { + return length * 8 + }; + + ByteData.prototype.getLength = function getLength () { + return this.data.length + }; + + ByteData.prototype.getBitsLength = function getBitsLength () { + return ByteData.getBitsLength(this.data.length) + }; + + ByteData.prototype.write = function (bitBuffer) { + for (var i = 0, l = this.data.length; i < l; i++) { + bitBuffer.put(this.data[i], 8); + } + }; + + module.exports = ByteData; + + },{"../utils/buffer":28,"./mode":14}],7:[function(require,module,exports){ + var ECLevel = require('./error-correction-level'); + + var EC_BLOCKS_TABLE = [ + // L M Q H + 1, 1, 1, 1, + 1, 1, 1, 1, + 1, 1, 2, 2, + 1, 2, 2, 4, + 1, 2, 4, 4, + 2, 4, 4, 4, + 2, 4, 6, 5, + 2, 4, 6, 6, + 2, 5, 8, 8, + 4, 5, 8, 8, + 4, 5, 8, 11, + 4, 8, 10, 11, + 4, 9, 12, 16, + 4, 9, 16, 16, + 6, 10, 12, 18, + 6, 10, 17, 16, + 6, 11, 16, 19, + 6, 13, 18, 21, + 7, 14, 21, 25, + 8, 16, 20, 25, + 8, 17, 23, 25, + 9, 17, 23, 34, + 9, 18, 25, 30, + 10, 20, 27, 32, + 12, 21, 29, 35, + 12, 23, 34, 37, + 12, 25, 34, 40, + 13, 26, 35, 42, + 14, 28, 38, 45, + 15, 29, 40, 48, + 16, 31, 43, 51, + 17, 33, 45, 54, + 18, 35, 48, 57, + 19, 37, 51, 60, + 19, 38, 53, 63, + 20, 40, 56, 66, + 21, 43, 59, 70, + 22, 45, 62, 74, + 24, 47, 65, 77, + 25, 49, 68, 81 + ]; + + var EC_CODEWORDS_TABLE = [ + // L M Q H + 7, 10, 13, 17, + 10, 16, 22, 28, + 15, 26, 36, 44, + 20, 36, 52, 64, + 26, 48, 72, 88, + 36, 64, 96, 112, + 40, 72, 108, 130, + 48, 88, 132, 156, + 60, 110, 160, 192, + 72, 130, 192, 224, + 80, 150, 224, 264, + 96, 176, 260, 308, + 104, 198, 288, 352, + 120, 216, 320, 384, + 132, 240, 360, 432, + 144, 280, 408, 480, + 168, 308, 448, 532, + 180, 338, 504, 588, + 196, 364, 546, 650, + 224, 416, 600, 700, + 224, 442, 644, 750, + 252, 476, 690, 816, + 270, 504, 750, 900, + 300, 560, 810, 960, + 312, 588, 870, 1050, + 336, 644, 952, 1110, + 360, 700, 1020, 1200, + 390, 728, 1050, 1260, + 420, 784, 1140, 1350, + 450, 812, 1200, 1440, + 480, 868, 1290, 1530, + 510, 924, 1350, 1620, + 540, 980, 1440, 1710, + 570, 1036, 1530, 1800, + 570, 1064, 1590, 1890, + 600, 1120, 1680, 1980, + 630, 1204, 1770, 2100, + 660, 1260, 1860, 2220, + 720, 1316, 1950, 2310, + 750, 1372, 2040, 2430 + ]; + + /** + * Returns the number of error correction block that the QR Code should contain + * for the specified version and error correction level. + * + * @param {Number} version QR Code version + * @param {Number} errorCorrectionLevel Error correction level + * @return {Number} Number of error correction blocks + */ + exports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) { + switch (errorCorrectionLevel) { + case ECLevel.L: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 0] + case ECLevel.M: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 1] + case ECLevel.Q: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 2] + case ECLevel.H: + return EC_BLOCKS_TABLE[(version - 1) * 4 + 3] + default: + return undefined + } + }; + + /** + * Returns the number of error correction codewords to use for the specified + * version and error correction level. + * + * @param {Number} version QR Code version + * @param {Number} errorCorrectionLevel Error correction level + * @return {Number} Number of error correction codewords + */ + exports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) { + switch (errorCorrectionLevel) { + case ECLevel.L: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0] + case ECLevel.M: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1] + case ECLevel.Q: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2] + case ECLevel.H: + return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3] + default: + return undefined + } + }; + + },{"./error-correction-level":8}],8:[function(require,module,exports){ + exports.L = { bit: 1 }; + exports.M = { bit: 0 }; + exports.Q = { bit: 3 }; + exports.H = { bit: 2 }; + + function fromString (string) { + if (typeof string !== 'string') { + throw new Error('Param is not a string') + } + + var lcStr = string.toLowerCase(); + + switch (lcStr) { + case 'l': + case 'low': + return exports.L + + case 'm': + case 'medium': + return exports.M + + case 'q': + case 'quartile': + return exports.Q + + case 'h': + case 'high': + return exports.H + + default: + throw new Error('Unknown EC Level: ' + string) + } + } + + exports.isValid = function isValid (level) { + return level && typeof level.bit !== 'undefined' && + level.bit >= 0 && level.bit < 4 + }; + + exports.from = function from (value, defaultValue) { + if (exports.isValid(value)) { + return value + } + + try { + return fromString(value) + } catch (e) { + return defaultValue + } + }; + + },{}],9:[function(require,module,exports){ + var getSymbolSize = require('./utils').getSymbolSize; + var FINDER_PATTERN_SIZE = 7; + + /** + * Returns an array containing the positions of each finder pattern. + * Each array's element represent the top-left point of the pattern as (x, y) coordinates + * + * @param {Number} version QR Code version + * @return {Array} Array of coordinates + */ + exports.getPositions = function getPositions (version) { + var size = getSymbolSize(version); + + return [ + // top-left + [0, 0], + // top-right + [size - FINDER_PATTERN_SIZE, 0], + // bottom-left + [0, size - FINDER_PATTERN_SIZE] + ] + }; + + },{"./utils":21}],10:[function(require,module,exports){ + var Utils = require('./utils'); + + var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0); + var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1); + var G15_BCH = Utils.getBCHDigit(G15); + + /** + * Returns format information with relative error correction bits + * + * The format information is a 15-bit sequence containing 5 data bits, + * with 10 error correction bits calculated using the (15, 5) BCH code. + * + * @param {Number} errorCorrectionLevel Error correction level + * @param {Number} mask Mask pattern + * @return {Number} Encoded format information bits + */ + exports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) { + var data = ((errorCorrectionLevel.bit << 3) | mask); + var d = data << 10; + + while (Utils.getBCHDigit(d) - G15_BCH >= 0) { + d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH)); + } + + // xor final data with mask pattern in order to ensure that + // no combination of Error Correction Level and data mask pattern + // will result in an all-zero data string + return ((data << 10) | d) ^ G15_MASK + }; + + },{"./utils":21}],11:[function(require,module,exports){ + var BufferUtil = require('../utils/buffer'); + + var EXP_TABLE = BufferUtil.alloc(512); + var LOG_TABLE = BufferUtil.alloc(256) + /** + * Precompute the log and anti-log tables for faster computation later + * + * For each possible value in the galois field 2^8, we will pre-compute + * the logarithm and anti-logarithm (exponential) of this value + * + * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields} + */ + ;(function initTables () { + var x = 1; + for (var i = 0; i < 255; i++) { + EXP_TABLE[i] = x; + LOG_TABLE[x] = i; + + x <<= 1; // multiply by 2 + + // The QR code specification says to use byte-wise modulo 100011101 arithmetic. + // This means that when a number is 256 or larger, it should be XORed with 0x11D. + if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256) + x ^= 0x11D; + } + } + + // Optimization: double the size of the anti-log table so that we don't need to mod 255 to + // stay inside the bounds (because we will mainly use this table for the multiplication of + // two GF numbers, no more). + // @see {@link mul} + for (i = 255; i < 512; i++) { + EXP_TABLE[i] = EXP_TABLE[i - 255]; + } + }()); + + /** + * Returns log value of n inside Galois Field + * + * @param {Number} n + * @return {Number} + */ + exports.log = function log (n) { + if (n < 1) throw new Error('log(' + n + ')') + return LOG_TABLE[n] + }; + + /** + * Returns anti-log value of n inside Galois Field + * + * @param {Number} n + * @return {Number} + */ + exports.exp = function exp (n) { + return EXP_TABLE[n] + }; + + /** + * Multiplies two number inside Galois Field + * + * @param {Number} x + * @param {Number} y + * @return {Number} + */ + exports.mul = function mul (x, y) { + if (x === 0 || y === 0) return 0 + + // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized + // @see {@link initTables} + return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]] + }; + + },{"../utils/buffer":28}],12:[function(require,module,exports){ + var Mode = require('./mode'); + var Utils = require('./utils'); + + function KanjiData (data) { + this.mode = Mode.KANJI; + this.data = data; + } + + KanjiData.getBitsLength = function getBitsLength (length) { + return length * 13 + }; + + KanjiData.prototype.getLength = function getLength () { + return this.data.length + }; + + KanjiData.prototype.getBitsLength = function getBitsLength () { + return KanjiData.getBitsLength(this.data.length) + }; + + KanjiData.prototype.write = function (bitBuffer) { + var i; + + // In the Shift JIS system, Kanji characters are represented by a two byte combination. + // These byte values are shifted from the JIS X 0208 values. + // JIS X 0208 gives details of the shift coded representation. + for (i = 0; i < this.data.length; i++) { + var value = Utils.toSJIS(this.data[i]); + + // For characters with Shift JIS values from 0x8140 to 0x9FFC: + if (value >= 0x8140 && value <= 0x9FFC) { + // Subtract 0x8140 from Shift JIS value + value -= 0x8140; + + // For characters with Shift JIS values from 0xE040 to 0xEBBF + } else if (value >= 0xE040 && value <= 0xEBBF) { + // Subtract 0xC140 from Shift JIS value + value -= 0xC140; + } else { + throw new Error( + 'Invalid SJIS character: ' + this.data[i] + '\n' + + 'Make sure your charset is UTF-8') + } + + // Multiply most significant byte of result by 0xC0 + // and add least significant byte to product + value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff); + + // Convert result to a 13-bit binary string + bitBuffer.put(value, 13); + } + }; + + module.exports = KanjiData; + + },{"./mode":14,"./utils":21}],13:[function(require,module,exports){ + /** + * Data mask pattern reference + * @type {Object} + */ + exports.Patterns = { + PATTERN000: 0, + PATTERN001: 1, + PATTERN010: 2, + PATTERN011: 3, + PATTERN100: 4, + PATTERN101: 5, + PATTERN110: 6, + PATTERN111: 7 + }; + + /** + * Weighted penalty scores for the undesirable features + * @type {Object} + */ + var PenaltyScores = { + N1: 3, + N2: 3, + N3: 40, + N4: 10 + }; + + /** + * Check if mask pattern value is valid + * + * @param {Number} mask Mask pattern + * @return {Boolean} true if valid, false otherwise + */ + exports.isValid = function isValid (mask) { + return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7 + }; + + /** + * Returns mask pattern from a value. + * If value is not valid, returns undefined + * + * @param {Number|String} value Mask pattern value + * @return {Number} Valid mask pattern or undefined + */ + exports.from = function from (value) { + return exports.isValid(value) ? parseInt(value, 10) : undefined + }; + + /** + * Find adjacent modules in row/column with the same color + * and assign a penalty value. + * + * Points: N1 + i + * i is the amount by which the number of adjacent modules of the same color exceeds 5 + */ + exports.getPenaltyN1 = function getPenaltyN1 (data) { + var size = data.size; + var points = 0; + var sameCountCol = 0; + var sameCountRow = 0; + var lastCol = null; + var lastRow = null; + + for (var row = 0; row < size; row++) { + sameCountCol = sameCountRow = 0; + lastCol = lastRow = null; + + for (var col = 0; col < size; col++) { + var module = data.get(row, col); + if (module === lastCol) { + sameCountCol++; + } else { + if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5); + lastCol = module; + sameCountCol = 1; + } + + module = data.get(col, row); + if (module === lastRow) { + sameCountRow++; + } else { + if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5); + lastRow = module; + sameCountRow = 1; + } + } + + if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5); + if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5); + } + + return points + }; + + /** + * Find 2x2 blocks with the same color and assign a penalty value + * + * Points: N2 * (m - 1) * (n - 1) + */ + exports.getPenaltyN2 = function getPenaltyN2 (data) { + var size = data.size; + var points = 0; + + for (var row = 0; row < size - 1; row++) { + for (var col = 0; col < size - 1; col++) { + var last = data.get(row, col) + + data.get(row, col + 1) + + data.get(row + 1, col) + + data.get(row + 1, col + 1); + + if (last === 4 || last === 0) points++; + } + } + + return points * PenaltyScores.N2 + }; + + /** + * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column, + * preceded or followed by light area 4 modules wide + * + * Points: N3 * number of pattern found + */ + exports.getPenaltyN3 = function getPenaltyN3 (data) { + var size = data.size; + var points = 0; + var bitsCol = 0; + var bitsRow = 0; + + for (var row = 0; row < size; row++) { + bitsCol = bitsRow = 0; + for (var col = 0; col < size; col++) { + bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col); + if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++; + + bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row); + if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++; + } + } + + return points * PenaltyScores.N3 + }; + + /** + * Calculate proportion of dark modules in entire symbol + * + * Points: N4 * k + * + * k is the rating of the deviation of the proportion of dark modules + * in the symbol from 50% in steps of 5% + */ + exports.getPenaltyN4 = function getPenaltyN4 (data) { + var darkCount = 0; + var modulesCount = data.data.length; + + for (var i = 0; i < modulesCount; i++) darkCount += data.data[i]; + + var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10); + + return k * PenaltyScores.N4 + }; + + /** + * Return mask value at given position + * + * @param {Number} maskPattern Pattern reference value + * @param {Number} i Row + * @param {Number} j Column + * @return {Boolean} Mask value + */ + function getMaskAt (maskPattern, i, j) { + switch (maskPattern) { + case exports.Patterns.PATTERN000: return (i + j) % 2 === 0 + case exports.Patterns.PATTERN001: return i % 2 === 0 + case exports.Patterns.PATTERN010: return j % 3 === 0 + case exports.Patterns.PATTERN011: return (i + j) % 3 === 0 + case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0 + case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0 + case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0 + case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0 + + default: throw new Error('bad maskPattern:' + maskPattern) + } + } + + /** + * Apply a mask pattern to a BitMatrix + * + * @param {Number} pattern Pattern reference number + * @param {BitMatrix} data BitMatrix data + */ + exports.applyMask = function applyMask (pattern, data) { + var size = data.size; + + for (var col = 0; col < size; col++) { + for (var row = 0; row < size; row++) { + if (data.isReserved(row, col)) continue + data.xor(row, col, getMaskAt(pattern, row, col)); + } + } + }; + + /** + * Returns the best mask pattern for data + * + * @param {BitMatrix} data + * @return {Number} Mask pattern reference number + */ + exports.getBestMask = function getBestMask (data, setupFormatFunc) { + var numPatterns = Object.keys(exports.Patterns).length; + var bestPattern = 0; + var lowerPenalty = Infinity; + + for (var p = 0; p < numPatterns; p++) { + setupFormatFunc(p); + exports.applyMask(p, data); + + // Calculate penalty + var penalty = + exports.getPenaltyN1(data) + + exports.getPenaltyN2(data) + + exports.getPenaltyN3(data) + + exports.getPenaltyN4(data); + + // Undo previously applied mask + exports.applyMask(p, data); + + if (penalty < lowerPenalty) { + lowerPenalty = penalty; + bestPattern = p; + } + } + + return bestPattern + }; + + },{}],14:[function(require,module,exports){ + var VersionCheck = require('./version-check'); + var Regex = require('./regex'); + + /** + * Numeric mode encodes data from the decimal digit set (0 - 9) + * (byte values 30HEX to 39HEX). + * Normally, 3 data characters are represented by 10 bits. + * + * @type {Object} + */ + exports.NUMERIC = { + id: 'Numeric', + bit: 1 << 0, + ccBits: [10, 12, 14] + }; + + /** + * Alphanumeric mode encodes data from a set of 45 characters, + * i.e. 10 numeric digits (0 - 9), + * 26 alphabetic characters (A - Z), + * and 9 symbols (SP, $, %, *, +, -, ., /, :). + * Normally, two input characters are represented by 11 bits. + * + * @type {Object} + */ + exports.ALPHANUMERIC = { + id: 'Alphanumeric', + bit: 1 << 1, + ccBits: [9, 11, 13] + }; + + /** + * In byte mode, data is encoded at 8 bits per character. + * + * @type {Object} + */ + exports.BYTE = { + id: 'Byte', + bit: 1 << 2, + ccBits: [8, 16, 16] + }; + + /** + * The Kanji mode efficiently encodes Kanji characters in accordance with + * the Shift JIS system based on JIS X 0208. + * The Shift JIS values are shifted from the JIS X 0208 values. + * JIS X 0208 gives details of the shift coded representation. + * Each two-byte character value is compacted to a 13-bit binary codeword. + * + * @type {Object} + */ + exports.KANJI = { + id: 'Kanji', + bit: 1 << 3, + ccBits: [8, 10, 12] + }; + + /** + * Mixed mode will contain a sequences of data in a combination of any of + * the modes described above + * + * @type {Object} + */ + exports.MIXED = { + bit: -1 + }; + + /** + * Returns the number of bits needed to store the data length + * according to QR Code specifications. + * + * @param {Mode} mode Data mode + * @param {Number} version QR Code version + * @return {Number} Number of bits + */ + exports.getCharCountIndicator = function getCharCountIndicator (mode, version) { + if (!mode.ccBits) throw new Error('Invalid mode: ' + mode) + + if (!VersionCheck.isValid(version)) { + throw new Error('Invalid version: ' + version) + } + + if (version >= 1 && version < 10) return mode.ccBits[0] + else if (version < 27) return mode.ccBits[1] + return mode.ccBits[2] + }; + + /** + * Returns the most efficient mode to store the specified data + * + * @param {String} dataStr Input data string + * @return {Mode} Best mode + */ + exports.getBestModeForData = function getBestModeForData (dataStr) { + if (Regex.testNumeric(dataStr)) return exports.NUMERIC + else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC + else if (Regex.testKanji(dataStr)) return exports.KANJI + else return exports.BYTE + }; + + /** + * Return mode name as string + * + * @param {Mode} mode Mode object + * @returns {String} Mode name + */ + exports.toString = function toString (mode) { + if (mode && mode.id) return mode.id + throw new Error('Invalid mode') + }; + + /** + * Check if input param is a valid mode object + * + * @param {Mode} mode Mode object + * @returns {Boolean} True if valid mode, false otherwise + */ + exports.isValid = function isValid (mode) { + return mode && mode.bit && mode.ccBits + }; + + /** + * Get mode object from its name + * + * @param {String} string Mode name + * @returns {Mode} Mode object + */ + function fromString (string) { + if (typeof string !== 'string') { + throw new Error('Param is not a string') + } + + var lcStr = string.toLowerCase(); + + switch (lcStr) { + case 'numeric': + return exports.NUMERIC + case 'alphanumeric': + return exports.ALPHANUMERIC + case 'kanji': + return exports.KANJI + case 'byte': + return exports.BYTE + default: + throw new Error('Unknown mode: ' + string) + } + } + + /** + * Returns mode from a value. + * If value is not a valid mode, returns defaultValue + * + * @param {Mode|String} value Encoding mode + * @param {Mode} defaultValue Fallback value + * @return {Mode} Encoding mode + */ + exports.from = function from (value, defaultValue) { + if (exports.isValid(value)) { + return value + } + + try { + return fromString(value) + } catch (e) { + return defaultValue + } + }; + + },{"./regex":19,"./version-check":22}],15:[function(require,module,exports){ + var Mode = require('./mode'); + + function NumericData (data) { + this.mode = Mode.NUMERIC; + this.data = data.toString(); + } + + NumericData.getBitsLength = function getBitsLength (length) { + return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0) + }; + + NumericData.prototype.getLength = function getLength () { + return this.data.length + }; + + NumericData.prototype.getBitsLength = function getBitsLength () { + return NumericData.getBitsLength(this.data.length) + }; + + NumericData.prototype.write = function write (bitBuffer) { + var i, group, value; + + // The input data string is divided into groups of three digits, + // and each group is converted to its 10-bit binary equivalent. + for (i = 0; i + 3 <= this.data.length; i += 3) { + group = this.data.substr(i, 3); + value = parseInt(group, 10); + + bitBuffer.put(value, 10); + } + + // If the number of input digits is not an exact multiple of three, + // the final one or two digits are converted to 4 or 7 bits respectively. + var remainingNum = this.data.length - i; + if (remainingNum > 0) { + group = this.data.substr(i); + value = parseInt(group, 10); + + bitBuffer.put(value, remainingNum * 3 + 1); + } + }; + + module.exports = NumericData; + + },{"./mode":14}],16:[function(require,module,exports){ + var BufferUtil = require('../utils/buffer'); + var GF = require('./galois-field'); + + /** + * Multiplies two polynomials inside Galois Field + * + * @param {Buffer} p1 Polynomial + * @param {Buffer} p2 Polynomial + * @return {Buffer} Product of p1 and p2 + */ + exports.mul = function mul (p1, p2) { + var coeff = BufferUtil.alloc(p1.length + p2.length - 1); + + for (var i = 0; i < p1.length; i++) { + for (var j = 0; j < p2.length; j++) { + coeff[i + j] ^= GF.mul(p1[i], p2[j]); + } + } + + return coeff + }; + + /** + * Calculate the remainder of polynomials division + * + * @param {Buffer} divident Polynomial + * @param {Buffer} divisor Polynomial + * @return {Buffer} Remainder + */ + exports.mod = function mod (divident, divisor) { + var result = BufferUtil.from(divident); + + while ((result.length - divisor.length) >= 0) { + var coeff = result[0]; + + for (var i = 0; i < divisor.length; i++) { + result[i] ^= GF.mul(divisor[i], coeff); + } + + // remove all zeros from buffer head + var offset = 0; + while (offset < result.length && result[offset] === 0) offset++; + result = result.slice(offset); + } + + return result + }; + + /** + * Generate an irreducible generator polynomial of specified degree + * (used by Reed-Solomon encoder) + * + * @param {Number} degree Degree of the generator polynomial + * @return {Buffer} Buffer containing polynomial coefficients + */ + exports.generateECPolynomial = function generateECPolynomial (degree) { + var poly = BufferUtil.from([1]); + for (var i = 0; i < degree; i++) { + poly = exports.mul(poly, [1, GF.exp(i)]); + } + + return poly + }; + + },{"../utils/buffer":28,"./galois-field":11}],17:[function(require,module,exports){ + var BufferUtil = require('../utils/buffer'); + var Utils = require('./utils'); + var ECLevel = require('./error-correction-level'); + var BitBuffer = require('./bit-buffer'); + var BitMatrix = require('./bit-matrix'); + var AlignmentPattern = require('./alignment-pattern'); + var FinderPattern = require('./finder-pattern'); + var MaskPattern = require('./mask-pattern'); + var ECCode = require('./error-correction-code'); + var ReedSolomonEncoder = require('./reed-solomon-encoder'); + var Version = require('./version'); + var FormatInfo = require('./format-info'); + var Mode = require('./mode'); + var Segments = require('./segments'); + var isArray = require('isarray'); + + /** + * QRCode for JavaScript + * + * modified by Ryan Day for nodejs support + * Copyright (c) 2011 Ryan Day + * + * Licensed under the MIT license: + * http://www.opensource.org/licenses/mit-license.php + * + //--------------------------------------------------------------------- + // QRCode for JavaScript + // + // Copyright (c) 2009 Kazuhiko Arase + // + // URL: http://www.d-project.com/ + // + // Licensed under the MIT license: + // http://www.opensource.org/licenses/mit-license.php + // + // The word "QR Code" is registered trademark of + // DENSO WAVE INCORPORATED + // http://www.denso-wave.com/qrcode/faqpatent-e.html + // + //--------------------------------------------------------------------- + */ + + /** + * Add finder patterns bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ + function setupFinderPattern (matrix, version) { + var size = matrix.size; + var pos = FinderPattern.getPositions(version); + + for (var i = 0; i < pos.length; i++) { + var row = pos[i][0]; + var col = pos[i][1]; + + for (var r = -1; r <= 7; r++) { + if (row + r <= -1 || size <= row + r) continue + + for (var c = -1; c <= 7; c++) { + if (col + c <= -1 || size <= col + c) continue + + if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) || + (c >= 0 && c <= 6 && (r === 0 || r === 6)) || + (r >= 2 && r <= 4 && c >= 2 && c <= 4)) { + matrix.set(row + r, col + c, true, true); + } else { + matrix.set(row + r, col + c, false, true); + } + } + } + } + } + + /** + * Add timing pattern bits to matrix + * + * Note: this function must be called before {@link setupAlignmentPattern} + * + * @param {BitMatrix} matrix Modules matrix + */ + function setupTimingPattern (matrix) { + var size = matrix.size; + + for (var r = 8; r < size - 8; r++) { + var value = r % 2 === 0; + matrix.set(r, 6, value, true); + matrix.set(6, r, value, true); + } + } + + /** + * Add alignment patterns bits to matrix + * + * Note: this function must be called after {@link setupTimingPattern} + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ + function setupAlignmentPattern (matrix, version) { + var pos = AlignmentPattern.getPositions(version); + + for (var i = 0; i < pos.length; i++) { + var row = pos[i][0]; + var col = pos[i][1]; + + for (var r = -2; r <= 2; r++) { + for (var c = -2; c <= 2; c++) { + if (r === -2 || r === 2 || c === -2 || c === 2 || + (r === 0 && c === 0)) { + matrix.set(row + r, col + c, true, true); + } else { + matrix.set(row + r, col + c, false, true); + } + } + } + } + } + + /** + * Add version info bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Number} version QR Code version + */ + function setupVersionInfo (matrix, version) { + var size = matrix.size; + var bits = Version.getEncodedBits(version); + var row, col, mod; + + for (var i = 0; i < 18; i++) { + row = Math.floor(i / 3); + col = i % 3 + size - 8 - 3; + mod = ((bits >> i) & 1) === 1; + + matrix.set(row, col, mod, true); + matrix.set(col, row, mod, true); + } + } + + /** + * Add format info bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @param {Number} maskPattern Mask pattern reference value + */ + function setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) { + var size = matrix.size; + var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern); + var i, mod; + + for (i = 0; i < 15; i++) { + mod = ((bits >> i) & 1) === 1; + + // vertical + if (i < 6) { + matrix.set(i, 8, mod, true); + } else if (i < 8) { + matrix.set(i + 1, 8, mod, true); + } else { + matrix.set(size - 15 + i, 8, mod, true); + } + + // horizontal + if (i < 8) { + matrix.set(8, size - i - 1, mod, true); + } else if (i < 9) { + matrix.set(8, 15 - i - 1 + 1, mod, true); + } else { + matrix.set(8, 15 - i - 1, mod, true); + } + } + + // fixed module + matrix.set(size - 8, 8, 1, true); + } + + /** + * Add encoded data bits to matrix + * + * @param {BitMatrix} matrix Modules matrix + * @param {Buffer} data Data codewords + */ + function setupData (matrix, data) { + var size = matrix.size; + var inc = -1; + var row = size - 1; + var bitIndex = 7; + var byteIndex = 0; + + for (var col = size - 1; col > 0; col -= 2) { + if (col === 6) col--; + + while (true) { + for (var c = 0; c < 2; c++) { + if (!matrix.isReserved(row, col - c)) { + var dark = false; + + if (byteIndex < data.length) { + dark = (((data[byteIndex] >>> bitIndex) & 1) === 1); + } + + matrix.set(row, col - c, dark); + bitIndex--; + + if (bitIndex === -1) { + byteIndex++; + bitIndex = 7; + } + } + } + + row += inc; + + if (row < 0 || size <= row) { + row -= inc; + inc = -inc; + break + } + } + } + } + + /** + * Create encoded codewords from data input + * + * @param {Number} version QR Code version + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @param {ByteData} data Data input + * @return {Buffer} Buffer containing encoded codewords + */ + function createData (version, errorCorrectionLevel, segments) { + // Prepare data buffer + var buffer = new BitBuffer(); + + segments.forEach(function (data) { + // prefix data with mode indicator (4 bits) + buffer.put(data.mode.bit, 4); + + // Prefix data with character count indicator. + // The character count indicator is a string of bits that represents the + // number of characters that are being encoded. + // The character count indicator must be placed after the mode indicator + // and must be a certain number of bits long, depending on the QR version + // and data mode + // @see {@link Mode.getCharCountIndicator}. + buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version)); + + // add binary data sequence to buffer + data.write(buffer); + }); + + // Calculate required number of bits + var totalCodewords = Utils.getSymbolTotalCodewords(version); + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel); + var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8; + + // Add a terminator. + // If the bit string is shorter than the total number of required bits, + // a terminator of up to four 0s must be added to the right side of the string. + // If the bit string is more than four bits shorter than the required number of bits, + // add four 0s to the end. + if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) { + buffer.put(0, 4); + } + + // If the bit string is fewer than four bits shorter, add only the number of 0s that + // are needed to reach the required number of bits. + + // After adding the terminator, if the number of bits in the string is not a multiple of 8, + // pad the string on the right with 0s to make the string's length a multiple of 8. + while (buffer.getLengthInBits() % 8 !== 0) { + buffer.putBit(0); + } + + // Add pad bytes if the string is still shorter than the total number of required bits. + // Extend the buffer to fill the data capacity of the symbol corresponding to + // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC) + // and 00010001 (0x11) alternately. + var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8; + for (var i = 0; i < remainingByte; i++) { + buffer.put(i % 2 ? 0x11 : 0xEC, 8); + } + + return createCodewords(buffer, version, errorCorrectionLevel) + } + + /** + * Encode input data with Reed-Solomon and return codewords with + * relative error correction bits + * + * @param {BitBuffer} bitBuffer Data to encode + * @param {Number} version QR Code version + * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level + * @return {Buffer} Buffer containing encoded codewords + */ + function createCodewords (bitBuffer, version, errorCorrectionLevel) { + // Total codewords for this QR code version (Data + Error correction) + var totalCodewords = Utils.getSymbolTotalCodewords(version); + + // Total number of error correction codewords + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel); + + // Total number of data codewords + var dataTotalCodewords = totalCodewords - ecTotalCodewords; + + // Total number of blocks + var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel); + + // Calculate how many blocks each group should contain + var blocksInGroup2 = totalCodewords % ecTotalBlocks; + var blocksInGroup1 = ecTotalBlocks - blocksInGroup2; + + var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks); + + var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks); + var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1; + + // Number of EC codewords is the same for both groups + var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1; + + // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount + var rs = new ReedSolomonEncoder(ecCount); + + var offset = 0; + var dcData = new Array(ecTotalBlocks); + var ecData = new Array(ecTotalBlocks); + var maxDataSize = 0; + var buffer = BufferUtil.from(bitBuffer.buffer); + + // Divide the buffer into the required number of blocks + for (var b = 0; b < ecTotalBlocks; b++) { + var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2; + + // extract a block of data from buffer + dcData[b] = buffer.slice(offset, offset + dataSize); + + // Calculate EC codewords for this data block + ecData[b] = rs.encode(dcData[b]); + + offset += dataSize; + maxDataSize = Math.max(maxDataSize, dataSize); + } + + // Create final data + // Interleave the data and error correction codewords from each block + var data = BufferUtil.alloc(totalCodewords); + var index = 0; + var i, r; + + // Add data codewords + for (i = 0; i < maxDataSize; i++) { + for (r = 0; r < ecTotalBlocks; r++) { + if (i < dcData[r].length) { + data[index++] = dcData[r][i]; + } + } + } + + // Apped EC codewords + for (i = 0; i < ecCount; i++) { + for (r = 0; r < ecTotalBlocks; r++) { + data[index++] = ecData[r][i]; + } + } + + return data + } + + /** + * Build QR Code symbol + * + * @param {String} data Input string + * @param {Number} version QR Code version + * @param {ErrorCorretionLevel} errorCorrectionLevel Error level + * @param {MaskPattern} maskPattern Mask pattern + * @return {Object} Object containing symbol data + */ + function createSymbol (data, version, errorCorrectionLevel, maskPattern) { + var segments; + + if (isArray(data)) { + segments = Segments.fromArray(data); + } else if (typeof data === 'string') { + var estimatedVersion = version; + + if (!estimatedVersion) { + var rawSegments = Segments.rawSplit(data); + + // Estimate best version that can contain raw splitted segments + estimatedVersion = Version.getBestVersionForData(rawSegments, + errorCorrectionLevel); + } + + // Build optimized segments + // If estimated version is undefined, try with the highest version + segments = Segments.fromString(data, estimatedVersion || 40); + } else { + throw new Error('Invalid data') + } + + // Get the min version that can contain data + var bestVersion = Version.getBestVersionForData(segments, + errorCorrectionLevel); + + // If no version is found, data cannot be stored + if (!bestVersion) { + throw new Error('The amount of data is too big to be stored in a QR Code') + } + + // If not specified, use min version as default + if (!version) { + version = bestVersion; + + // Check if the specified version can contain the data + } else if (version < bestVersion) { + throw new Error('\n' + + 'The chosen QR Code version cannot contain this amount of data.\n' + + 'Minimum version required to store current data is: ' + bestVersion + '.\n' + ) + } + + var dataBits = createData(version, errorCorrectionLevel, segments); + + // Allocate matrix buffer + var moduleCount = Utils.getSymbolSize(version); + var modules = new BitMatrix(moduleCount); + + // Add function modules + setupFinderPattern(modules, version); + setupTimingPattern(modules); + setupAlignmentPattern(modules, version); + + // Add temporary dummy bits for format info just to set them as reserved. + // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask} + // since the masking operation must be performed only on the encoding region. + // These blocks will be replaced with correct values later in code. + setupFormatInfo(modules, errorCorrectionLevel, 0); + + if (version >= 7) { + setupVersionInfo(modules, version); + } + + // Add data codewords + setupData(modules, dataBits); + + if (isNaN(maskPattern)) { + // Find best mask pattern + maskPattern = MaskPattern.getBestMask(modules, + setupFormatInfo.bind(null, modules, errorCorrectionLevel)); + } + + // Apply mask pattern + MaskPattern.applyMask(maskPattern, modules); + + // Replace format info bits with correct values + setupFormatInfo(modules, errorCorrectionLevel, maskPattern); + + return { + modules: modules, + version: version, + errorCorrectionLevel: errorCorrectionLevel, + maskPattern: maskPattern, + segments: segments + } + } + + /** + * QR Code + * + * @param {String | Array} data Input data + * @param {Object} options Optional configurations + * @param {Number} options.version QR Code version + * @param {String} options.errorCorrectionLevel Error correction level + * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis + */ + exports.create = function create (data, options) { + if (typeof data === 'undefined' || data === '') { + throw new Error('No input text') + } + + var errorCorrectionLevel = ECLevel.M; + var version; + var mask; + + if (typeof options !== 'undefined') { + // Use higher error correction level as default + errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M); + version = Version.from(options.version); + mask = MaskPattern.from(options.maskPattern); + + if (options.toSJISFunc) { + Utils.setToSJISFunction(options.toSJISFunc); + } + } + + return createSymbol(data, version, errorCorrectionLevel, mask) + }; + + },{"../utils/buffer":28,"./alignment-pattern":2,"./bit-buffer":4,"./bit-matrix":5,"./error-correction-code":7,"./error-correction-level":8,"./finder-pattern":9,"./format-info":10,"./mask-pattern":13,"./mode":14,"./reed-solomon-encoder":18,"./segments":20,"./utils":21,"./version":23,"isarray":33}],18:[function(require,module,exports){ + var BufferUtil = require('../utils/buffer'); + var Polynomial = require('./polynomial'); + var Buffer = require('buffer').Buffer; + + function ReedSolomonEncoder (degree) { + this.genPoly = undefined; + this.degree = degree; + + if (this.degree) this.initialize(this.degree); + } + + /** + * Initialize the encoder. + * The input param should correspond to the number of error correction codewords. + * + * @param {Number} degree + */ + ReedSolomonEncoder.prototype.initialize = function initialize (degree) { + // create an irreducible generator polynomial + this.degree = degree; + this.genPoly = Polynomial.generateECPolynomial(this.degree); + }; + + /** + * Encodes a chunk of data + * + * @param {Buffer} data Buffer containing input data + * @return {Buffer} Buffer containing encoded data + */ + ReedSolomonEncoder.prototype.encode = function encode (data) { + if (!this.genPoly) { + throw new Error('Encoder not initialized') + } + + // Calculate EC for this data block + // extends data size to data+genPoly size + var pad = BufferUtil.alloc(this.degree); + var paddedData = Buffer.concat([data, pad], data.length + this.degree); + + // The error correction codewords are the remainder after dividing the data codewords + // by a generator polynomial + var remainder = Polynomial.mod(paddedData, this.genPoly); + + // return EC data blocks (last n byte, where n is the degree of genPoly) + // If coefficients number in remainder are less than genPoly degree, + // pad with 0s to the left to reach the needed number of coefficients + var start = this.degree - remainder.length; + if (start > 0) { + var buff = BufferUtil.alloc(this.degree); + remainder.copy(buff, start); + + return buff + } + + return remainder + }; + + module.exports = ReedSolomonEncoder; + + },{"../utils/buffer":28,"./polynomial":16,"buffer":30}],19:[function(require,module,exports){ + var numeric = '[0-9]+'; + var alphanumeric = '[A-Z $%*+\\-./:]+'; + var kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' + + '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' + + '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' + + '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+'; + kanji = kanji.replace(/u/g, '\\u'); + + var byte = '(?:(?![A-Z0-9 $%*+\\-./:]|' + kanji + ')(?:.|[\r\n]))+'; + + exports.KANJI = new RegExp(kanji, 'g'); + exports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\-./:]+', 'g'); + exports.BYTE = new RegExp(byte, 'g'); + exports.NUMERIC = new RegExp(numeric, 'g'); + exports.ALPHANUMERIC = new RegExp(alphanumeric, 'g'); + + var TEST_KANJI = new RegExp('^' + kanji + '$'); + var TEST_NUMERIC = new RegExp('^' + numeric + '$'); + var TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\-./:]+$'); + + exports.testKanji = function testKanji (str) { + return TEST_KANJI.test(str) + }; + + exports.testNumeric = function testNumeric (str) { + return TEST_NUMERIC.test(str) + }; + + exports.testAlphanumeric = function testAlphanumeric (str) { + return TEST_ALPHANUMERIC.test(str) + }; + + },{}],20:[function(require,module,exports){ + var Mode = require('./mode'); + var NumericData = require('./numeric-data'); + var AlphanumericData = require('./alphanumeric-data'); + var ByteData = require('./byte-data'); + var KanjiData = require('./kanji-data'); + var Regex = require('./regex'); + var Utils = require('./utils'); + var dijkstra = require('dijkstrajs'); + + /** + * Returns UTF8 byte length + * + * @param {String} str Input string + * @return {Number} Number of byte + */ + function getStringByteLength (str) { + return unescape(encodeURIComponent(str)).length + } + + /** + * Get a list of segments of the specified mode + * from a string + * + * @param {Mode} mode Segment mode + * @param {String} str String to process + * @return {Array} Array of object with segments data + */ + function getSegments (regex, mode, str) { + var segments = []; + var result; + + while ((result = regex.exec(str)) !== null) { + segments.push({ + data: result[0], + index: result.index, + mode: mode, + length: result[0].length + }); + } + + return segments + } + + /** + * Extracts a series of segments with the appropriate + * modes from a string + * + * @param {String} dataStr Input string + * @return {Array} Array of object with segments data + */ + function getSegmentsFromString (dataStr) { + var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr); + var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr); + var byteSegs; + var kanjiSegs; + + if (Utils.isKanjiModeEnabled()) { + byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr); + kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr); + } else { + byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr); + kanjiSegs = []; + } + + var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs); + + return segs + .sort(function (s1, s2) { + return s1.index - s2.index + }) + .map(function (obj) { + return { + data: obj.data, + mode: obj.mode, + length: obj.length + } + }) + } + + /** + * Returns how many bits are needed to encode a string of + * specified length with the specified mode + * + * @param {Number} length String length + * @param {Mode} mode Segment mode + * @return {Number} Bit length + */ + function getSegmentBitsLength (length, mode) { + switch (mode) { + case Mode.NUMERIC: + return NumericData.getBitsLength(length) + case Mode.ALPHANUMERIC: + return AlphanumericData.getBitsLength(length) + case Mode.KANJI: + return KanjiData.getBitsLength(length) + case Mode.BYTE: + return ByteData.getBitsLength(length) + } + } + + /** + * Merges adjacent segments which have the same mode + * + * @param {Array} segs Array of object with segments data + * @return {Array} Array of object with segments data + */ + function mergeSegments (segs) { + return segs.reduce(function (acc, curr) { + var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null; + if (prevSeg && prevSeg.mode === curr.mode) { + acc[acc.length - 1].data += curr.data; + return acc + } + + acc.push(curr); + return acc + }, []) + } + + /** + * Generates a list of all possible nodes combination which + * will be used to build a segments graph. + * + * Nodes are divided by groups. Each group will contain a list of all the modes + * in which is possible to encode the given text. + * + * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte. + * The group for '12345' will contain then 3 objects, one for each + * possible encoding mode. + * + * Each node represents a possible segment. + * + * @param {Array} segs Array of object with segments data + * @return {Array} Array of object with segments data + */ + function buildNodes (segs) { + var nodes = []; + for (var i = 0; i < segs.length; i++) { + var seg = segs[i]; + + switch (seg.mode) { + case Mode.NUMERIC: + nodes.push([seg, + { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length }, + { data: seg.data, mode: Mode.BYTE, length: seg.length } + ]); + break + case Mode.ALPHANUMERIC: + nodes.push([seg, + { data: seg.data, mode: Mode.BYTE, length: seg.length } + ]); + break + case Mode.KANJI: + nodes.push([seg, + { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) } + ]); + break + case Mode.BYTE: + nodes.push([ + { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) } + ]); + } + } + + return nodes + } + + /** + * Builds a graph from a list of nodes. + * All segments in each node group will be connected with all the segments of + * the next group and so on. + * + * At each connection will be assigned a weight depending on the + * segment's byte length. + * + * @param {Array} nodes Array of object with segments data + * @param {Number} version QR Code version + * @return {Object} Graph of all possible segments + */ + function buildGraph (nodes, version) { + var table = {}; + var graph = {'start': {}}; + var prevNodeIds = ['start']; + + for (var i = 0; i < nodes.length; i++) { + var nodeGroup = nodes[i]; + var currentNodeIds = []; + + for (var j = 0; j < nodeGroup.length; j++) { + var node = nodeGroup[j]; + var key = '' + i + j; + + currentNodeIds.push(key); + table[key] = { node: node, lastCount: 0 }; + graph[key] = {}; + + for (var n = 0; n < prevNodeIds.length; n++) { + var prevNodeId = prevNodeIds[n]; + + if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) { + graph[prevNodeId][key] = + getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) - + getSegmentBitsLength(table[prevNodeId].lastCount, node.mode); + + table[prevNodeId].lastCount += node.length; + } else { + if (table[prevNodeId]) table[prevNodeId].lastCount = node.length; + + graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) + + 4 + Mode.getCharCountIndicator(node.mode, version); // switch cost + } + } + } + + prevNodeIds = currentNodeIds; + } + + for (n = 0; n < prevNodeIds.length; n++) { + graph[prevNodeIds[n]]['end'] = 0; + } + + return { map: graph, table: table } + } + + /** + * Builds a segment from a specified data and mode. + * If a mode is not specified, the more suitable will be used. + * + * @param {String} data Input data + * @param {Mode | String} modesHint Data mode + * @return {Segment} Segment + */ + function buildSingleSegment (data, modesHint) { + var mode; + var bestMode = Mode.getBestModeForData(data); + + mode = Mode.from(modesHint, bestMode); + + // Make sure data can be encoded + if (mode !== Mode.BYTE && mode.bit < bestMode.bit) { + throw new Error('"' + data + '"' + + ' cannot be encoded with mode ' + Mode.toString(mode) + + '.\n Suggested mode is: ' + Mode.toString(bestMode)) + } + + // Use Mode.BYTE if Kanji support is disabled + if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) { + mode = Mode.BYTE; + } + + switch (mode) { + case Mode.NUMERIC: + return new NumericData(data) + + case Mode.ALPHANUMERIC: + return new AlphanumericData(data) + + case Mode.KANJI: + return new KanjiData(data) + + case Mode.BYTE: + return new ByteData(data) + } + } + + /** + * Builds a list of segments from an array. + * Array can contain Strings or Objects with segment's info. + * + * For each item which is a string, will be generated a segment with the given + * string and the more appropriate encoding mode. + * + * For each item which is an object, will be generated a segment with the given + * data and mode. + * Objects must contain at least the property "data". + * If property "mode" is not present, the more suitable mode will be used. + * + * @param {Array} array Array of objects with segments data + * @return {Array} Array of Segments + */ + exports.fromArray = function fromArray (array) { + return array.reduce(function (acc, seg) { + if (typeof seg === 'string') { + acc.push(buildSingleSegment(seg, null)); + } else if (seg.data) { + acc.push(buildSingleSegment(seg.data, seg.mode)); + } + + return acc + }, []) + }; + + /** + * Builds an optimized sequence of segments from a string, + * which will produce the shortest possible bitstream. + * + * @param {String} data Input string + * @param {Number} version QR Code version + * @return {Array} Array of segments + */ + exports.fromString = function fromString (data, version) { + var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled()); + + var nodes = buildNodes(segs); + var graph = buildGraph(nodes, version); + var path = dijkstra.find_path(graph.map, 'start', 'end'); + + var optimizedSegs = []; + for (var i = 1; i < path.length - 1; i++) { + optimizedSegs.push(graph.table[path[i]].node); + } + + return exports.fromArray(mergeSegments(optimizedSegs)) + }; + + /** + * Splits a string in various segments with the modes which + * best represent their content. + * The produced segments are far from being optimized. + * The output of this function is only used to estimate a QR Code version + * which may contain the data. + * + * @param {string} data Input string + * @return {Array} Array of segments + */ + exports.rawSplit = function rawSplit (data) { + return exports.fromArray( + getSegmentsFromString(data, Utils.isKanjiModeEnabled()) + ) + }; + + },{"./alphanumeric-data":3,"./byte-data":6,"./kanji-data":12,"./mode":14,"./numeric-data":15,"./regex":19,"./utils":21,"dijkstrajs":31}],21:[function(require,module,exports){ + var toSJISFunction; + var CODEWORDS_COUNT = [ + 0, // Not used + 26, 44, 70, 100, 134, 172, 196, 242, 292, 346, + 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085, + 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185, + 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706 + ]; + + /** + * Returns the QR Code size for the specified version + * + * @param {Number} version QR Code version + * @return {Number} size of QR code + */ + exports.getSymbolSize = function getSymbolSize (version) { + if (!version) throw new Error('"version" cannot be null or undefined') + if (version < 1 || version > 40) throw new Error('"version" should be in range from 1 to 40') + return version * 4 + 17 + }; + + /** + * Returns the total number of codewords used to store data and EC information. + * + * @param {Number} version QR Code version + * @return {Number} Data length in bits + */ + exports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) { + return CODEWORDS_COUNT[version] + }; + + /** + * Encode data with Bose-Chaudhuri-Hocquenghem + * + * @param {Number} data Value to encode + * @return {Number} Encoded value + */ + exports.getBCHDigit = function (data) { + var digit = 0; + + while (data !== 0) { + digit++; + data >>>= 1; + } + + return digit + }; + + exports.setToSJISFunction = function setToSJISFunction (f) { + if (typeof f !== 'function') { + throw new Error('"toSJISFunc" is not a valid function.') + } + + toSJISFunction = f; + }; + + exports.isKanjiModeEnabled = function () { + return typeof toSJISFunction !== 'undefined' + }; + + exports.toSJIS = function toSJIS (kanji) { + return toSJISFunction(kanji) + }; + + },{}],22:[function(require,module,exports){ + /** + * Check if QR Code version is valid + * + * @param {Number} version QR Code version + * @return {Boolean} true if valid version, false otherwise + */ + exports.isValid = function isValid (version) { + return !isNaN(version) && version >= 1 && version <= 40 + }; + + },{}],23:[function(require,module,exports){ + var Utils = require('./utils'); + var ECCode = require('./error-correction-code'); + var ECLevel = require('./error-correction-level'); + var Mode = require('./mode'); + var VersionCheck = require('./version-check'); + var isArray = require('isarray'); + + // Generator polynomial used to encode version information + var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0); + var G18_BCH = Utils.getBCHDigit(G18); + + function getBestVersionForDataLength (mode, length, errorCorrectionLevel) { + for (var currentVersion = 1; currentVersion <= 40; currentVersion++) { + if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) { + return currentVersion + } + } + + return undefined + } + + function getReservedBitsCount (mode, version) { + // Character count indicator + mode indicator bits + return Mode.getCharCountIndicator(mode, version) + 4 + } + + function getTotalBitsFromDataArray (segments, version) { + var totalBits = 0; + + segments.forEach(function (data) { + var reservedBits = getReservedBitsCount(data.mode, version); + totalBits += reservedBits + data.getBitsLength(); + }); + + return totalBits + } + + function getBestVersionForMixedData (segments, errorCorrectionLevel) { + for (var currentVersion = 1; currentVersion <= 40; currentVersion++) { + var length = getTotalBitsFromDataArray(segments, currentVersion); + if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) { + return currentVersion + } + } + + return undefined + } + + /** + * Returns version number from a value. + * If value is not a valid version, returns defaultValue + * + * @param {Number|String} value QR Code version + * @param {Number} defaultValue Fallback value + * @return {Number} QR Code version number + */ + exports.from = function from (value, defaultValue) { + if (VersionCheck.isValid(value)) { + return parseInt(value, 10) + } + + return defaultValue + }; + + /** + * Returns how much data can be stored with the specified QR code version + * and error correction level + * + * @param {Number} version QR Code version (1-40) + * @param {Number} errorCorrectionLevel Error correction level + * @param {Mode} mode Data mode + * @return {Number} Quantity of storable data + */ + exports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) { + if (!VersionCheck.isValid(version)) { + throw new Error('Invalid QR Code version') + } + + // Use Byte mode as default + if (typeof mode === 'undefined') mode = Mode.BYTE; + + // Total codewords for this QR code version (Data + Error correction) + var totalCodewords = Utils.getSymbolTotalCodewords(version); + + // Total number of error correction codewords + var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel); + + // Total number of data codewords + var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8; + + if (mode === Mode.MIXED) return dataTotalCodewordsBits + + var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version); + + // Return max number of storable codewords + switch (mode) { + case Mode.NUMERIC: + return Math.floor((usableBits / 10) * 3) + + case Mode.ALPHANUMERIC: + return Math.floor((usableBits / 11) * 2) + + case Mode.KANJI: + return Math.floor(usableBits / 13) + + case Mode.BYTE: + default: + return Math.floor(usableBits / 8) + } + }; + + /** + * Returns the minimum version needed to contain the amount of data + * + * @param {Segment} data Segment of data + * @param {Number} [errorCorrectionLevel=H] Error correction level + * @param {Mode} mode Data mode + * @return {Number} QR Code version + */ + exports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) { + var seg; + + var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M); + + if (isArray(data)) { + if (data.length > 1) { + return getBestVersionForMixedData(data, ecl) + } + + if (data.length === 0) { + return 1 + } + + seg = data[0]; + } else { + seg = data; + } + + return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl) + }; + + /** + * Returns version information with relative error correction bits + * + * The version information is included in QR Code symbols of version 7 or larger. + * It consists of an 18-bit sequence containing 6 data bits, + * with 12 error correction bits calculated using the (18, 6) Golay code. + * + * @param {Number} version QR Code version + * @return {Number} Encoded version info bits + */ + exports.getEncodedBits = function getEncodedBits (version) { + if (!VersionCheck.isValid(version) || version < 7) { + throw new Error('Invalid QR Code version') + } + + var d = version << 12; + + while (Utils.getBCHDigit(d) - G18_BCH >= 0) { + d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH)); + } + + return (version << 12) | d + }; + + },{"./error-correction-code":7,"./error-correction-level":8,"./mode":14,"./utils":21,"./version-check":22,"isarray":33}],24:[function(require,module,exports){ + + var canPromise = require('./can-promise'); + + var QRCode = require('./core/qrcode'); + var CanvasRenderer = require('./renderer/canvas'); + var SvgRenderer = require('./renderer/svg-tag.js'); + + function renderCanvas (renderFunc, canvas, text, opts, cb) { + var args = [].slice.call(arguments, 1); + var argsNum = args.length; + var isLastArgCb = typeof args[argsNum - 1] === 'function'; + + if (!isLastArgCb && !canPromise()) { + throw new Error('Callback required as last argument') + } + + if (isLastArgCb) { + if (argsNum < 2) { + throw new Error('Too few arguments provided') + } + + if (argsNum === 2) { + cb = text; + text = canvas; + canvas = opts = undefined; + } else if (argsNum === 3) { + if (canvas.getContext && typeof cb === 'undefined') { + cb = opts; + opts = undefined; + } else { + cb = opts; + opts = text; + text = canvas; + canvas = undefined; + } + } + } else { + if (argsNum < 1) { + throw new Error('Too few arguments provided') + } + + if (argsNum === 1) { + text = canvas; + canvas = opts = undefined; + } else if (argsNum === 2 && !canvas.getContext) { + opts = text; + text = canvas; + canvas = undefined; + } + + return new Promise(function (resolve, reject) { + try { + var data = QRCode.create(text, opts); + resolve(renderFunc(data, canvas, opts)); + } catch (e) { + reject(e); + } + }) + } + + try { + var data = QRCode.create(text, opts); + cb(null, renderFunc(data, canvas, opts)); + } catch (e) { + cb(e); + } + } + + exports.create = QRCode.create; + exports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render); + exports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL); + + // only svg for now. + exports.toString = renderCanvas.bind(null, function (data, _, opts) { + return SvgRenderer.render(data, opts) + }); + + },{"./can-promise":1,"./core/qrcode":17,"./renderer/canvas":25,"./renderer/svg-tag.js":26}],25:[function(require,module,exports){ + var Utils = require('./utils'); + + function clearCanvas (ctx, canvas, size) { + ctx.clearRect(0, 0, canvas.width, canvas.height); + + if (!canvas.style) canvas.style = {}; + canvas.height = size; + canvas.width = size; + canvas.style.height = size + 'px'; + canvas.style.width = size + 'px'; + } + + function getCanvasElement () { + try { + return document.createElement('canvas') + } catch (e) { + throw new Error('You need to specify a canvas element') + } + } + + exports.render = function render (qrData, canvas, options) { + var opts = options; + var canvasEl = canvas; + + if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) { + opts = canvas; + canvas = undefined; + } + + if (!canvas) { + canvasEl = getCanvasElement(); + } + + opts = Utils.getOptions(opts); + var size = Utils.getImageWidth(qrData.modules.size, opts); + + var ctx = canvasEl.getContext('2d'); + var image = ctx.createImageData(size, size); + Utils.qrToImageData(image.data, qrData, opts); + + clearCanvas(ctx, canvasEl, size); + ctx.putImageData(image, 0, 0); + + return canvasEl + }; + + exports.renderToDataURL = function renderToDataURL (qrData, canvas, options) { + var opts = options; + + if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) { + opts = canvas; + canvas = undefined; + } + + if (!opts) opts = {}; + + var canvasEl = exports.render(qrData, canvas, opts); + + var type = opts.type || 'image/png'; + var rendererOpts = opts.rendererOpts || {}; + + return canvasEl.toDataURL(type, rendererOpts.quality) + }; + + },{"./utils":27}],26:[function(require,module,exports){ + var Utils = require('./utils'); + + function getColorAttrib (color, attrib) { + var alpha = color.a / 255; + var str = attrib + '="' + color.hex + '"'; + + return alpha < 1 + ? str + ' ' + attrib + '-opacity="' + alpha.toFixed(2).slice(1) + '"' + : str + } + + function svgCmd (cmd, x, y) { + var str = cmd + x; + if (typeof y !== 'undefined') str += ' ' + y; + + return str + } + + function qrToPath (data, size, margin) { + var path = ''; + var moveBy = 0; + var newRow = false; + var lineLength = 0; + + for (var i = 0; i < data.length; i++) { + var col = Math.floor(i % size); + var row = Math.floor(i / size); + + if (!col && !newRow) newRow = true; + + if (data[i]) { + lineLength++; + + if (!(i > 0 && col > 0 && data[i - 1])) { + path += newRow + ? svgCmd('M', col + margin, 0.5 + row + margin) + : svgCmd('m', moveBy, 0); + + moveBy = 0; + newRow = false; + } + + if (!(col + 1 < size && data[i + 1])) { + path += svgCmd('h', lineLength); + lineLength = 0; + } + } else { + moveBy++; + } + } + + return path + } + + exports.render = function render (qrData, options, cb) { + var opts = Utils.getOptions(options); + var size = qrData.modules.size; + var data = qrData.modules.data; + var qrcodesize = size + opts.margin * 2; + + var bg = !opts.color.light.a + ? '' + : ''; + + var path = + ''; + + var viewBox = 'viewBox="' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '"'; + + var width = !opts.width ? '' : 'width="' + opts.width + '" height="' + opts.width + '" '; + + var svgTag = '' + bg + path + '\n'; + + if (typeof cb === 'function') { + cb(null, svgTag); + } + + return svgTag + }; + + },{"./utils":27}],27:[function(require,module,exports){ + function hex2rgba (hex) { + if (typeof hex === 'number') { + hex = hex.toString(); + } + + if (typeof hex !== 'string') { + throw new Error('Color should be defined as hex string') + } + + var hexCode = hex.slice().replace('#', '').split(''); + if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) { + throw new Error('Invalid hex color: ' + hex) + } + + // Convert from short to long form (fff -> ffffff) + if (hexCode.length === 3 || hexCode.length === 4) { + hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) { + return [c, c] + })); + } + + // Add default alpha value + if (hexCode.length === 6) hexCode.push('F', 'F'); + + var hexValue = parseInt(hexCode.join(''), 16); + + return { + r: (hexValue >> 24) & 255, + g: (hexValue >> 16) & 255, + b: (hexValue >> 8) & 255, + a: hexValue & 255, + hex: '#' + hexCode.slice(0, 6).join('') + } + } + + exports.getOptions = function getOptions (options) { + if (!options) options = {}; + if (!options.color) options.color = {}; + + var margin = typeof options.margin === 'undefined' || + options.margin === null || + options.margin < 0 ? 4 : options.margin; + + var width = options.width && options.width >= 21 ? options.width : undefined; + var scale = options.scale || 4; + + return { + width: width, + scale: width ? 4 : scale, + margin: margin, + color: { + dark: hex2rgba(options.color.dark || '#000000ff'), + light: hex2rgba(options.color.light || '#ffffffff') + }, + type: options.type, + rendererOpts: options.rendererOpts || {} + } + }; + + exports.getScale = function getScale (qrSize, opts) { + return opts.width && opts.width >= qrSize + opts.margin * 2 + ? opts.width / (qrSize + opts.margin * 2) + : opts.scale + }; + + exports.getImageWidth = function getImageWidth (qrSize, opts) { + var scale = exports.getScale(qrSize, opts); + return Math.floor((qrSize + opts.margin * 2) * scale) + }; + + exports.qrToImageData = function qrToImageData (imgData, qr, opts) { + var size = qr.modules.size; + var data = qr.modules.data; + var scale = exports.getScale(size, opts); + var symbolSize = Math.floor((size + opts.margin * 2) * scale); + var scaledMargin = opts.margin * scale; + var palette = [opts.color.light, opts.color.dark]; + + for (var i = 0; i < symbolSize; i++) { + for (var j = 0; j < symbolSize; j++) { + var posDst = (i * symbolSize + j) * 4; + var pxColor = opts.color.light; + + if (i >= scaledMargin && j >= scaledMargin && + i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) { + var iSrc = Math.floor((i - scaledMargin) / scale); + var jSrc = Math.floor((j - scaledMargin) / scale); + pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0]; + } + + imgData[posDst++] = pxColor.r; + imgData[posDst++] = pxColor.g; + imgData[posDst++] = pxColor.b; + imgData[posDst] = pxColor.a; + } + } + }; + + },{}],28:[function(require,module,exports){ + + var isArray = require('isarray'); + + function typedArraySupport () { + // Can typed array instances be augmented? + try { + var arr = new Uint8Array(1); + arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}; + return arr.foo() === 42 + } catch (e) { + return false + } + } + + Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport(); + + var K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT + ? 0x7fffffff + : 0x3fffffff; + + function Buffer (arg, offset, length) { + if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) { + return new Buffer(arg, offset, length) + } + + if (typeof arg === 'number') { + return allocUnsafe(this, arg) + } + + return from(this, arg, offset, length) + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + Buffer.prototype.__proto__ = Uint8Array.prototype; + Buffer.__proto__ = Uint8Array; + + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + if (typeof Symbol !== 'undefined' && Symbol.species && + Buffer[Symbol.species] === Buffer) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true, + enumerable: false, + writable: false + }); + } + } + + function checked (length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') + } + return length | 0 + } + + function isnan (val) { + return val !== val // eslint-disable-line no-self-compare + } + + function createBuffer (that, length) { + var buf; + if (Buffer.TYPED_ARRAY_SUPPORT) { + buf = new Uint8Array(length); + buf.__proto__ = Buffer.prototype; + } else { + // Fallback: Return an object instance of the Buffer class + buf = that; + if (buf === null) { + buf = new Buffer(length); + } + buf.length = length; + } + + return buf + } + + function allocUnsafe (that, size) { + var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0); + + if (!Buffer.TYPED_ARRAY_SUPPORT) { + for (var i = 0; i < size; ++i) { + buf[i] = 0; + } + } + + return buf + } + + function fromString (that, string) { + var length = byteLength(string) | 0; + var buf = createBuffer(that, length); + + var actual = buf.write(string); + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual); + } + + return buf + } + + function fromArrayLike (that, array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0; + var buf = createBuffer(that, length); + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255; + } + return buf + } + + function fromArrayBuffer (that, array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('\'offset\' is out of bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('\'length\' is out of bounds') + } + + var buf; + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array); + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + + if (Buffer.TYPED_ARRAY_SUPPORT) { + // Return an augmented `Uint8Array` instance, for best performance + buf.__proto__ = Buffer.prototype; + } else { + // Fallback: Return an object instance of the Buffer class + buf = fromArrayLike(that, buf); + } + + return buf + } + + function fromObject (that, obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0; + var buf = createBuffer(that, len); + + if (buf.length === 0) { + return buf + } + + obj.copy(buf, 0, 0, len); + return buf + } + + if (obj) { + if ((typeof ArrayBuffer !== 'undefined' && + obj.buffer instanceof ArrayBuffer) || 'length' in obj) { + if (typeof obj.length !== 'number' || isnan(obj.length)) { + return createBuffer(that, 0) + } + return fromArrayLike(that, obj) + } + + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(that, obj.data) + } + } + + throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.') + } + + function utf8ToBytes (string, units) { + units = units || Infinity; + var codePoint; + var length = string.length; + var leadSurrogate = null; + var bytes = []; + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue + } + + // valid lead + leadSurrogate = codePoint; + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + leadSurrogate = codePoint; + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + } + + leadSurrogate = null; + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint); + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ); + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ); + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ); + } else { + throw new Error('Invalid code point') + } + } + + return bytes + } + + function byteLength (string) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && + (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + string = '' + string; + } + + var len = string.length; + if (len === 0) return 0 + + return utf8ToBytes(string).length + } + + function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i]; + } + return i + } + + function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) + } + + function from (that, value, offset, length) { + if (typeof value === 'number') { + throw new TypeError('"value" argument must not be a number') + } + + if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) { + return fromArrayBuffer(that, value, offset, length) + } + + if (typeof value === 'string') { + return fromString(that, value) + } + + return fromObject(that, value) + } + + Buffer.prototype.write = function write (string, offset, length) { + // Buffer#write(string) + if (offset === undefined) { + length = this.length; + offset = 0; + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + length = this.length; + offset = 0; + // Buffer#write(string, offset[, length]) + } else if (isFinite(offset)) { + offset = offset | 0; + if (isFinite(length)) { + length = length | 0; + } else { + length = undefined; + } + } + + var remaining = this.length - offset; + if (length === undefined || length > remaining) length = remaining; + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + return utf8Write(this, string, offset, length) + }; + + Buffer.prototype.slice = function slice (start, end) { + var len = this.length; + start = ~~start; + end = end === undefined ? len : ~~end; + + if (start < 0) { + start += len; + if (start < 0) start = 0; + } else if (start > len) { + start = len; + } + + if (end < 0) { + end += len; + if (end < 0) end = 0; + } else if (end > len) { + end = len; + } + + if (end < start) end = start; + + var newBuf; + if (Buffer.TYPED_ARRAY_SUPPORT) { + newBuf = this.subarray(start, end); + // Return an augmented `Uint8Array` instance + newBuf.__proto__ = Buffer.prototype; + } else { + var sliceLen = end - start; + newBuf = new Buffer(sliceLen, undefined); + for (var i = 0; i < sliceLen; ++i) { + newBuf[i] = this[i + start]; + } + } + + return newBuf + }; + + Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!start) start = 0; + if (!end && end !== 0) end = this.length; + if (targetStart >= target.length) targetStart = target.length; + if (!targetStart) targetStart = 0; + if (end > 0 && end < start) end = start; + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + + var len = end - start; + var i; + + if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start]; + } + } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) { + // ascending copy from start + for (i = 0; i < len; ++i) { + target[i + targetStart] = this[i + start]; + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, start + len), + targetStart + ); + } + + return len + }; + + Buffer.prototype.fill = function fill (val, start, end) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + start = 0; + end = this.length; + } else if (typeof end === 'string') { + end = this.length; + } + if (val.length === 1) { + var code = val.charCodeAt(0); + if (code < 256) { + val = code; + } + } + } else if (typeof val === 'number') { + val = val & 255; + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0; + end = end === undefined ? this.length : end >>> 0; + + if (!val) val = 0; + + var i; + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : new Buffer(val); + var len = bytes.length; + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + + return this + }; + + Buffer.concat = function concat (list, length) { + if (!isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return createBuffer(null, 0) + } + + var i; + if (length === undefined) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + + var buffer = allocUnsafe(null, length); + var pos = 0; + for (i = 0; i < list.length; ++i) { + var buf = list[i]; + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos); + pos += buf.length; + } + return buffer + }; + + Buffer.byteLength = byteLength; + + Buffer.prototype._isBuffer = true; + Buffer.isBuffer = function isBuffer (b) { + return !!(b != null && b._isBuffer) + }; + + module.exports.alloc = function (size) { + var buffer = new Buffer(size); + buffer.fill(0); + return buffer + }; + + module.exports.from = function (data) { + return new Buffer(data) + }; + + },{"isarray":33}],29:[function(require,module,exports){ + + exports.byteLength = byteLength; + exports.toByteArray = toByteArray; + exports.fromByteArray = fromByteArray; + + var lookup = []; + var revLookup = []; + var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array; + + var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; + for (var i = 0, len = code.length; i < len; ++i) { + lookup[i] = code[i]; + revLookup[code.charCodeAt(i)] = i; + } + + // Support decoding URL-safe base64 strings, as Node.js does. + // See: https://en.wikipedia.org/wiki/Base64#URL_applications + revLookup['-'.charCodeAt(0)] = 62; + revLookup['_'.charCodeAt(0)] = 63; + + function getLens (b64) { + var len = b64.length; + + if (len % 4 > 0) { + throw new Error('Invalid string. Length must be a multiple of 4') + } + + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + var validLen = b64.indexOf('='); + if (validLen === -1) validLen = len; + + var placeHoldersLen = validLen === len + ? 0 + : 4 - (validLen % 4); + + return [validLen, placeHoldersLen] + } + + // base64 is 4/3 + up to two characters of the original data + function byteLength (b64) { + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen + } + + function _byteLength (b64, validLen, placeHoldersLen) { + return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen + } + + function toByteArray (b64) { + var tmp; + var lens = getLens(b64); + var validLen = lens[0]; + var placeHoldersLen = lens[1]; + + var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen)); + + var curByte = 0; + + // if there are placeholders, only get up to the last complete 4 chars + var len = placeHoldersLen > 0 + ? validLen - 4 + : validLen; + + var i; + for (i = 0; i < len; i += 4) { + tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)]; + arr[curByte++] = (tmp >> 16) & 0xFF; + arr[curByte++] = (tmp >> 8) & 0xFF; + arr[curByte++] = tmp & 0xFF; + } + + if (placeHoldersLen === 2) { + tmp = + (revLookup[b64.charCodeAt(i)] << 2) | + (revLookup[b64.charCodeAt(i + 1)] >> 4); + arr[curByte++] = tmp & 0xFF; + } + + if (placeHoldersLen === 1) { + tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2); + arr[curByte++] = (tmp >> 8) & 0xFF; + arr[curByte++] = tmp & 0xFF; + } + + return arr + } + + function tripletToBase64 (num) { + return lookup[num >> 18 & 0x3F] + + lookup[num >> 12 & 0x3F] + + lookup[num >> 6 & 0x3F] + + lookup[num & 0x3F] + } + + function encodeChunk (uint8, start, end) { + var tmp; + var output = []; + for (var i = start; i < end; i += 3) { + tmp = + ((uint8[i] << 16) & 0xFF0000) + + ((uint8[i + 1] << 8) & 0xFF00) + + (uint8[i + 2] & 0xFF); + output.push(tripletToBase64(tmp)); + } + return output.join('') + } + + function fromByteArray (uint8) { + var tmp; + var len = uint8.length; + var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes + var parts = []; + var maxChunkLength = 16383; // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push(encodeChunk( + uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength) + )); + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1]; + parts.push( + lookup[tmp >> 2] + + lookup[(tmp << 4) & 0x3F] + + '==' + ); + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1]; + parts.push( + lookup[tmp >> 10] + + lookup[(tmp >> 4) & 0x3F] + + lookup[(tmp << 2) & 0x3F] + + '=' + ); + } + + return parts.join('') + } + + },{}],30:[function(require,module,exports){ + + var base64 = require('base64-js'); + var ieee754 = require('ieee754'); + var customInspectSymbol = + (typeof Symbol === 'function' && typeof Symbol.for === 'function') + ? Symbol.for('nodejs.util.inspect.custom') + : null; + + exports.Buffer = Buffer; + exports.SlowBuffer = SlowBuffer; + exports.INSPECT_MAX_BYTES = 50; + + var K_MAX_LENGTH = 0x7fffffff; + exports.kMaxLength = K_MAX_LENGTH; + + /** + * If `Buffer.TYPED_ARRAY_SUPPORT`: + * === true Use Uint8Array implementation (fastest) + * === false Print warning and recommend using `buffer` v4.x which has an Object + * implementation (most compatible, even IE6) + * + * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+, + * Opera 11.6+, iOS 4.2+. + * + * We report that the browser does not support typed arrays if the are not subclassable + * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array` + * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support + * for __proto__ and has a buggy typed array implementation. + */ + Buffer.TYPED_ARRAY_SUPPORT = typedArraySupport(); + + if (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' && + typeof console.error === 'function') { + console.error( + 'This browser lacks typed array (Uint8Array) support which is required by ' + + '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.' + ); + } + + function typedArraySupport () { + // Can typed array instances can be augmented? + try { + var arr = new Uint8Array(1); + var proto = { foo: function () { return 42 } }; + Object.setPrototypeOf(proto, Uint8Array.prototype); + Object.setPrototypeOf(arr, proto); + return arr.foo() === 42 + } catch (e) { + return false + } + } + + Object.defineProperty(Buffer.prototype, 'parent', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.buffer + } + }); + + Object.defineProperty(Buffer.prototype, 'offset', { + enumerable: true, + get: function () { + if (!Buffer.isBuffer(this)) return undefined + return this.byteOffset + } + }); + + function createBuffer (length) { + if (length > K_MAX_LENGTH) { + throw new RangeError('The value "' + length + '" is invalid for option "size"') + } + // Return an augmented `Uint8Array` instance + var buf = new Uint8Array(length); + Object.setPrototypeOf(buf, Buffer.prototype); + return buf + } + + /** + * The Buffer constructor returns instances of `Uint8Array` that have their + * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of + * `Uint8Array`, so the returned instances will have all the node `Buffer` methods + * and the `Uint8Array` methods. Square bracket notation works as expected -- it + * returns a single octet. + * + * The `Uint8Array` prototype remains unmodified. + */ + + function Buffer (arg, encodingOrOffset, length) { + // Common case. + if (typeof arg === 'number') { + if (typeof encodingOrOffset === 'string') { + throw new TypeError( + 'The "string" argument must be of type string. Received type number' + ) + } + return allocUnsafe(arg) + } + return from(arg, encodingOrOffset, length) + } + + // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97 + if (typeof Symbol !== 'undefined' && Symbol.species != null && + Buffer[Symbol.species] === Buffer) { + Object.defineProperty(Buffer, Symbol.species, { + value: null, + configurable: true, + enumerable: false, + writable: false + }); + } + + Buffer.poolSize = 8192; // not used by this implementation + + function from (value, encodingOrOffset, length) { + if (typeof value === 'string') { + return fromString(value, encodingOrOffset) + } + + if (ArrayBuffer.isView(value)) { + return fromArrayLike(value) + } + + if (value == null) { + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) + } + + if (isInstance(value, ArrayBuffer) || + (value && isInstance(value.buffer, ArrayBuffer))) { + return fromArrayBuffer(value, encodingOrOffset, length) + } + + if (typeof value === 'number') { + throw new TypeError( + 'The "value" argument must not be of type number. Received type number' + ) + } + + var valueOf = value.valueOf && value.valueOf(); + if (valueOf != null && valueOf !== value) { + return Buffer.from(valueOf, encodingOrOffset, length) + } + + var b = fromObject(value); + if (b) return b + + if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null && + typeof value[Symbol.toPrimitive] === 'function') { + return Buffer.from( + value[Symbol.toPrimitive]('string'), encodingOrOffset, length + ) + } + + throw new TypeError( + 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' + + 'or Array-like Object. Received type ' + (typeof value) + ) + } + + /** + * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError + * if value is a number. + * Buffer.from(str[, encoding]) + * Buffer.from(array) + * Buffer.from(buffer) + * Buffer.from(arrayBuffer[, byteOffset[, length]]) + **/ + Buffer.from = function (value, encodingOrOffset, length) { + return from(value, encodingOrOffset, length) + }; + + // Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug: + // https://github.com/feross/buffer/pull/148 + Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype); + Object.setPrototypeOf(Buffer, Uint8Array); + + function assertSize (size) { + if (typeof size !== 'number') { + throw new TypeError('"size" argument must be of type number') + } else if (size < 0) { + throw new RangeError('The value "' + size + '" is invalid for option "size"') + } + } + + function alloc (size, fill, encoding) { + assertSize(size); + if (size <= 0) { + return createBuffer(size) + } + if (fill !== undefined) { + // Only pay attention to encoding if it's a string. This + // prevents accidentally sending in a number that would + // be interpretted as a start offset. + return typeof encoding === 'string' + ? createBuffer(size).fill(fill, encoding) + : createBuffer(size).fill(fill) + } + return createBuffer(size) + } + + /** + * Creates a new filled Buffer instance. + * alloc(size[, fill[, encoding]]) + **/ + Buffer.alloc = function (size, fill, encoding) { + return alloc(size, fill, encoding) + }; + + function allocUnsafe (size) { + assertSize(size); + return createBuffer(size < 0 ? 0 : checked(size) | 0) + } + + /** + * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance. + * */ + Buffer.allocUnsafe = function (size) { + return allocUnsafe(size) + }; + /** + * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance. + */ + Buffer.allocUnsafeSlow = function (size) { + return allocUnsafe(size) + }; + + function fromString (string, encoding) { + if (typeof encoding !== 'string' || encoding === '') { + encoding = 'utf8'; + } + + if (!Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + + var length = byteLength(string, encoding) | 0; + var buf = createBuffer(length); + + var actual = buf.write(string, encoding); + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual); + } + + return buf + } + + function fromArrayLike (array) { + var length = array.length < 0 ? 0 : checked(array.length) | 0; + var buf = createBuffer(length); + for (var i = 0; i < length; i += 1) { + buf[i] = array[i] & 255; + } + return buf + } + + function fromArrayBuffer (array, byteOffset, length) { + if (byteOffset < 0 || array.byteLength < byteOffset) { + throw new RangeError('"offset" is outside of buffer bounds') + } + + if (array.byteLength < byteOffset + (length || 0)) { + throw new RangeError('"length" is outside of buffer bounds') + } + + var buf; + if (byteOffset === undefined && length === undefined) { + buf = new Uint8Array(array); + } else if (length === undefined) { + buf = new Uint8Array(array, byteOffset); + } else { + buf = new Uint8Array(array, byteOffset, length); + } + + // Return an augmented `Uint8Array` instance + Object.setPrototypeOf(buf, Buffer.prototype); + + return buf + } + + function fromObject (obj) { + if (Buffer.isBuffer(obj)) { + var len = checked(obj.length) | 0; + var buf = createBuffer(len); + + if (buf.length === 0) { + return buf + } + + obj.copy(buf, 0, 0, len); + return buf + } + + if (obj.length !== undefined) { + if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) { + return createBuffer(0) + } + return fromArrayLike(obj) + } + + if (obj.type === 'Buffer' && Array.isArray(obj.data)) { + return fromArrayLike(obj.data) + } + } + + function checked (length) { + // Note: cannot use `length < K_MAX_LENGTH` here because that fails when + // length is NaN (which is otherwise coerced to zero.) + if (length >= K_MAX_LENGTH) { + throw new RangeError('Attempt to allocate Buffer larger than maximum ' + + 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes') + } + return length | 0 + } + + function SlowBuffer (length) { + if (+length != length) { // eslint-disable-line eqeqeq + length = 0; + } + return Buffer.alloc(+length) + } + + Buffer.isBuffer = function isBuffer (b) { + return b != null && b._isBuffer === true && + b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false + }; + + Buffer.compare = function compare (a, b) { + if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength); + if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength); + if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) { + throw new TypeError( + 'The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array' + ) + } + + if (a === b) return 0 + + var x = a.length; + var y = b.length; + + for (var i = 0, len = Math.min(x, y); i < len; ++i) { + if (a[i] !== b[i]) { + x = a[i]; + y = b[i]; + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 + }; + + Buffer.isEncoding = function isEncoding (encoding) { + switch (String(encoding).toLowerCase()) { + case 'hex': + case 'utf8': + case 'utf-8': + case 'ascii': + case 'latin1': + case 'binary': + case 'base64': + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return true + default: + return false + } + }; + + Buffer.concat = function concat (list, length) { + if (!Array.isArray(list)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + + if (list.length === 0) { + return Buffer.alloc(0) + } + + var i; + if (length === undefined) { + length = 0; + for (i = 0; i < list.length; ++i) { + length += list[i].length; + } + } + + var buffer = Buffer.allocUnsafe(length); + var pos = 0; + for (i = 0; i < list.length; ++i) { + var buf = list[i]; + if (isInstance(buf, Uint8Array)) { + buf = Buffer.from(buf); + } + if (!Buffer.isBuffer(buf)) { + throw new TypeError('"list" argument must be an Array of Buffers') + } + buf.copy(buffer, pos); + pos += buf.length; + } + return buffer + }; + + function byteLength (string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength + } + if (typeof string !== 'string') { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + + 'Received type ' + typeof string + ) + } + + var len = string.length; + var mustMatch = (arguments.length > 2 && arguments[2] === true); + if (!mustMatch && len === 0) return 0 + + // Use a for loop to avoid recursion + var loweredCase = false; + for (;;) { + switch (encoding) { + case 'ascii': + case 'latin1': + case 'binary': + return len + case 'utf8': + case 'utf-8': + return utf8ToBytes(string).length + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return len * 2 + case 'hex': + return len >>> 1 + case 'base64': + return base64ToBytes(string).length + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8 + } + encoding = ('' + encoding).toLowerCase(); + loweredCase = true; + } + } + } + Buffer.byteLength = byteLength; + + function slowToString (encoding, start, end) { + var loweredCase = false; + + // No need to verify that "this.length <= MAX_UINT32" since it's a read-only + // property of a typed array. + + // This behaves neither like String nor Uint8Array in that we set start/end + // to their upper/lower bounds if the value passed is out of range. + // undefined is handled specially as per ECMA-262 6th Edition, + // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization. + if (start === undefined || start < 0) { + start = 0; + } + // Return early if start > this.length. Done here to prevent potential uint32 + // coercion fail below. + if (start > this.length) { + return '' + } + + if (end === undefined || end > this.length) { + end = this.length; + } + + if (end <= 0) { + return '' + } + + // Force coersion to uint32. This will also coerce falsey/NaN values to 0. + end >>>= 0; + start >>>= 0; + + if (end <= start) { + return '' + } + + if (!encoding) encoding = 'utf8'; + + while (true) { + switch (encoding) { + case 'hex': + return hexSlice(this, start, end) + + case 'utf8': + case 'utf-8': + return utf8Slice(this, start, end) + + case 'ascii': + return asciiSlice(this, start, end) + + case 'latin1': + case 'binary': + return latin1Slice(this, start, end) + + case 'base64': + return base64Slice(this, start, end) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return utf16leSlice(this, start, end) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = (encoding + '').toLowerCase(); + loweredCase = true; + } + } + } + + // This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package) + // to detect a Buffer instance. It's not possible to use `instanceof Buffer` + // reliably in a browserify context because there could be multiple different + // copies of the 'buffer' package in use. This method works even for Buffer + // instances that were created from another copy of the `buffer` package. + // See: https://github.com/feross/buffer/issues/154 + Buffer.prototype._isBuffer = true; + + function swap (b, n, m) { + var i = b[n]; + b[n] = b[m]; + b[m] = i; + } + + Buffer.prototype.swap16 = function swap16 () { + var len = this.length; + if (len % 2 !== 0) { + throw new RangeError('Buffer size must be a multiple of 16-bits') + } + for (var i = 0; i < len; i += 2) { + swap(this, i, i + 1); + } + return this + }; + + Buffer.prototype.swap32 = function swap32 () { + var len = this.length; + if (len % 4 !== 0) { + throw new RangeError('Buffer size must be a multiple of 32-bits') + } + for (var i = 0; i < len; i += 4) { + swap(this, i, i + 3); + swap(this, i + 1, i + 2); + } + return this + }; + + Buffer.prototype.swap64 = function swap64 () { + var len = this.length; + if (len % 8 !== 0) { + throw new RangeError('Buffer size must be a multiple of 64-bits') + } + for (var i = 0; i < len; i += 8) { + swap(this, i, i + 7); + swap(this, i + 1, i + 6); + swap(this, i + 2, i + 5); + swap(this, i + 3, i + 4); + } + return this + }; + + Buffer.prototype.toString = function toString () { + var length = this.length; + if (length === 0) return '' + if (arguments.length === 0) return utf8Slice(this, 0, length) + return slowToString.apply(this, arguments) + }; + + Buffer.prototype.toLocaleString = Buffer.prototype.toString; + + Buffer.prototype.equals = function equals (b) { + if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer') + if (this === b) return true + return Buffer.compare(this, b) === 0 + }; + + Buffer.prototype.inspect = function inspect () { + var str = ''; + var max = exports.INSPECT_MAX_BYTES; + str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim(); + if (this.length > max) str += ' ... '; + return '' + }; + if (customInspectSymbol) { + Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect; + } + + Buffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) { + if (isInstance(target, Uint8Array)) { + target = Buffer.from(target, target.offset, target.byteLength); + } + if (!Buffer.isBuffer(target)) { + throw new TypeError( + 'The "target" argument must be one of type Buffer or Uint8Array. ' + + 'Received type ' + (typeof target) + ) + } + + if (start === undefined) { + start = 0; + } + if (end === undefined) { + end = target ? target.length : 0; + } + if (thisStart === undefined) { + thisStart = 0; + } + if (thisEnd === undefined) { + thisEnd = this.length; + } + + if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) { + throw new RangeError('out of range index') + } + + if (thisStart >= thisEnd && start >= end) { + return 0 + } + if (thisStart >= thisEnd) { + return -1 + } + if (start >= end) { + return 1 + } + + start >>>= 0; + end >>>= 0; + thisStart >>>= 0; + thisEnd >>>= 0; + + if (this === target) return 0 + + var x = thisEnd - thisStart; + var y = end - start; + var len = Math.min(x, y); + + var thisCopy = this.slice(thisStart, thisEnd); + var targetCopy = target.slice(start, end); + + for (var i = 0; i < len; ++i) { + if (thisCopy[i] !== targetCopy[i]) { + x = thisCopy[i]; + y = targetCopy[i]; + break + } + } + + if (x < y) return -1 + if (y < x) return 1 + return 0 + }; + + // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, + // OR the last index of `val` in `buffer` at offset <= `byteOffset`. + // + // Arguments: + // - buffer - a Buffer to search + // - val - a string, Buffer, or number + // - byteOffset - an index into `buffer`; will be clamped to an int32 + // - encoding - an optional encoding, relevant is val is a string + // - dir - true for indexOf, false for lastIndexOf + function bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) { + // Empty buffer means no match + if (buffer.length === 0) return -1 + + // Normalize byteOffset + if (typeof byteOffset === 'string') { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff; + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000; + } + byteOffset = +byteOffset; // Coerce to Number. + if (numberIsNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : (buffer.length - 1); + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset; + if (byteOffset >= buffer.length) { + if (dir) return -1 + else byteOffset = buffer.length - 1; + } else if (byteOffset < 0) { + if (dir) byteOffset = 0; + else return -1 + } + + // Normalize val + if (typeof val === 'string') { + val = Buffer.from(val, encoding); + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1 + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir) + } else if (typeof val === 'number') { + val = val & 0xFF; // Search for a byte value [0-255] + if (typeof Uint8Array.prototype.indexOf === 'function') { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset) + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset) + } + } + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir) + } + + throw new TypeError('val must be string, number or Buffer') + } + + function arrayIndexOf (arr, val, byteOffset, encoding, dir) { + var indexSize = 1; + var arrLength = arr.length; + var valLength = val.length; + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase(); + if (encoding === 'ucs2' || encoding === 'ucs-2' || + encoding === 'utf16le' || encoding === 'utf-16le') { + if (arr.length < 2 || val.length < 2) { + return -1 + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + + function read (buf, i) { + if (indexSize === 1) { + return buf[i] + } else { + return buf.readUInt16BE(i * indexSize) + } + } + + var i; + if (dir) { + var foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i; + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize + } else { + if (foundIndex !== -1) i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + var found = true; + for (var j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break + } + } + if (found) return i + } + } + + return -1 + } + + Buffer.prototype.includes = function includes (val, byteOffset, encoding) { + return this.indexOf(val, byteOffset, encoding) !== -1 + }; + + Buffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true) + }; + + Buffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false) + }; + + function hexWrite (buf, string, offset, length) { + offset = Number(offset) || 0; + var remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + + var strLen = string.length; + + if (length > strLen / 2) { + length = strLen / 2; + } + for (var i = 0; i < length; ++i) { + var parsed = parseInt(string.substr(i * 2, 2), 16); + if (numberIsNaN(parsed)) return i + buf[offset + i] = parsed; + } + return i + } + + function utf8Write (buf, string, offset, length) { + return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length) + } + + function asciiWrite (buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length) + } + + function latin1Write (buf, string, offset, length) { + return asciiWrite(buf, string, offset, length) + } + + function base64Write (buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length) + } + + function ucs2Write (buf, string, offset, length) { + return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length) + } + + Buffer.prototype.write = function write (string, offset, length, encoding) { + // Buffer#write(string) + if (offset === undefined) { + encoding = 'utf8'; + length = this.length; + offset = 0; + // Buffer#write(string, encoding) + } else if (length === undefined && typeof offset === 'string') { + encoding = offset; + length = this.length; + offset = 0; + // Buffer#write(string, offset[, length][, encoding]) + } else if (isFinite(offset)) { + offset = offset >>> 0; + if (isFinite(length)) { + length = length >>> 0; + if (encoding === undefined) encoding = 'utf8'; + } else { + encoding = length; + length = undefined; + } + } else { + throw new Error( + 'Buffer.write(string, encoding, offset[, length]) is no longer supported' + ) + } + + var remaining = this.length - offset; + if (length === undefined || length > remaining) length = remaining; + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) { + throw new RangeError('Attempt to write outside buffer bounds') + } + + if (!encoding) encoding = 'utf8'; + + var loweredCase = false; + for (;;) { + switch (encoding) { + case 'hex': + return hexWrite(this, string, offset, length) + + case 'utf8': + case 'utf-8': + return utf8Write(this, string, offset, length) + + case 'ascii': + return asciiWrite(this, string, offset, length) + + case 'latin1': + case 'binary': + return latin1Write(this, string, offset, length) + + case 'base64': + // Warning: maxLength not taken into account in base64Write + return base64Write(this, string, offset, length) + + case 'ucs2': + case 'ucs-2': + case 'utf16le': + case 'utf-16le': + return ucs2Write(this, string, offset, length) + + default: + if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding) + encoding = ('' + encoding).toLowerCase(); + loweredCase = true; + } + } + }; + + Buffer.prototype.toJSON = function toJSON () { + return { + type: 'Buffer', + data: Array.prototype.slice.call(this._arr || this, 0) + } + }; + + function base64Slice (buf, start, end) { + if (start === 0 && end === buf.length) { + return base64.fromByteArray(buf) + } else { + return base64.fromByteArray(buf.slice(start, end)) + } + } + + function utf8Slice (buf, start, end) { + end = Math.min(buf.length, end); + var res = []; + + var i = start; + while (i < end) { + var firstByte = buf[i]; + var codePoint = null; + var bytesPerSequence = (firstByte > 0xEF) ? 4 + : (firstByte > 0xDF) ? 3 + : (firstByte > 0xBF) ? 2 + : 1; + + if (i + bytesPerSequence <= end) { + var secondByte, thirdByte, fourthByte, tempCodePoint; + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte; + } + break + case 2: + secondByte = buf[i + 1]; + if ((secondByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F); + if (tempCodePoint > 0x7F) { + codePoint = tempCodePoint; + } + } + break + case 3: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F); + if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) { + codePoint = tempCodePoint; + } + } + break + case 4: + secondByte = buf[i + 1]; + thirdByte = buf[i + 2]; + fourthByte = buf[i + 3]; + if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) { + tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F); + if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) { + codePoint = tempCodePoint; + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xFFFD; + bytesPerSequence = 1; + } else if (codePoint > 0xFFFF) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000; + res.push(codePoint >>> 10 & 0x3FF | 0xD800); + codePoint = 0xDC00 | codePoint & 0x3FF; + } + + res.push(codePoint); + i += bytesPerSequence; + } + + return decodeCodePointsArray(res) + } + + // Based on http://stackoverflow.com/a/22747272/680742, the browser with + // the lowest limit is Chrome, with 0x10000 args. + // We go 1 magnitude less, for safety + var MAX_ARGUMENTS_LENGTH = 0x1000; + + function decodeCodePointsArray (codePoints) { + var len = codePoints.length; + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode.apply(String, codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + var res = ''; + var i = 0; + while (i < len) { + res += String.fromCharCode.apply( + String, + codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH) + ); + } + return res + } + + function asciiSlice (buf, start, end) { + var ret = ''; + end = Math.min(buf.length, end); + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i] & 0x7F); + } + return ret + } + + function latin1Slice (buf, start, end) { + var ret = ''; + end = Math.min(buf.length, end); + + for (var i = start; i < end; ++i) { + ret += String.fromCharCode(buf[i]); + } + return ret + } + + function hexSlice (buf, start, end) { + var len = buf.length; + + if (!start || start < 0) start = 0; + if (!end || end < 0 || end > len) end = len; + + var out = ''; + for (var i = start; i < end; ++i) { + out += hexSliceLookupTable[buf[i]]; + } + return out + } + + function utf16leSlice (buf, start, end) { + var bytes = buf.slice(start, end); + var res = ''; + for (var i = 0; i < bytes.length; i += 2) { + res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256)); + } + return res + } + + Buffer.prototype.slice = function slice (start, end) { + var len = this.length; + start = ~~start; + end = end === undefined ? len : ~~end; + + if (start < 0) { + start += len; + if (start < 0) start = 0; + } else if (start > len) { + start = len; + } + + if (end < 0) { + end += len; + if (end < 0) end = 0; + } else if (end > len) { + end = len; + } + + if (end < start) end = start; + + var newBuf = this.subarray(start, end); + // Return an augmented `Uint8Array` instance + Object.setPrototypeOf(newBuf, Buffer.prototype); + + return newBuf + }; + + /* + * Need to make sure that buffer isn't trying to write out of bounds. + */ + function checkOffset (offset, ext, length) { + if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint') + if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length') + } + + Buffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + + var val = this[offset]; + var mul = 1; + var i = 0; + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + + return val + }; + + Buffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) { + checkOffset(offset, byteLength, this.length); + } + + var val = this[offset + --byteLength]; + var mul = 1; + while (byteLength > 0 && (mul *= 0x100)) { + val += this[offset + --byteLength] * mul; + } + + return val + }; + + Buffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + return this[offset] + }; + + Buffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return this[offset] | (this[offset + 1] << 8) + }; + + Buffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + return (this[offset] << 8) | this[offset + 1] + }; + + Buffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + + return ((this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16)) + + (this[offset + 3] * 0x1000000) + }; + + Buffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + + return (this[offset] * 0x1000000) + + ((this[offset + 1] << 16) | + (this[offset + 2] << 8) | + this[offset + 3]) + }; + + Buffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + + var val = this[offset]; + var mul = 1; + var i = 0; + while (++i < byteLength && (mul *= 0x100)) { + val += this[offset + i] * mul; + } + mul *= 0x80; + + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + + return val + }; + + Buffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) { + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) checkOffset(offset, byteLength, this.length); + + var i = byteLength; + var mul = 1; + var val = this[offset + --i]; + while (i > 0 && (mul *= 0x100)) { + val += this[offset + --i] * mul; + } + mul *= 0x80; + + if (val >= mul) val -= Math.pow(2, 8 * byteLength); + + return val + }; + + Buffer.prototype.readInt8 = function readInt8 (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 1, this.length); + if (!(this[offset] & 0x80)) return (this[offset]) + return ((0xff - this[offset] + 1) * -1) + }; + + Buffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset] | (this[offset + 1] << 8); + return (val & 0x8000) ? val | 0xFFFF0000 : val + }; + + Buffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 2, this.length); + var val = this[offset + 1] | (this[offset] << 8); + return (val & 0x8000) ? val | 0xFFFF0000 : val + }; + + Buffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + + return (this[offset]) | + (this[offset + 1] << 8) | + (this[offset + 2] << 16) | + (this[offset + 3] << 24) + }; + + Buffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + + return (this[offset] << 24) | + (this[offset + 1] << 16) | + (this[offset + 2] << 8) | + (this[offset + 3]) + }; + + Buffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, true, 23, 4) + }; + + Buffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 4, this.length); + return ieee754.read(this, offset, false, 23, 4) + }; + + Buffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, true, 52, 8) + }; + + Buffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) { + offset = offset >>> 0; + if (!noAssert) checkOffset(offset, 8, this.length); + return ieee754.read(this, offset, false, 52, 8) + }; + + function checkInt (buf, value, offset, ext, max, min) { + if (!Buffer.isBuffer(buf)) throw new TypeError('"buffer" argument must be a Buffer instance') + if (value > max || value < min) throw new RangeError('"value" argument is out of bounds') + if (offset + ext > buf.length) throw new RangeError('Index out of range') + } + + Buffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + + var mul = 1; + var i = 0; + this[offset] = value & 0xFF; + while (++i < byteLength && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF; + } + + return offset + byteLength + }; + + Buffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) { + value = +value; + offset = offset >>> 0; + byteLength = byteLength >>> 0; + if (!noAssert) { + var maxBytes = Math.pow(2, 8 * byteLength) - 1; + checkInt(this, value, offset, byteLength, maxBytes, 0); + } + + var i = byteLength - 1; + var mul = 1; + this[offset + i] = value & 0xFF; + while (--i >= 0 && (mul *= 0x100)) { + this[offset + i] = (value / mul) & 0xFF; + } + + return offset + byteLength + }; + + Buffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0); + this[offset] = (value & 0xff); + return offset + 1 + }; + + Buffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + this[offset] = (value & 0xff); + this[offset + 1] = (value >>> 8); + return offset + 2 + }; + + Buffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0); + this[offset] = (value >>> 8); + this[offset + 1] = (value & 0xff); + return offset + 2 + }; + + Buffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + this[offset + 3] = (value >>> 24); + this[offset + 2] = (value >>> 16); + this[offset + 1] = (value >>> 8); + this[offset] = (value & 0xff); + return offset + 4 + }; + + Buffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0); + this[offset] = (value >>> 24); + this[offset + 1] = (value >>> 16); + this[offset + 2] = (value >>> 8); + this[offset + 3] = (value & 0xff); + return offset + 4 + }; + + Buffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + var limit = Math.pow(2, (8 * byteLength) - 1); + + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + + var i = 0; + var mul = 1; + var sub = 0; + this[offset] = value & 0xFF; + while (++i < byteLength && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) { + sub = 1; + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; + } + + return offset + byteLength + }; + + Buffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + var limit = Math.pow(2, (8 * byteLength) - 1); + + checkInt(this, value, offset, byteLength, limit - 1, -limit); + } + + var i = byteLength - 1; + var mul = 1; + var sub = 0; + this[offset + i] = value & 0xFF; + while (--i >= 0 && (mul *= 0x100)) { + if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) { + sub = 1; + } + this[offset + i] = ((value / mul) >> 0) - sub & 0xFF; + } + + return offset + byteLength + }; + + Buffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80); + if (value < 0) value = 0xff + value + 1; + this[offset] = (value & 0xff); + return offset + 1 + }; + + Buffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); + this[offset] = (value & 0xff); + this[offset + 1] = (value >>> 8); + return offset + 2 + }; + + Buffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000); + this[offset] = (value >>> 8); + this[offset + 1] = (value & 0xff); + return offset + 2 + }; + + Buffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); + this[offset] = (value & 0xff); + this[offset + 1] = (value >>> 8); + this[offset + 2] = (value >>> 16); + this[offset + 3] = (value >>> 24); + return offset + 4 + }; + + Buffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000); + if (value < 0) value = 0xffffffff + value + 1; + this[offset] = (value >>> 24); + this[offset + 1] = (value >>> 16); + this[offset + 2] = (value >>> 8); + this[offset + 3] = (value & 0xff); + return offset + 4 + }; + + function checkIEEE754 (buf, value, offset, ext, max, min) { + if (offset + ext > buf.length) throw new RangeError('Index out of range') + if (offset < 0) throw new RangeError('Index out of range') + } + + function writeFloat (buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 4); + } + ieee754.write(buf, value, offset, littleEndian, 23, 4); + return offset + 4 + } + + Buffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) { + return writeFloat(this, value, offset, true, noAssert) + }; + + Buffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) { + return writeFloat(this, value, offset, false, noAssert) + }; + + function writeDouble (buf, value, offset, littleEndian, noAssert) { + value = +value; + offset = offset >>> 0; + if (!noAssert) { + checkIEEE754(buf, value, offset, 8); + } + ieee754.write(buf, value, offset, littleEndian, 52, 8); + return offset + 8 + } + + Buffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) { + return writeDouble(this, value, offset, true, noAssert) + }; + + Buffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) { + return writeDouble(this, value, offset, false, noAssert) + }; + + // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length) + Buffer.prototype.copy = function copy (target, targetStart, start, end) { + if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer') + if (!start) start = 0; + if (!end && end !== 0) end = this.length; + if (targetStart >= target.length) targetStart = target.length; + if (!targetStart) targetStart = 0; + if (end > 0 && end < start) end = start; + + // Copy 0 bytes; we're done + if (end === start) return 0 + if (target.length === 0 || this.length === 0) return 0 + + // Fatal error conditions + if (targetStart < 0) { + throw new RangeError('targetStart out of bounds') + } + if (start < 0 || start >= this.length) throw new RangeError('Index out of range') + if (end < 0) throw new RangeError('sourceEnd out of bounds') + + // Are we oob? + if (end > this.length) end = this.length; + if (target.length - targetStart < end - start) { + end = target.length - targetStart + start; + } + + var len = end - start; + + if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') { + // Use built-in when available, missing from IE11 + this.copyWithin(targetStart, start, end); + } else if (this === target && start < targetStart && targetStart < end) { + // descending copy from end + for (var i = len - 1; i >= 0; --i) { + target[i + targetStart] = this[i + start]; + } + } else { + Uint8Array.prototype.set.call( + target, + this.subarray(start, end), + targetStart + ); + } + + return len + }; + + // Usage: + // buffer.fill(number[, offset[, end]]) + // buffer.fill(buffer[, offset[, end]]) + // buffer.fill(string[, offset[, end]][, encoding]) + Buffer.prototype.fill = function fill (val, start, end, encoding) { + // Handle string cases: + if (typeof val === 'string') { + if (typeof start === 'string') { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === 'string') { + encoding = end; + end = this.length; + } + if (encoding !== undefined && typeof encoding !== 'string') { + throw new TypeError('encoding must be a string') + } + if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) { + throw new TypeError('Unknown encoding: ' + encoding) + } + if (val.length === 1) { + var code = val.charCodeAt(0); + if ((encoding === 'utf8' && code < 128) || + encoding === 'latin1') { + // Fast path: If `val` fits into a single byte, use that numeric value. + val = code; + } + } + } else if (typeof val === 'number') { + val = val & 255; + } else if (typeof val === 'boolean') { + val = Number(val); + } + + // Invalid ranges are not set to a default, so can range check early. + if (start < 0 || this.length < start || this.length < end) { + throw new RangeError('Out of range index') + } + + if (end <= start) { + return this + } + + start = start >>> 0; + end = end === undefined ? this.length : end >>> 0; + + if (!val) val = 0; + + var i; + if (typeof val === 'number') { + for (i = start; i < end; ++i) { + this[i] = val; + } + } else { + var bytes = Buffer.isBuffer(val) + ? val + : Buffer.from(val, encoding); + var len = bytes.length; + if (len === 0) { + throw new TypeError('The value "' + val + + '" is invalid for argument "value"') + } + for (i = 0; i < end - start; ++i) { + this[i + start] = bytes[i % len]; + } + } + + return this + }; + + // HELPER FUNCTIONS + // ================ + + var INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; + + function base64clean (str) { + // Node takes equal signs as end of the Base64 encoding + str = str.split('=')[0]; + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = str.trim().replace(INVALID_BASE64_RE, ''); + // Node converts strings with length < 2 to '' + if (str.length < 2) return '' + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + '='; + } + return str + } + + function utf8ToBytes (string, units) { + units = units || Infinity; + var codePoint; + var length = string.length; + var leadSurrogate = null; + var bytes = []; + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + continue + } + + // valid lead + leadSurrogate = codePoint; + + continue + } + + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + leadSurrogate = codePoint; + continue + } + + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD); + } + + leadSurrogate = null; + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break + bytes.push(codePoint); + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break + bytes.push( + codePoint >> 0x6 | 0xC0, + codePoint & 0x3F | 0x80 + ); + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break + bytes.push( + codePoint >> 0xC | 0xE0, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ); + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break + bytes.push( + codePoint >> 0x12 | 0xF0, + codePoint >> 0xC & 0x3F | 0x80, + codePoint >> 0x6 & 0x3F | 0x80, + codePoint & 0x3F | 0x80 + ); + } else { + throw new Error('Invalid code point') + } + } + + return bytes + } + + function asciiToBytes (str) { + var byteArray = []; + for (var i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xFF); + } + return byteArray + } + + function utf16leToBytes (str, units) { + var c, hi, lo; + var byteArray = []; + for (var i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break + + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + + return byteArray + } + + function base64ToBytes (str) { + return base64.toByteArray(base64clean(str)) + } + + function blitBuffer (src, dst, offset, length) { + for (var i = 0; i < length; ++i) { + if ((i + offset >= dst.length) || (i >= src.length)) break + dst[i + offset] = src[i]; + } + return i + } + + // ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass + // the `instanceof` check but they should be treated as of that type. + // See: https://github.com/feross/buffer/issues/166 + function isInstance (obj, type) { + return obj instanceof type || + (obj != null && obj.constructor != null && obj.constructor.name != null && + obj.constructor.name === type.name) + } + function numberIsNaN (obj) { + // For IE11 support + return obj !== obj // eslint-disable-line no-self-compare + } + + // Create lookup table for `toString('hex')` + // See: https://github.com/feross/buffer/issues/219 + var hexSliceLookupTable = (function () { + var alphabet = '0123456789abcdef'; + var table = new Array(256); + for (var i = 0; i < 16; ++i) { + var i16 = i * 16; + for (var j = 0; j < 16; ++j) { + table[i16 + j] = alphabet[i] + alphabet[j]; + } + } + return table + })(); + + },{"base64-js":29,"ieee754":32}],31:[function(require,module,exports){ + + /****************************************************************************** + * Created 2008-08-19. + * + * Dijkstra path-finding functions. Adapted from the Dijkstar Python project. + * + * Copyright (C) 2008 + * Wyatt Baldwin + * All rights reserved + * + * Licensed under the MIT license. + * + * http://www.opensource.org/licenses/mit-license.php + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + *****************************************************************************/ + var dijkstra = { + single_source_shortest_paths: function(graph, s, d) { + // Predecessor map for each node that has been encountered. + // node ID => predecessor node ID + var predecessors = {}; + + // Costs of shortest paths from s to all nodes encountered. + // node ID => cost + var costs = {}; + costs[s] = 0; + + // Costs of shortest paths from s to all nodes encountered; differs from + // `costs` in that it provides easy access to the node that currently has + // the known shortest path from s. + // XXX: Do we actually need both `costs` and `open`? + var open = dijkstra.PriorityQueue.make(); + open.push(s, 0); + + var closest, + u, v, + cost_of_s_to_u, + adjacent_nodes, + cost_of_e, + cost_of_s_to_u_plus_cost_of_e, + cost_of_s_to_v, + first_visit; + while (!open.empty()) { + // In the nodes remaining in graph that have a known cost from s, + // find the node, u, that currently has the shortest path from s. + closest = open.pop(); + u = closest.value; + cost_of_s_to_u = closest.cost; + + // Get nodes adjacent to u... + adjacent_nodes = graph[u] || {}; + + // ...and explore the edges that connect u to those nodes, updating + // the cost of the shortest paths to any or all of those nodes as + // necessary. v is the node across the current edge from u. + for (v in adjacent_nodes) { + if (adjacent_nodes.hasOwnProperty(v)) { + // Get the cost of the edge running from u to v. + cost_of_e = adjacent_nodes[v]; + + // Cost of s to u plus the cost of u to v across e--this is *a* + // cost from s to v that may or may not be less than the current + // known cost to v. + cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e; + + // If we haven't visited v yet OR if the current known cost from s to + // v is greater than the new cost we just found (cost of s to u plus + // cost of u to v across e), update v's cost in the cost list and + // update v's predecessor in the predecessor list (it's now u). + cost_of_s_to_v = costs[v]; + first_visit = (typeof costs[v] === 'undefined'); + if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) { + costs[v] = cost_of_s_to_u_plus_cost_of_e; + open.push(v, cost_of_s_to_u_plus_cost_of_e); + predecessors[v] = u; + } + } + } + } + + if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') { + var msg = ['Could not find a path from ', s, ' to ', d, '.'].join(''); + throw new Error(msg); + } + + return predecessors; + }, + + extract_shortest_path_from_predecessor_list: function(predecessors, d) { + var nodes = []; + var u = d; + var predecessor; + while (u) { + nodes.push(u); + predecessor = predecessors[u]; + u = predecessors[u]; + } + nodes.reverse(); + return nodes; + }, + + find_path: function(graph, s, d) { + var predecessors = dijkstra.single_source_shortest_paths(graph, s, d); + return dijkstra.extract_shortest_path_from_predecessor_list( + predecessors, d); + }, + + /** + * A very naive priority queue implementation. + */ + PriorityQueue: { + make: function (opts) { + var T = dijkstra.PriorityQueue, + t = {}, + key; + opts = opts || {}; + for (key in T) { + if (T.hasOwnProperty(key)) { + t[key] = T[key]; + } + } + t.queue = []; + t.sorter = opts.sorter || T.default_sorter; + return t; + }, + + default_sorter: function (a, b) { + return a.cost - b.cost; + }, + + /** + * Add a new item to the queue and ensure the highest priority element + * is at the front of the queue. + */ + push: function (value, cost) { + var item = {value: value, cost: cost}; + this.queue.push(item); + this.queue.sort(this.sorter); + }, + + /** + * Return the highest priority element in the queue. + */ + pop: function () { + return this.queue.shift(); + }, + + empty: function () { + return this.queue.length === 0; + } + } + }; + + + // node.js module exports + if (typeof module !== 'undefined') { + module.exports = dijkstra; + } + + },{}],32:[function(require,module,exports){ + exports.read = function (buffer, offset, isLE, mLen, nBytes) { + var e, m; + var eLen = (nBytes * 8) - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var nBits = -7; + var i = isLE ? (nBytes - 1) : 0; + var d = isLE ? -1 : 1; + var s = buffer[offset + i]; + + i += d; + + e = s & ((1 << (-nBits)) - 1); + s >>= (-nBits); + nBits += eLen; + for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + m = e & ((1 << (-nBits)) - 1); + e >>= (-nBits); + nBits += mLen; + for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {} + + if (e === 0) { + e = 1 - eBias; + } else if (e === eMax) { + return m ? NaN : ((s ? -1 : 1) * Infinity) + } else { + m = m + Math.pow(2, mLen); + e = e - eBias; + } + return (s ? -1 : 1) * m * Math.pow(2, e - mLen) + }; + + exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { + var e, m, c; + var eLen = (nBytes * 8) - mLen - 1; + var eMax = (1 << eLen) - 1; + var eBias = eMax >> 1; + var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0); + var i = isLE ? 0 : (nBytes - 1); + var d = isLE ? 1 : -1; + var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0; + + value = Math.abs(value); + + if (isNaN(value) || value === Infinity) { + m = isNaN(value) ? 1 : 0; + e = eMax; + } else { + e = Math.floor(Math.log(value) / Math.LN2); + if (value * (c = Math.pow(2, -e)) < 1) { + e--; + c *= 2; + } + if (e + eBias >= 1) { + value += rt / c; + } else { + value += rt * Math.pow(2, 1 - eBias); + } + if (value * c >= 2) { + e++; + c /= 2; + } + + if (e + eBias >= eMax) { + m = 0; + e = eMax; + } else if (e + eBias >= 1) { + m = ((value * c) - 1) * Math.pow(2, mLen); + e = e + eBias; + } else { + m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen); + e = 0; + } + } + + for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {} + + e = (e << mLen) | m; + eLen += mLen; + for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {} + + buffer[offset + i - d] |= s * 128; + }; + + },{}],33:[function(require,module,exports){ + var toString = {}.toString; + + module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; + }; + + },{}]},{},[24])(24) + }); + + + }); + + var index = { + name: 'qrcode', + props: { + /** + * The value of the QR code. + */ + value: null, + + /** + * The options for the QR code generator. + * {@link https://github.com/soldair/node-qrcode#qr-code-options} + */ + options: Object, + + /** + * The tag name of the component's root element. + */ + tag: { + type: String, + default: 'canvas' + } + }, + render: function render(createElement) { + return createElement(this.tag, this.$slots.default); + }, + watch: { + $props: { + deep: true, + immediate: true, + + /** + * Update the QR code when props changed. + */ + handler: function handler() { + if (this.$el) { + this.generate(); + } + } + } + }, + methods: { + /** + * Generate QR code. + */ + generate: function generate() { + var _this = this; + + var options = this.options, + tag = this.tag; + var value = String(this.value); + + if (tag === 'canvas') { + qrcode.toCanvas(this.$el, value, options, function (error) { + /* istanbul ignore if */ + if (error) { + throw error; + } + }); + } else if (tag === 'img') { + qrcode.toDataURL(value, options, function (error, url) { + /* istanbul ignore if */ + if (error) { + throw error; + } + + _this.$el.src = url; + }); + } else { + qrcode.toString(value, options, function (error, string) { + /* istanbul ignore if */ + if (error) { + throw error; + } + + _this.$el.innerHTML = string; + }); + } + } + }, + mounted: function mounted() { + this.generate(); + } + }; + + return index; + +}))); + + +/***/ }), + +/***/ "./apps/files_sharing/src/lib/SharePermissionsToolBox.js": +/*!***************************************************************!*\ + !*** ./apps/files_sharing/src/lib/SharePermissionsToolBox.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ ATOMIC_PERMISSIONS: () => (/* binding */ ATOMIC_PERMISSIONS), +/* harmony export */ BUNDLED_PERMISSIONS: () => (/* binding */ BUNDLED_PERMISSIONS), +/* harmony export */ addPermissions: () => (/* binding */ addPermissions), +/* harmony export */ canTogglePermissions: () => (/* binding */ canTogglePermissions), +/* harmony export */ hasPermissions: () => (/* binding */ hasPermissions), +/* harmony export */ permissionsSetIsValid: () => (/* binding */ permissionsSetIsValid), +/* harmony export */ subtractPermissions: () => (/* binding */ subtractPermissions), +/* harmony export */ togglePermissions: () => (/* binding */ togglePermissions) +/* harmony export */ }); +/** + * @copyright 2022 Louis Chmn + * + * @author Louis Chmn + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +const ATOMIC_PERMISSIONS = { + NONE: 0, + READ: 1, + UPDATE: 2, + CREATE: 4, + DELETE: 8, + SHARE: 16 +}; +const BUNDLED_PERMISSIONS = { + READ_ONLY: ATOMIC_PERMISSIONS.READ, + UPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE, + FILE_DROP: ATOMIC_PERMISSIONS.CREATE, + ALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE | ATOMIC_PERMISSIONS.SHARE, + ALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.SHARE +}; + +/** + * Return whether a given permissions set contains some permissions. + * + * @param {number} initialPermissionSet - the permissions set. + * @param {number} permissionsToCheck - the permissions to check. + * @return {boolean} + */ +function hasPermissions(initialPermissionSet, permissionsToCheck) { + return initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck; +} + +/** + * Return whether a given permissions set is valid. + * + * @param {number} permissionsSet - the permissions set. + * + * @return {boolean} + */ +function permissionsSetIsValid(permissionsSet) { + // Must have at least READ or CREATE permission. + if (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) { + return false; + } + + // Must have READ permission if have UPDATE or DELETE. + if (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE))) { + return false; + } + return true; +} + +/** + * Add some permissions to an initial set of permissions. + * + * @param {number} initialPermissionSet - the initial permissions. + * @param {number} permissionsToAdd - the permissions to add. + * + * @return {number} + */ +function addPermissions(initialPermissionSet, permissionsToAdd) { + return initialPermissionSet | permissionsToAdd; +} + +/** + * Remove some permissions from an initial set of permissions. + * + * @param {number} initialPermissionSet - the initial permissions. + * @param {number} permissionsToSubtract - the permissions to remove. + * + * @return {number} + */ +function subtractPermissions(initialPermissionSet, permissionsToSubtract) { + return initialPermissionSet & ~permissionsToSubtract; +} + +/** + * Toggle some permissions from an initial set of permissions. + * + * @param {number} initialPermissionSet - the permissions set. + * @param {number} permissionsToToggle - the permissions to toggle. + * + * @return {number} + */ +function togglePermissions(initialPermissionSet, permissionsToToggle) { + if (hasPermissions(initialPermissionSet, permissionsToToggle)) { + return subtractPermissions(initialPermissionSet, permissionsToToggle); + } else { + return addPermissions(initialPermissionSet, permissionsToToggle); + } +} + +/** + * Return whether some given permissions can be toggled from a permission set. + * + * @param {number} permissionSet - the initial permissions set. + * @param {number} permissionsToToggle - the permissions to toggle. + * + * @return {boolean} + */ +function canTogglePermissions(permissionSet, permissionsToToggle) { + return permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle)); +} + +/***/ }), + +/***/ "./apps/files_sharing/src/mixins/ShareDetails.js": +/*!*******************************************************!*\ + !*** ./apps/files_sharing/src/mixins/ShareDetails.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + methods: { + async openSharingDetails(shareRequestObject) { + let share = {}; + // handle externalResults from OCA.Sharing.ShareSearch + // TODO : Better name/interface for handler required + // For example `externalAppCreateShareHook` with proper documentation + if (shareRequestObject.handler) { + if (this.suggestions) { + shareRequestObject.suggestions = this.suggestions; + shareRequestObject.fileInfo = this.fileInfo; + shareRequestObject.query = this.query; + } + share = await shareRequestObject.handler(shareRequestObject); + share = new _models_Share_js__WEBPACK_IMPORTED_MODULE_0__["default"](share); + } else { + share = this.mapShareRequestToShareObject(shareRequestObject); + } + const shareDetails = { + fileInfo: this.fileInfo, + share + }; + this.$emit('open-sharing-details', shareDetails); + }, + openShareDetailsForCustomSettings(share) { + share.setCustomPermissions = true; + this.openSharingDetails(share); + }, + mapShareRequestToShareObject(shareRequestObject) { + if (shareRequestObject.id) { + return shareRequestObject; + } + const share = { + attributes: [{ + enabled: true, + key: 'download', + scope: 'permissions' + }], + share_type: shareRequestObject.shareType, + share_with: shareRequestObject.shareWith, + is_no_user: shareRequestObject.isNoUser, + user: shareRequestObject.shareWith, + share_with_displayname: shareRequestObject.displayName, + subtitle: shareRequestObject.subtitle, + permissions: shareRequestObject.permissions, + expiration: '' + }; + return new _models_Share_js__WEBPACK_IMPORTED_MODULE_0__["default"](share); + } + } +}); + +/***/ }), + +/***/ "./apps/files_sharing/src/mixins/ShareRequests.js": +/*!********************************************************!*\ + !*** ./apps/files_sharing/src/mixins/ShareRequests.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var url_search_params_polyfill__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! url-search-params-polyfill */ "./node_modules/url-search-params-polyfill/index.js"); +/* harmony import */ var url_search_params_polyfill__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(url_search_params_polyfill__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); +/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); +/** + * @copyright Copyright (c) 2019 John Molakvoæ + * + * @author Christoph Wurst + * @author Joas Schilling + * @author John Molakvoæ + * @author Julius Härtl + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +// TODO: remove when ie not supported + + + + + +const shareUrl = (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateOcsUrl)('apps/files_sharing/api/v1/shares'); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + methods: { + /** + * Create a new share + * + * @param {object} data destructuring object + * @param {string} data.path path to the file/folder which should be shared + * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share + * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1) + * @param {boolean} [data.publicUpload] allow public upload to a public shared folder + * @param {string} [data.password] password to protect public link Share with + * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1) + * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation + * @param {string} [data.expireDate] expire the shareautomatically after + * @param {string} [data.label] custom label + * @param {string} [data.attributes] Share attributes encoded as json + * @param data.note + * @return {Share} the new share + * @throws {Error} + */ + async createShare(_ref) { + let { + path, + permissions, + shareType, + shareWith, + publicUpload, + password, + sendPasswordByTalk, + expireDate, + label, + note, + attributes + } = _ref; + try { + var _request$data; + const request = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_2__["default"].post(shareUrl, { + path, + permissions, + shareType, + shareWith, + publicUpload, + password, + sendPasswordByTalk, + expireDate, + label, + note, + attributes + }); + if (!(request !== null && request !== void 0 && (_request$data = request.data) !== null && _request$data !== void 0 && _request$data.ocs)) { + throw request; + } + const share = new _models_Share_js__WEBPACK_IMPORTED_MODULE_3__["default"](request.data.ocs.data); + (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_4__.emit)('files_sharing:share:created', { + share + }); + return share; + } catch (error) { + var _error$response; + console.error('Error while creating share', error); + const errorMessage = error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 || (_error$response = _error$response.data) === null || _error$response === void 0 || (_error$response = _error$response.ocs) === null || _error$response === void 0 || (_error$response = _error$response.meta) === null || _error$response === void 0 ? void 0 : _error$response.message; + OC.Notification.showTemporary(errorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', { + errorMessage + }) : t('files_sharing', 'Error creating the share'), { + type: 'error' + }); + throw error; + } + }, + /** + * Delete a share + * + * @param {number} id share id + * @throws {Error} + */ + async deleteShare(id) { + try { + var _request$data2; + const request = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_2__["default"].delete(shareUrl + "/".concat(id)); + if (!(request !== null && request !== void 0 && (_request$data2 = request.data) !== null && _request$data2 !== void 0 && _request$data2.ocs)) { + throw request; + } + (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_4__.emit)('files_sharing:share:deleted', { + id + }); + return true; + } catch (error) { + var _error$response2; + console.error('Error while deleting share', error); + const errorMessage = error === null || error === void 0 || (_error$response2 = error.response) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.data) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.ocs) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.meta) === null || _error$response2 === void 0 ? void 0 : _error$response2.message; + OC.Notification.showTemporary(errorMessage ? t('files_sharing', 'Error deleting the share: {errorMessage}', { + errorMessage + }) : t('files_sharing', 'Error deleting the share'), { + type: 'error' + }); + throw error; + } + }, + /** + * Update a share + * + * @param {number} id share id + * @param {object} properties key-value object of the properties to update + */ + async updateShare(id, properties) { + try { + var _request$data3; + const request = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_2__["default"].put(shareUrl + "/".concat(id), properties); + (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_4__.emit)('files_sharing:share:updated', { + id + }); + if (!(request !== null && request !== void 0 && (_request$data3 = request.data) !== null && _request$data3 !== void 0 && _request$data3.ocs)) { + throw request; + } else { + return request.data.ocs.data; + } + } catch (error) { + console.error('Error while updating share', error); + if (error.response.status !== 400) { + var _error$response3; + const errorMessage = error === null || error === void 0 || (_error$response3 = error.response) === null || _error$response3 === void 0 || (_error$response3 = _error$response3.data) === null || _error$response3 === void 0 || (_error$response3 = _error$response3.ocs) === null || _error$response3 === void 0 || (_error$response3 = _error$response3.meta) === null || _error$response3 === void 0 ? void 0 : _error$response3.message; + OC.Notification.showTemporary(errorMessage ? t('files_sharing', 'Error updating the share: {errorMessage}', { + errorMessage + }) : t('files_sharing', 'Error updating the share'), { + type: 'error' + }); + } + const message = error.response.data.ocs.meta.message; + throw new Error(message); + } + } + } +}); + +/***/ }), + +/***/ "./apps/files_sharing/src/mixins/ShareTypes.js": +/*!*****************************************************!*\ + !*** ./apps/files_sharing/src/mixins/ShareTypes.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/sharing */ "./node_modules/@nextcloud/sharing/dist/index.js"); +/** + * @copyright Copyright (c) 2019 John Molakvoæ + * + * @author John Molakvoæ + * @author Julius Härtl + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + data() { + return { + SHARE_TYPES: _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_0__.Type + }; + } +}); + +/***/ }), + +/***/ "./apps/files_sharing/src/mixins/SharesMixin.js": +/*!******************************************************!*\ + !*** ./apps/files_sharing/src/mixins/SharesMixin.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); +/* harmony import */ var p_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! p-queue */ "./node_modules/p-queue/dist/index.js"); +/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! debounce */ "./node_modules/debounce/index.js"); +/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(debounce__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); +/* harmony import */ var _ShareRequests_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ShareRequests.js */ "./apps/files_sharing/src/mixins/ShareRequests.js"); +/* harmony import */ var _ShareTypes_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ShareTypes.js */ "./apps/files_sharing/src/mixins/ShareTypes.js"); +/* harmony import */ var _services_ConfigService_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../services/ConfigService.js */ "./apps/files_sharing/src/services/ConfigService.js"); +/* harmony import */ var _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../lib/SharePermissionsToolBox.js */ "./apps/files_sharing/src/lib/SharePermissionsToolBox.js"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); +/** + * @copyright Copyright (c) 2019 John Molakvoæ + * + * @author Christoph Wurst + * @author Daniel Calviño Sánchez + * @author Gary Kim + * @author John Molakvoæ + * @author Julius Härtl + * @author Vincent Petry + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + + +// eslint-disable-next-line import/no-unresolved, n/no-missing-import + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + mixins: [_ShareRequests_js__WEBPACK_IMPORTED_MODULE_5__["default"], _ShareTypes_js__WEBPACK_IMPORTED_MODULE_6__["default"]], + props: { + fileInfo: { + type: Object, + default: () => {}, + required: true + }, + share: { + type: _models_Share_js__WEBPACK_IMPORTED_MODULE_4__["default"], + default: null + }, + isUnique: { + type: Boolean, + default: true + } + }, + data() { + var _this$share; + return { + config: new _services_ConfigService_js__WEBPACK_IMPORTED_MODULE_7__["default"](), + // errors helpers + errors: {}, + // component status toggles + loading: false, + saving: false, + open: false, + // concurrency management queue + // we want one queue per share + updateQueue: new p_queue__WEBPACK_IMPORTED_MODULE_2__["default"]({ + concurrency: 1 + }), + /** + * ! This allow vue to make the Share class state reactive + * ! do not remove it ot you'll lose all reactivity here + */ + reactiveState: (_this$share = this.share) === null || _this$share === void 0 ? void 0 : _this$share.state + }; + }, + computed: { + /** + * Does the current share have a note + * + * @return {boolean} + */ + hasNote: { + get() { + return this.share.note !== ''; + }, + set(enabled) { + this.share.note = enabled ? null // enabled but user did not changed the content yet + : ''; // empty = no note = disabled + } + }, + dateTomorrow() { + return new Date(new Date().setDate(new Date().getDate() + 1)); + }, + // Datepicker language + lang() { + const weekdaysShort = window.dayNamesShort ? window.dayNamesShort // provided by nextcloud + : ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.']; + const monthsShort = window.monthNamesShort ? window.monthNamesShort // provided by nextcloud + : ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.']; + const firstDayOfWeek = window.firstDay ? window.firstDay : 0; + return { + formatLocale: { + firstDayOfWeek, + monthsShort, + weekdaysMin: weekdaysShort, + weekdaysShort + }, + monthFormat: 'MMM' + }; + }, + isFolder() { + return this.fileInfo.type === 'dir'; + }, + isPublicShare() { + var _this$share$shareType; + const shareType = (_this$share$shareType = this.share.shareType) !== null && _this$share$shareType !== void 0 ? _this$share$shareType : this.share.type; + return [this.SHARE_TYPES.SHARE_TYPE_LINK, this.SHARE_TYPES.SHARE_TYPE_EMAIL].includes(shareType); + }, + isRemoteShare() { + return this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP || this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE; + }, + isShareOwner() { + return this.share && this.share.owner === (0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)().uid; + }, + isExpiryDateEnforced() { + if (this.isPublicShare) { + return this.config.isDefaultExpireDateEnforced; + } + if (this.isRemoteShare) { + return this.config.isDefaultRemoteExpireDateEnforced; + } + return this.config.isDefaultInternalExpireDateEnforced; + }, + hasCustomPermissions() { + const bundledPermissions = [_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_8__.BUNDLED_PERMISSIONS.ALL, _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_8__.BUNDLED_PERMISSIONS.READ_ONLY, _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_8__.BUNDLED_PERMISSIONS.FILE_DROP]; + return !bundledPermissions.includes(this.share.permissions); + }, + maxExpirationDateEnforced() { + if (this.isExpiryDateEnforced) { + if (this.isPublicShare) { + return this.config.defaultExpirationDate; + } + if (this.isRemoteShare) { + return this.config.defaultRemoteExpirationDateString; + } + // If it get's here then it must be an internal share + return this.config.defaultInternalExpirationDate; + } + return null; + } + }, + methods: { + /** + * Check if a share is valid before + * firing the request + * + * @param {Share} share the share to check + * @return {boolean} + */ + checkShare(share) { + if (share.password) { + if (typeof share.password !== 'string' || share.password.trim() === '') { + return false; + } + } + if (share.expirationDate) { + const date = share.expirationDate; + if (!date.isValid()) { + return false; + } + } + return true; + }, + /** + * @param {string} date a date with YYYY-MM-DD format + * @return {Date} date + */ + parseDateString(date) { + var _date$match; + if (!date) { + return; + } + const regex = /([0-9]{4}-[0-9]{2}-[0-9]{2})/i; + return new Date((_date$match = date.match(regex)) === null || _date$match === void 0 ? void 0 : _date$match.pop()); + }, + /** + * @param {Date} date + * @return {string} date a date with YYYY-MM-DD format + */ + formatDateToString(date) { + // Force utc time. Drop time information to be timezone-less + const utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())); + // Format to YYYY-MM-DD + return utcDate.toISOString().split('T')[0]; + }, + /** + * Save given value to expireDate and trigger queueUpdate + * + * @param {Date} date + */ + onExpirationChange: debounce__WEBPACK_IMPORTED_MODULE_3___default()(function (date) { + this.share.expireDate = this.formatDateToString(new Date(date)); + }, 500), + /** + * Uncheck expire date + * We need this method because @update:checked + * is ran simultaneously as @uncheck, so + * so we cannot ensure data is up-to-date + */ + onExpirationDisable() { + this.share.expireDate = ''; + }, + /** + * Note changed, let's save it to a different key + * + * @param {string} note the share note + */ + onNoteChange(note) { + this.$set(this.share, 'newNote', note.trim()); + }, + /** + * When the note change, we trim, save and dispatch + * + */ + onNoteSubmit() { + if (this.share.newNote) { + this.share.note = this.share.newNote; + this.$delete(this.share, 'newNote'); + this.queueUpdate('note'); + } + }, + /** + * Delete share button handler + */ + async onDelete() { + try { + this.loading = true; + this.open = false; + await this.deleteShare(this.share.id); + console.debug('Share deleted', this.share.id); + const message = this.share.itemType === 'file' ? t('files_sharing', 'File "{path}" has been unshared', { + path: this.share.path + }) : t('files_sharing', 'Folder "{path}" has been unshared', { + path: this.share.path + }); + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showSuccess)(message); + this.$emit('remove:share', this.share); + } catch (error) { + // re-open menu if error + this.open = true; + } finally { + this.loading = false; + } + }, + /** + * Send an update of the share to the queue + * + * @param {Array} propertyNames the properties to sync + */ + queueUpdate() { + for (var _len = arguments.length, propertyNames = new Array(_len), _key = 0; _key < _len; _key++) { + propertyNames[_key] = arguments[_key]; + } + if (propertyNames.length === 0) { + // Nothing to update + return; + } + if (this.share.id) { + const properties = {}; + // force value to string because that is what our + // share api controller accepts + propertyNames.forEach(name => { + if (typeof this.share[name] === 'object') { + properties[name] = JSON.stringify(this.share[name]); + } else { + properties[name] = this.share[name].toString(); + } + }); + this.updateQueue.add(async () => { + this.saving = true; + this.errors = {}; + try { + const updatedShare = await this.updateShare(this.share.id, properties); + if (propertyNames.indexOf('password') >= 0) { + // reset password state after sync + this.$delete(this.share, 'newPassword'); + + // updates password expiration time after sync + this.share.passwordExpirationTime = updatedShare.password_expiration_time; + } + + // clear any previous errors + this.$delete(this.errors, propertyNames[0]); + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showSuccess)(t('files_sharing', 'Share {propertyName} saved', { + propertyName: propertyNames[0] + })); + } catch ({ + message + }) { + if (message && message !== '') { + this.onSyncError(propertyNames[0], message); + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(t('files_sharing', message)); + } + } finally { + this.saving = false; + } + }); + return; + } + + // This share does not exists on the server yet + console.debug('Updated local share', this.share); + }, + /** + * Manage sync errors + * + * @param {string} property the errored property, e.g. 'password' + * @param {string} message the error message + */ + onSyncError(property, message) { + // re-open menu if closed + this.open = true; + switch (property) { + case 'password': + case 'pending': + case 'expireDate': + case 'label': + case 'note': + { + // show error + this.$set(this.errors, property, message); + let propertyEl = this.$refs[property]; + if (propertyEl) { + if (propertyEl.$el) { + propertyEl = propertyEl.$el; + } + // focus if there is a focusable action element + const focusable = propertyEl.querySelector('.focusable'); + if (focusable) { + focusable.focus(); + } + } + break; + } + case 'sendPasswordByTalk': + { + // show error + this.$set(this.errors, property, message); + + // Restore previous state + this.share.sendPasswordByTalk = !this.share.sendPasswordByTalk; + break; + } + } + }, + /** + * Debounce queueUpdate to avoid requests spamming + * more importantly for text data + * + * @param {string} property the property to sync + */ + debounceQueueUpdate: debounce__WEBPACK_IMPORTED_MODULE_3___default()(function (property) { + this.queueUpdate(property); + }, 500) + } +}); + +/***/ }), + +/***/ "./apps/files_sharing/src/models/Share.js": +/*!************************************************!*\ + !*** ./apps/files_sharing/src/models/Share.js ***! + \************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Share) +/* harmony export */ }); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/** + * @copyright Copyright (c) 2019 John Molakvoæ + * + * @author Daniel Calviño Sánchez + * @author Gary Kim + * @author Georg Ehrke + * @author John Molakvoæ + * @author Julius Härtl + * @author Roeland Jago Douma + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +class Share { + /** + * Create the share object + * + * @param {object} ocsData ocs request response + */ + constructor(ocsData) { + var _ocsData$attributes; + _defineProperty(this, "_share", void 0); + if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) { + ocsData = ocsData.ocs.data[0]; + } + + // convert int into boolean + ocsData.hide_download = !!ocsData.hide_download; + ocsData.mail_send = !!ocsData.mail_send; + if (ocsData.attributes && typeof ocsData.attributes === 'string') { + try { + ocsData.attributes = JSON.parse(ocsData.attributes); + } catch (e) { + console.warn('Could not parse share attributes returned by server', ocsData.attributes); + } + } + ocsData.attributes = (_ocsData$attributes = ocsData.attributes) !== null && _ocsData$attributes !== void 0 ? _ocsData$attributes : []; + + // store state + this._share = ocsData; + } + + /** + * Get the share state + * ! used for reactivity purpose + * Do not remove. It allow vuejs to + * inject its watchers into the #share + * state and make the whole class reactive + * + * @return {object} the share raw state + * @readonly + * @memberof Sidebar + */ + get state() { + return this._share; + } + + /** + * get the share id + * + * @return {number} + * @readonly + * @memberof Share + */ + get id() { + return this._share.id; + } + + /** + * Get the share type + * + * @return {number} + * @readonly + * @memberof Share + */ + get type() { + return this._share.share_type; + } + + /** + * Get the share permissions + * See OC.PERMISSION_* variables + * + * @return {number} + * @readonly + * @memberof Share + */ + get permissions() { + return this._share.permissions; + } + + /** + * Get the share attributes + * + * @return {Array} + * @readonly + * @memberof Share + */ + get attributes() { + return this._share.attributes; + } + + /** + * Set the share permissions + * See OC.PERMISSION_* variables + * + * @param {number} permissions valid permission, See OC.PERMISSION_* variables + * @memberof Share + */ + set permissions(permissions) { + this._share.permissions = permissions; + } + + // SHARE OWNER -------------------------------------------------- + /** + * Get the share owner uid + * + * @return {string} + * @readonly + * @memberof Share + */ + get owner() { + return this._share.uid_owner; + } + + /** + * Get the share owner's display name + * + * @return {string} + * @readonly + * @memberof Share + */ + get ownerDisplayName() { + return this._share.displayname_owner; + } + + // SHARED WITH -------------------------------------------------- + /** + * Get the share with entity uid + * + * @return {string} + * @readonly + * @memberof Share + */ + get shareWith() { + return this._share.share_with; + } + + /** + * Get the share with entity display name + * fallback to its uid if none + * + * @return {string} + * @readonly + * @memberof Share + */ + get shareWithDisplayName() { + return this._share.share_with_displayname || this._share.share_with; + } + + /** + * Unique display name in case of multiple + * duplicates results with the same name. + * + * @return {string} + * @readonly + * @memberof Share + */ + get shareWithDisplayNameUnique() { + return this._share.share_with_displayname_unique || this._share.share_with; + } + + /** + * Get the share with entity link + * + * @return {string} + * @readonly + * @memberof Share + */ + get shareWithLink() { + return this._share.share_with_link; + } + + /** + * Get the share with avatar if any + * + * @return {string} + * @readonly + * @memberof Share + */ + get shareWithAvatar() { + return this._share.share_with_avatar; + } + + // SHARED FILE OR FOLDER OWNER ---------------------------------- + /** + * Get the shared item owner uid + * + * @return {string} + * @readonly + * @memberof Share + */ + get uidFileOwner() { + return this._share.uid_file_owner; + } + + /** + * Get the shared item display name + * fallback to its uid if none + * + * @return {string} + * @readonly + * @memberof Share + */ + get displaynameFileOwner() { + return this._share.displayname_file_owner || this._share.uid_file_owner; + } + + // TIME DATA ---------------------------------------------------- + /** + * Get the share creation timestamp + * + * @return {number} + * @readonly + * @memberof Share + */ + get createdTime() { + return this._share.stime; + } + + /** + * Get the expiration date + * + * @return {string} date with YYYY-MM-DD format + * @readonly + * @memberof Share + */ + get expireDate() { + return this._share.expiration; + } + + /** + * Set the expiration date + * + * @param {string} date the share expiration date with YYYY-MM-DD format + * @memberof Share + */ + set expireDate(date) { + this._share.expiration = date; + } + + // EXTRA DATA --------------------------------------------------- + /** + * Get the public share token + * + * @return {string} the token + * @readonly + * @memberof Share + */ + get token() { + return this._share.token; + } + + /** + * Get the share note if any + * + * @return {string} + * @readonly + * @memberof Share + */ + get note() { + return this._share.note; + } + + /** + * Set the share note if any + * + * @param {string} note the note + * @memberof Share + */ + set note(note) { + this._share.note = note; + } + + /** + * Get the share label if any + * Should only exist on link shares + * + * @return {string} + * @readonly + * @memberof Share + */ + get label() { + var _this$_share$label; + return (_this$_share$label = this._share.label) !== null && _this$_share$label !== void 0 ? _this$_share$label : ''; + } + + /** + * Set the share label if any + * Should only be set on link shares + * + * @param {string} label the label + * @memberof Share + */ + set label(label) { + this._share.label = label; + } + + /** + * Have a mail been sent + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get mailSend() { + return this._share.mail_send === true; + } + + /** + * Hide the download button on public page + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get hideDownload() { + return this._share.hide_download === true; + } + + /** + * Hide the download button on public page + * + * @param {boolean} state hide the button ? + * @memberof Share + */ + set hideDownload(state) { + this._share.hide_download = state === true; + } + + /** + * Password protection of the share + * + * @return {string} + * @readonly + * @memberof Share + */ + get password() { + return this._share.password; + } + + /** + * Password protection of the share + * + * @param {string} password the share password + * @memberof Share + */ + set password(password) { + this._share.password = password; + } + + /** + * Password expiration time + * + * @return {string} + * @readonly + * @memberof Share + */ + get passwordExpirationTime() { + return this._share.password_expiration_time; + } + + /** + * Password expiration time + * + * @param {string} password expiration time + * @memberof Share + */ + set passwordExpirationTime(passwordExpirationTime) { + this._share.password_expiration_time = passwordExpirationTime; + } + + /** + * Password protection by Talk of the share + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get sendPasswordByTalk() { + return this._share.send_password_by_talk; + } + + /** + * Password protection by Talk of the share + * + * @param {boolean} sendPasswordByTalk whether to send the password by Talk + * or not + * @memberof Share + */ + set sendPasswordByTalk(sendPasswordByTalk) { + this._share.send_password_by_talk = sendPasswordByTalk; + } + + // SHARED ITEM DATA --------------------------------------------- + /** + * Get the shared item absolute full path + * + * @return {string} + * @readonly + * @memberof Share + */ + get path() { + return this._share.path; + } + + /** + * Return the item type: file or folder + * + * @return {string} 'folder' or 'file' + * @readonly + * @memberof Share + */ + get itemType() { + return this._share.item_type; + } + + /** + * Get the shared item mimetype + * + * @return {string} + * @readonly + * @memberof Share + */ + get mimetype() { + return this._share.mimetype; + } + + /** + * Get the shared item id + * + * @return {number} + * @readonly + * @memberof Share + */ + get fileSource() { + return this._share.file_source; + } + + /** + * Get the target path on the receiving end + * e.g the file /xxx/aaa will be shared in + * the receiving root as /aaa, the fileTarget is /aaa + * + * @return {string} + * @readonly + * @memberof Share + */ + get fileTarget() { + return this._share.file_target; + } + + /** + * Get the parent folder id if any + * + * @return {number} + * @readonly + * @memberof Share + */ + get fileParent() { + return this._share.file_parent; + } + + // PERMISSIONS Shortcuts + + /** + * Does this share have READ permissions + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get hasReadPermission() { + return !!(this.permissions & OC.PERMISSION_READ); + } + + /** + * Does this share have CREATE permissions + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get hasCreatePermission() { + return !!(this.permissions & OC.PERMISSION_CREATE); + } + + /** + * Does this share have DELETE permissions + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get hasDeletePermission() { + return !!(this.permissions & OC.PERMISSION_DELETE); + } + + /** + * Does this share have UPDATE permissions + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get hasUpdatePermission() { + return !!(this.permissions & OC.PERMISSION_UPDATE); + } + + /** + * Does this share have SHARE permissions + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get hasSharePermission() { + return !!(this.permissions & OC.PERMISSION_SHARE); + } + + /** + * Does this share have download permissions + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get hasDownloadPermission() { + for (const i in this._share.attributes) { + const attr = this._share.attributes[i]; + if (attr.scope === 'permissions' && attr.key === 'download') { + return attr.enabled; + } + } + return true; + } + set hasDownloadPermission(enabled) { + this.setAttribute('permissions', 'download', !!enabled); + } + setAttribute(scope, key, enabled) { + const attrUpdate = { + scope, + key, + enabled + }; + + // try and replace existing + for (const i in this._share.attributes) { + const attr = this._share.attributes[i]; + if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) { + this._share.attributes.splice(i, 1, attrUpdate); + return; + } + } + this._share.attributes.push(attrUpdate); + } + + // PERMISSIONS Shortcuts for the CURRENT USER + // ! the permissions above are the share settings, + // ! meaning the permissions for the recipient + /** + * Can the current user EDIT this share ? + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get canEdit() { + return this._share.can_edit === true; + } + + /** + * Can the current user DELETE this share ? + * + * @return {boolean} + * @readonly + * @memberof Share + */ + get canDelete() { + return this._share.can_delete === true; + } + + /** + * Top level accessible shared folder fileid for the current user + * + * @return {string} + * @readonly + * @memberof Share + */ + get viaFileid() { + return this._share.via_fileid; + } + + /** + * Top level accessible shared folder path for the current user + * + * @return {string} + * @readonly + * @memberof Share + */ + get viaPath() { + return this._share.via_path; + } + + // TODO: SORT THOSE PROPERTIES + + get parent() { + return this._share.parent; + } + get storageId() { + return this._share.storage_id; + } + get storage() { + return this._share.storage; + } + get itemSource() { + return this._share.item_source; + } + get status() { + return this._share.status; + } +} + +/***/ }), + +/***/ "./apps/files_sharing/src/services/ConfigService.js": +/*!**********************************************************!*\ + !*** ./apps/files_sharing/src/services/ConfigService.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Config) +/* harmony export */ }); +/* harmony import */ var _nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/capabilities */ "./node_modules/@nextcloud/capabilities/dist/index.mjs"); +/** + * @copyright Copyright (c) 2019 John Molakvoæ + * + * @author Arthur Schiwon + * @author John Molakvoæ + * @author Julius Härtl + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +class Config { + constructor() { + this._capabilities = (0,_nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_0__.getCapabilities)(); + } + + /** + * Get default share permissions, if any + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get defaultPermissions() { + var _this$_capabilities$f; + return (_this$_capabilities$f = this._capabilities.files_sharing) === null || _this$_capabilities$f === void 0 ? void 0 : _this$_capabilities$f.default_permissions; + } + + /** + * Is public upload allowed on link shares ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isPublicUploadEnabled() { + var _this$_capabilities$f2; + return (_this$_capabilities$f2 = this._capabilities.files_sharing) === null || _this$_capabilities$f2 === void 0 ? void 0 : _this$_capabilities$f2.public.upload; + } + + /** + * Are link share allowed ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isShareWithLinkAllowed() { + return document.getElementById('allowShareWithLink') && document.getElementById('allowShareWithLink').value === 'yes'; + } + + /** + * Get the federated sharing documentation link + * + * @return {string} + * @readonly + * @memberof Config + */ + get federatedShareDocLink() { + return OC.appConfig.core.federatedCloudShareDoc; + } + + /** + * Get the default link share expiration date + * + * @return {Date|null} + * @readonly + * @memberof Config + */ + get defaultExpirationDate() { + if (this.isDefaultExpireDateEnabled) { + return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate)); + } + return null; + } + + /** + * Get the default internal expiration date + * + * @return {Date|null} + * @readonly + * @memberof Config + */ + get defaultInternalExpirationDate() { + if (this.isDefaultInternalExpireDateEnabled) { + return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate)); + } + return null; + } + + /** + * Get the default remote expiration date + * + * @return {Date|null} + * @readonly + * @memberof Config + */ + get defaultRemoteExpirationDateString() { + if (this.isDefaultRemoteExpireDateEnabled) { + return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate)); + } + return null; + } + + /** + * Are link shares password-enforced ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get enforcePasswordForPublicLink() { + return OC.appConfig.core.enforcePasswordForPublicLink === true; + } + + /** + * Is password asked by default on link shares ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get enableLinkPasswordByDefault() { + return OC.appConfig.core.enableLinkPasswordByDefault === true; + } + + /** + * Is link shares expiration enforced ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isDefaultExpireDateEnforced() { + return OC.appConfig.core.defaultExpireDateEnforced === true; + } + + /** + * Is there a default expiration date for new link shares ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isDefaultExpireDateEnabled() { + return OC.appConfig.core.defaultExpireDateEnabled === true; + } + + /** + * Is internal shares expiration enforced ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isDefaultInternalExpireDateEnforced() { + return OC.appConfig.core.defaultInternalExpireDateEnforced === true; + } + + /** + * Is remote shares expiration enforced ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isDefaultRemoteExpireDateEnforced() { + return OC.appConfig.core.defaultRemoteExpireDateEnforced === true; + } + + /** + * Is there a default expiration date for new internal shares ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isDefaultInternalExpireDateEnabled() { + return OC.appConfig.core.defaultInternalExpireDateEnabled === true; + } + + /** + * Is there a default expiration date for new remote shares ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isDefaultRemoteExpireDateEnabled() { + return OC.appConfig.core.defaultRemoteExpireDateEnabled === true; + } + + /** + * Are users on this server allowed to send shares to other servers ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isRemoteShareAllowed() { + return OC.appConfig.core.remoteShareAllowed === true; + } + + /** + * Is sharing my mail (link share) enabled ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isMailShareAllowed() { + var _this$_capabilities, _this$_capabilities2; + // eslint-disable-next-line camelcase + return ((_this$_capabilities = this._capabilities) === null || _this$_capabilities === void 0 || (_this$_capabilities = _this$_capabilities.files_sharing) === null || _this$_capabilities === void 0 ? void 0 : _this$_capabilities.sharebymail) !== undefined + // eslint-disable-next-line camelcase + && ((_this$_capabilities2 = this._capabilities) === null || _this$_capabilities2 === void 0 || (_this$_capabilities2 = _this$_capabilities2.files_sharing) === null || _this$_capabilities2 === void 0 || (_this$_capabilities2 = _this$_capabilities2.public) === null || _this$_capabilities2 === void 0 ? void 0 : _this$_capabilities2.enabled) === true; + } + + /** + * Get the default days to link shares expiration + * + * @return {number} + * @readonly + * @memberof Config + */ + get defaultExpireDate() { + return OC.appConfig.core.defaultExpireDate; + } + + /** + * Get the default days to internal shares expiration + * + * @return {number} + * @readonly + * @memberof Config + */ + get defaultInternalExpireDate() { + return OC.appConfig.core.defaultInternalExpireDate; + } + + /** + * Get the default days to remote shares expiration + * + * @return {number} + * @readonly + * @memberof Config + */ + get defaultRemoteExpireDate() { + return OC.appConfig.core.defaultRemoteExpireDate; + } + + /** + * Is resharing allowed ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isResharingAllowed() { + return OC.appConfig.core.resharingAllowed === true; + } + + /** + * Is password enforced for mail shares ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get isPasswordForMailSharesRequired() { + return this._capabilities.files_sharing.sharebymail === undefined ? false : this._capabilities.files_sharing.sharebymail.password.enforced; + } + + /** + * @return {boolean} + * @readonly + * @memberof Config + */ + get shouldAlwaysShowUnique() { + var _this$_capabilities$f3; + return ((_this$_capabilities$f3 = this._capabilities.files_sharing) === null || _this$_capabilities$f3 === void 0 || (_this$_capabilities$f3 = _this$_capabilities$f3.sharee) === null || _this$_capabilities$f3 === void 0 ? void 0 : _this$_capabilities$f3.always_show_unique) === true; + } + + /** + * Is sharing with groups allowed ? + * + * @return {boolean} + * @readonly + * @memberof Config + */ + get allowGroupSharing() { + return OC.appConfig.core.allowGroupSharing === true; + } + + /** + * Get the maximum results of a share search + * + * @return {number} + * @readonly + * @memberof Config + */ + get maxAutocompleteResults() { + return parseInt(OC.config['sharing.maxAutocompleteResults'], 10) || 25; + } + + /** + * Get the minimal string length + * to initiate a share search + * + * @return {number} + * @readonly + * @memberof Config + */ + get minSearchStringLength() { + return parseInt(OC.config['sharing.minSearchStringLength'], 10) || 0; + } + + /** + * Get the password policy config + * + * @return {object} + * @readonly + * @memberof Config + */ + get passwordPolicy() { + return this._capabilities.password_policy ? this._capabilities.password_policy : {}; + } +} + +/***/ }), + +/***/ "./apps/files_sharing/src/utils/GeneratePassword.js": +/*!**********************************************************!*\ + !*** ./apps/files_sharing/src/utils/GeneratePassword.js ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _services_ConfigService_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/ConfigService.js */ "./apps/files_sharing/src/services/ConfigService.js"); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); +/** + * @copyright Copyright (c) 2020 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + + + +const config = new _services_ConfigService_js__WEBPACK_IMPORTED_MODULE_1__["default"](); +// note: some chars removed on purpose to make them human friendly when read out +const passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789'; + +/** + * Generate a valid policy password or + * request a valid password if password_policy + * is enabled + * + * @return {string} a valid password + */ +/* harmony default export */ async function __WEBPACK_DEFAULT_EXPORT__() { + // password policy is enabled, let's request a pass + if (config.passwordPolicy.api && config.passwordPolicy.api.generate) { + try { + const request = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__["default"].get(config.passwordPolicy.api.generate); + if (request.data.ocs.data.password) { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_2__.showSuccess)(t('files_sharing', 'Password created successfully')); + return request.data.ocs.data.password; + } + } catch (error) { + console.info('Error generating password from password_policy', error); + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_2__.showError)(t('files_sharing', 'Error generating password from password policy')); + } + } + const array = new Uint8Array(10); + const ratio = passwordSet.length / 255; + self.crypto.getRandomValues(array); + let password = ''; + for (let i = 0; i < array.length; i++) { + password += passwordSet.charAt(array[i] * ratio); + } + return password; +} + +/***/ }), + +/***/ "./apps/files_sharing/src/utils/SharedWithMe.js": +/*!******************************************************!*\ + !*** ./apps/files_sharing/src/utils/SharedWithMe.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ shareWithTitle: () => (/* binding */ shareWithTitle) +/* harmony export */ }); +/* harmony import */ var _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/sharing */ "./node_modules/@nextcloud/sharing/dist/index.js"); +/** + * @copyright Copyright (c) 2019 John Molakvoæ + * + * @author Joas Schilling + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + +const shareWithTitle = function (share) { + if (share.type === _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_0__.Type.SHARE_TYPE_GROUP) { + return t('files_sharing', 'Shared with you and the group {group} by {owner}', { + group: share.shareWithDisplayName, + owner: share.ownerDisplayName + }, undefined, { + escape: false + }); + } else if (share.type === _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_0__.Type.SHARE_TYPE_CIRCLE) { + return t('files_sharing', 'Shared with you and {circle} by {owner}', { + circle: share.shareWithDisplayName, + owner: share.ownerDisplayName + }, undefined, { + escape: false + }); + } else if (share.type === _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_0__.Type.SHARE_TYPE_ROOM) { + if (share.shareWithDisplayName) { + return t('files_sharing', 'Shared with you and the conversation {conversation} by {owner}', { + conversation: share.shareWithDisplayName, + owner: share.ownerDisplayName + }, undefined, { + escape: false + }); + } else { + return t('files_sharing', 'Shared with you in a conversation by {owner}', { + owner: share.ownerDisplayName + }, undefined, { + escape: false + }); + } + } else { + return t('files_sharing', 'Shared with you by {owner}', { + owner: share.ownerDisplayName + }, undefined, { + escape: false + }); + } +}; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js": +/*!***********************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js ***! + \***********************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'ExternalShareAction', + props: { + id: { + type: String, + required: true + }, + action: { + type: Object, + default: () => ({}) + }, + fileInfo: { + type: Object, + default: () => {}, + required: true + }, + share: { + type: _models_Share_js__WEBPACK_IMPORTED_MODULE_0__["default"], + default: null + } + }, + computed: { + data() { + return this.action.data(this); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js": +/*!****************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js ***! + \****************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcSelect.js */ "./node_modules/@nextcloud/vue/dist/Components/NcSelect.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAvatar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAvatar.mjs"); +/* harmony import */ var vue_material_design_icons_DotsHorizontal_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-material-design-icons/DotsHorizontal.vue */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue"); +/* harmony import */ var _SharingEntryQuickShareSelect_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./SharingEntryQuickShareSelect.vue */ "./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue"); +/* harmony import */ var _mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../mixins/SharesMixin.js */ "./apps/files_sharing/src/mixins/SharesMixin.js"); +/* harmony import */ var _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../mixins/ShareDetails.js */ "./apps/files_sharing/src/mixins/ShareDetails.js"); + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingEntry', + components: { + NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_0__["default"], + NcAvatar: _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_2__["default"], + DotsHorizontalIcon: vue_material_design_icons_DotsHorizontal_vue__WEBPACK_IMPORTED_MODULE_3__["default"], + NcSelect: _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_1__["default"], + SharingEntryQuickShareSelect: _SharingEntryQuickShareSelect_vue__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + mixins: [_mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_5__["default"], _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_6__["default"]], + computed: { + title() { + let title = this.share.shareWithDisplayName; + if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP) { + title += " (".concat(t('files_sharing', 'group'), ")"); + } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_ROOM) { + title += " (".concat(t('files_sharing', 'conversation'), ")"); + } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE) { + title += " (".concat(t('files_sharing', 'remote'), ")"); + } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP) { + title += " (".concat(t('files_sharing', 'remote group'), ")"); + } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GUEST) { + title += " (".concat(t('files_sharing', 'guest'), ")"); + } + return title; + }, + tooltip() { + if (this.share.owner !== this.share.uidFileOwner) { + const data = { + // todo: strong or italic? + // but the t function escape any html from the data :/ + user: this.share.shareWithDisplayName, + owner: this.share.ownerDisplayName + }; + if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP) { + return t('files_sharing', 'Shared with the group {user} by {owner}', data); + } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_ROOM) { + return t('files_sharing', 'Shared with the conversation {user} by {owner}', data); + } + return t('files_sharing', 'Shared with {user} by {owner}', data); + } + return null; + }, + /** + * @return {boolean} + */ + hasStatus() { + if (this.share.type !== this.SHARE_TYPES.SHARE_TYPE_USER) { + return false; + } + return typeof this.share.status === 'object' && !Array.isArray(this.share.status); + } + }, + methods: { + /** + * Save potential changed data on menu close + */ + onMenuClose() { + this.onNoteSubmit(); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js": +/*!*************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js ***! + \*************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_paths__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/paths */ "./node_modules/@nextcloud/paths/dist/index.js"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAvatar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAvatar.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionButton.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionLink_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionLink.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionLink.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionText_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionText.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionText.mjs"); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); +/* harmony import */ var _mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../mixins/SharesMixin.js */ "./apps/files_sharing/src/mixins/SharesMixin.js"); +/* harmony import */ var _components_SharingEntrySimple_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/SharingEntrySimple.vue */ "./apps/files_sharing/src/components/SharingEntrySimple.vue"); + + + + + + + +// eslint-disable-next-line no-unused-vars + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingEntryInherited', + components: { + NcActionButton: _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_3__["default"], + NcActionLink: _nextcloud_vue_dist_Components_NcActionLink_js__WEBPACK_IMPORTED_MODULE_4__["default"], + NcActionText: _nextcloud_vue_dist_Components_NcActionText_js__WEBPACK_IMPORTED_MODULE_5__["default"], + NcAvatar: _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_2__["default"], + SharingEntrySimple: _components_SharingEntrySimple_vue__WEBPACK_IMPORTED_MODULE_8__["default"] + }, + mixins: [_mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_7__["default"]], + props: { + share: { + type: _models_Share_js__WEBPACK_IMPORTED_MODULE_6__["default"], + required: true + } + }, + computed: { + viaFileTargetUrl() { + return (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateUrl)('/f/{fileid}', { + fileid: this.share.viaFileid + }); + }, + viaFolderName() { + return (0,_nextcloud_paths__WEBPACK_IMPORTED_MODULE_1__.basename)(this.share.viaPath); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js": +/*!************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js ***! + \************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionButton.mjs"); +/* harmony import */ var vue_material_design_icons_CheckBold_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-material-design-icons/CheckBold.vue */ "./node_modules/vue-material-design-icons/CheckBold.vue"); +/* harmony import */ var vue_material_design_icons_ClipboardFlow_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue-material-design-icons/ClipboardFlow.vue */ "./node_modules/vue-material-design-icons/ClipboardFlow.vue"); +/* harmony import */ var _SharingEntrySimple_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./SharingEntrySimple.vue */ "./apps/files_sharing/src/components/SharingEntrySimple.vue"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingEntryInternal', + components: { + NcActionButton: _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_2__["default"], + SharingEntrySimple: _SharingEntrySimple_vue__WEBPACK_IMPORTED_MODULE_5__["default"], + CheckIcon: vue_material_design_icons_CheckBold_vue__WEBPACK_IMPORTED_MODULE_3__["default"], + ClipboardIcon: vue_material_design_icons_ClipboardFlow_vue__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + props: { + fileInfo: { + type: Object, + default: () => {}, + required: true + } + }, + data() { + return { + copied: false, + copySuccess: false + }; + }, + computed: { + /** + * Get the internal link to this file id + * + * @return {string} + */ + internalLink() { + return window.location.protocol + '//' + window.location.host + (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateUrl)('/f/') + this.fileInfo.id; + }, + /** + * Tooltip message + * + * @return {string} + */ + copyLinkTooltip() { + if (this.copied) { + if (this.copySuccess) { + return ''; + } + return t('files_sharing', 'Cannot copy, please copy the link manually'); + } + return t('files_sharing', 'Copy internal link to clipboard'); + }, + internalLinkSubtitle() { + if (this.fileInfo.type === 'dir') { + return t('files_sharing', 'Only works for people with access to this folder'); + } + return t('files_sharing', 'Only works for people with access to this file'); + } + }, + methods: { + async copyLink() { + try { + await navigator.clipboard.writeText(this.internalLink); + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_1__.showSuccess)(t('files_sharing', 'Link copied')); + this.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus(); + this.copySuccess = true; + this.copied = true; + } catch (error) { + this.copySuccess = false; + this.copied = true; + console.error(error); + } finally { + setTimeout(() => { + this.copySuccess = false; + this.copied = false; + }, 4000); + } + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js": +/*!********************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js ***! + \********************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/sharing */ "./node_modules/@nextcloud/sharing/dist/index.js"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _chenfengyuan_vue_qrcode__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @chenfengyuan/vue-qrcode */ "./node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js"); +/* harmony import */ var _chenfengyuan_vue_qrcode__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_chenfengyuan_vue_qrcode__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionButton.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionInput_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionInput.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionInput.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionLink_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionLink.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionLink.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionText_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionText.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionText.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionSeparator_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionSeparator.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionSeparator.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActions.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActions.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAvatar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAvatar.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDialog.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDialog.mjs"); +/* harmony import */ var vue_material_design_icons_Tune_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! vue-material-design-icons/Tune.vue */ "./node_modules/vue-material-design-icons/Tune.vue"); +/* harmony import */ var vue_material_design_icons_Qrcode_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! vue-material-design-icons/Qrcode.vue */ "./node_modules/vue-material-design-icons/Qrcode.vue"); +/* harmony import */ var vue_material_design_icons_Exclamation_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! vue-material-design-icons/Exclamation.vue */ "./node_modules/vue-material-design-icons/Exclamation.vue"); +/* harmony import */ var vue_material_design_icons_Lock_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! vue-material-design-icons/Lock.vue */ "./node_modules/vue-material-design-icons/Lock.vue"); +/* harmony import */ var vue_material_design_icons_CheckBold_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! vue-material-design-icons/CheckBold.vue */ "./node_modules/vue-material-design-icons/CheckBold.vue"); +/* harmony import */ var vue_material_design_icons_ClipboardFlow_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! vue-material-design-icons/ClipboardFlow.vue */ "./node_modules/vue-material-design-icons/ClipboardFlow.vue"); +/* harmony import */ var vue_material_design_icons_Close_vue__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! vue-material-design-icons/Close.vue */ "./node_modules/vue-material-design-icons/Close.vue"); +/* harmony import */ var vue_material_design_icons_Plus_vue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! vue-material-design-icons/Plus.vue */ "./node_modules/vue-material-design-icons/Plus.vue"); +/* harmony import */ var _SharingEntryQuickShareSelect_vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./SharingEntryQuickShareSelect.vue */ "./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue"); +/* harmony import */ var _ExternalShareAction_vue__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./ExternalShareAction.vue */ "./apps/files_sharing/src/components/ExternalShareAction.vue"); +/* harmony import */ var _utils_GeneratePassword_js__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../utils/GeneratePassword.js */ "./apps/files_sharing/src/utils/GeneratePassword.js"); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); +/* harmony import */ var _mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../mixins/SharesMixin.js */ "./apps/files_sharing/src/mixins/SharesMixin.js"); +/* harmony import */ var _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../mixins/ShareDetails.js */ "./apps/files_sharing/src/mixins/ShareDetails.js"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + + + + + + + + + + + + + + + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingEntryLink', + components: { + ExternalShareAction: _ExternalShareAction_vue__WEBPACK_IMPORTED_MODULE_21__["default"], + NcActions: _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_9__["default"], + NcActionButton: _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_4__["default"], + NcActionInput: _nextcloud_vue_dist_Components_NcActionInput_js__WEBPACK_IMPORTED_MODULE_5__["default"], + NcActionLink: _nextcloud_vue_dist_Components_NcActionLink_js__WEBPACK_IMPORTED_MODULE_6__["default"], + NcActionText: _nextcloud_vue_dist_Components_NcActionText_js__WEBPACK_IMPORTED_MODULE_7__["default"], + NcActionSeparator: _nextcloud_vue_dist_Components_NcActionSeparator_js__WEBPACK_IMPORTED_MODULE_8__["default"], + NcAvatar: _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_10__["default"], + NcDialog: _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_11__["default"], + VueQrcode: (_chenfengyuan_vue_qrcode__WEBPACK_IMPORTED_MODULE_3___default()), + Tune: vue_material_design_icons_Tune_vue__WEBPACK_IMPORTED_MODULE_12__["default"], + IconQr: vue_material_design_icons_Qrcode_vue__WEBPACK_IMPORTED_MODULE_13__["default"], + ErrorIcon: vue_material_design_icons_Exclamation_vue__WEBPACK_IMPORTED_MODULE_14__["default"], + LockIcon: vue_material_design_icons_Lock_vue__WEBPACK_IMPORTED_MODULE_15__["default"], + CheckIcon: vue_material_design_icons_CheckBold_vue__WEBPACK_IMPORTED_MODULE_16__["default"], + ClipboardIcon: vue_material_design_icons_ClipboardFlow_vue__WEBPACK_IMPORTED_MODULE_17__["default"], + CloseIcon: vue_material_design_icons_Close_vue__WEBPACK_IMPORTED_MODULE_18__["default"], + PlusIcon: vue_material_design_icons_Plus_vue__WEBPACK_IMPORTED_MODULE_19__["default"], + SharingEntryQuickShareSelect: _SharingEntryQuickShareSelect_vue__WEBPACK_IMPORTED_MODULE_20__["default"] + }, + mixins: [_mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_24__["default"], _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_25__["default"]], + props: { + canReshare: { + type: Boolean, + default: true + }, + index: { + type: Number, + default: null + } + }, + data() { + return { + copySuccess: true, + copied: false, + // Are we waiting for password/expiration date + pending: false, + ExternalLegacyLinkActions: OCA.Sharing.ExternalLinkActions.state, + ExternalShareActions: OCA.Sharing.ExternalShareActions.state, + // tracks whether modal should be opened or not + showQRCode: false + }; + }, + computed: { + /** + * Link share label + * + * @return {string} + */ + title() { + // if we have a valid existing share (not pending) + if (this.share && this.share.id) { + if (!this.isShareOwner && this.share.ownerDisplayName) { + if (this.isEmailShareType) { + return t('files_sharing', '{shareWith} by {initiator}', { + shareWith: this.share.shareWith, + initiator: this.share.ownerDisplayName + }); + } + return t('files_sharing', 'Shared via link by {initiator}', { + initiator: this.share.ownerDisplayName + }); + } + if (this.share.label && this.share.label.trim() !== '') { + if (this.isEmailShareType) { + return t('files_sharing', 'Mail share ({label})', { + label: this.share.label.trim() + }); + } + return t('files_sharing', 'Share link ({label})', { + label: this.share.label.trim() + }); + } + if (this.isEmailShareType) { + return this.share.shareWith; + } + } + if (this.index > 1) { + return t('files_sharing', 'Share link ({index})', { + index: this.index + }); + } + return t('files_sharing', 'Share link'); + }, + /** + * Show the email on a second line if a label is set for mail shares + * + * @return {string} + */ + subtitle() { + if (this.isEmailShareType && this.title !== this.share.shareWith) { + return this.share.shareWith; + } + return null; + }, + /** + * Is the current share password protected ? + * + * @return {boolean} + */ + isPasswordProtected: { + get() { + return this.config.enforcePasswordForPublicLink || !!this.share.password; + }, + async set(enabled) { + // TODO: directly save after generation to make sure the share is always protected + vue__WEBPACK_IMPORTED_MODULE_26__["default"].set(this.share, 'password', enabled ? await (0,_utils_GeneratePassword_js__WEBPACK_IMPORTED_MODULE_22__["default"])() : ''); + vue__WEBPACK_IMPORTED_MODULE_26__["default"].set(this.share, 'newPassword', this.share.password); + } + }, + passwordExpirationTime() { + if (this.share.passwordExpirationTime === null) { + return null; + } + const expirationTime = moment(this.share.passwordExpirationTime); + if (expirationTime.diff(moment()) < 0) { + return false; + } + return expirationTime.fromNow(); + }, + /** + * Is Talk enabled? + * + * @return {boolean} + */ + isTalkEnabled() { + return OC.appswebroots.spreed !== undefined; + }, + /** + * Is it possible to protect the password by Talk? + * + * @return {boolean} + */ + isPasswordProtectedByTalkAvailable() { + return this.isPasswordProtected && this.isTalkEnabled; + }, + /** + * Is the current share password protected by Talk? + * + * @return {boolean} + */ + isPasswordProtectedByTalk: { + get() { + return this.share.sendPasswordByTalk; + }, + async set(enabled) { + this.share.sendPasswordByTalk = enabled; + } + }, + /** + * Is the current share an email share ? + * + * @return {boolean} + */ + isEmailShareType() { + return this.share ? this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL : false; + }, + canTogglePasswordProtectedByTalkAvailable() { + if (!this.isPasswordProtected) { + // Makes no sense + return false; + } else if (this.isEmailShareType && !this.hasUnsavedPassword) { + // For email shares we need a new password in order to enable or + // disable + return false; + } + + // Anything else should be fine + return true; + }, + /** + * Pending data. + * If the share still doesn't have an id, it is not synced + * Therefore this is still not valid and requires user input + * + * @return {boolean} + */ + pendingPassword() { + return this.config.enableLinkPasswordByDefault && this.share && !this.share.id; + }, + pendingEnforcedPassword() { + return this.config.enforcePasswordForPublicLink && this.share && !this.share.id; + }, + pendingExpirationDate() { + return this.config.isDefaultExpireDateEnforced && this.share && !this.share.id; + }, + // if newPassword exists, but is empty, it means + // the user deleted the original password + hasUnsavedPassword() { + return this.share.newPassword !== undefined; + }, + /** + * Return the public share link + * + * @return {string} + */ + shareLink() { + return window.location.protocol + '//' + window.location.host + (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateUrl)('/s/') + this.share.token; + }, + /** + * Tooltip message for actions button + * + * @return {string} + */ + actionsTooltip() { + return t('files_sharing', 'Actions for "{title}"', { + title: this.title + }); + }, + /** + * Tooltip message for copy button + * + * @return {string} + */ + copyLinkTooltip() { + if (this.copied) { + if (this.copySuccess) { + return ''; + } + return t('files_sharing', 'Cannot copy, please copy the link manually'); + } + return t('files_sharing', 'Copy public link of "{title}" to clipboard', { + title: this.title + }); + }, + /** + * External additionnai actions for the menu + * + * @deprecated use OCA.Sharing.ExternalShareActions + * @return {Array} + */ + externalLegacyLinkActions() { + return this.ExternalLegacyLinkActions.actions; + }, + /** + * Additional actions for the menu + * + * @return {Array} + */ + externalLinkActions() { + const filterValidAction = action => (action.shareType.includes(_nextcloud_sharing__WEBPACK_IMPORTED_MODULE_2__.Type.SHARE_TYPE_LINK) || action.shareType.includes(_nextcloud_sharing__WEBPACK_IMPORTED_MODULE_2__.Type.SHARE_TYPE_EMAIL)) && !action.advanced; + // filter only the registered actions for said link + return this.ExternalShareActions.actions.filter(filterValidAction); + }, + isPasswordPolicyEnabled() { + return typeof this.config.passwordPolicy === 'object'; + }, + canChangeHideDownload() { + const hasDisabledDownload = shareAttribute => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.enabled === false; + return this.fileInfo.shareAttributes.some(hasDisabledDownload); + } + }, + methods: { + /** + * Create a new share link and append it to the list + */ + async onNewLinkShare() { + // do not run again if already loading + if (this.loading) { + return; + } + const shareDefaults = { + share_type: _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_2__.Type.SHARE_TYPE_LINK + }; + if (this.config.isDefaultExpireDateEnforced) { + // default is empty string if not set + // expiration is the share object key, not expireDate + shareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate); + } + + // do not push yet if we need a password or an expiration date: show pending menu + if (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink || this.config.isDefaultExpireDateEnforced) { + this.pending = true; + + // if a share already exists, pushing it + if (this.share && !this.share.id) { + // if the share is valid, create it on the server + if (this.checkShare(this.share)) { + try { + await this.pushNewLinkShare(this.share, true); + } catch (e) { + this.pending = false; + console.error(e); + return false; + } + return true; + } else { + this.open = true; + OC.Notification.showTemporary(t('files_sharing', 'Error, please enter proper password and/or expiration date')); + return false; + } + } + + // ELSE, show the pending popovermenu + // if password default or enforced, pre-fill with random one + if (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink) { + shareDefaults.password = await (0,_utils_GeneratePassword_js__WEBPACK_IMPORTED_MODULE_22__["default"])(); + } + + // create share & close menu + const share = new _models_Share_js__WEBPACK_IMPORTED_MODULE_23__["default"](shareDefaults); + const component = await new Promise(resolve => { + this.$emit('add:share', share, resolve); + }); + + // open the menu on the + // freshly created share component + this.open = false; + this.pending = false; + component.open = true; + + // Nothing is enforced, creating share directly + } else { + const share = new _models_Share_js__WEBPACK_IMPORTED_MODULE_23__["default"](shareDefaults); + await this.pushNewLinkShare(share); + } + }, + /** + * Push a new link share to the server + * And update or append to the list + * accordingly + * + * @param {Share} share the new share + * @param {boolean} [update] do we update the current share ? + */ + async pushNewLinkShare(share, update) { + try { + // do nothing if we're already pending creation + if (this.loading) { + return true; + } + this.loading = true; + this.errors = {}; + const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/'); + const options = { + path, + shareType: _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_2__.Type.SHARE_TYPE_LINK, + password: share.password, + expireDate: share.expireDate, + attributes: JSON.stringify(this.fileInfo.shareAttributes) + // we do not allow setting the publicUpload + // before the share creation. + // Todo: We also need to fix the createShare method in + // lib/Controller/ShareAPIController.php to allow file drop + // (currently not supported on create, only update) + }; + console.debug('Creating link share with options', options); + const newShare = await this.createShare(options); + this.open = false; + console.debug('Link share created', newShare); + + // if share already exists, copy link directly on next tick + let component; + if (update) { + component = await new Promise(resolve => { + this.$emit('update:share', newShare, resolve); + }); + } else { + // adding new share to the array and copying link to clipboard + // using promise so that we can copy link in the same click function + // and avoid firefox copy permissions issue + component = await new Promise(resolve => { + this.$emit('add:share', newShare, resolve); + }); + } + + // Execute the copy link method + // freshly created share component + // ! somehow does not works on firefox ! + if (!this.config.enforcePasswordForPublicLink) { + // Only copy the link when the password was not forced, + // otherwise the user needs to copy/paste the password before finishing the share. + component.copyLink(); + } + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_1__.showSuccess)(t('files_sharing', 'Link share created')); + } catch (data) { + var _data$response; + const message = data === null || data === void 0 || (_data$response = data.response) === null || _data$response === void 0 || (_data$response = _data$response.data) === null || _data$response === void 0 || (_data$response = _data$response.ocs) === null || _data$response === void 0 || (_data$response = _data$response.meta) === null || _data$response === void 0 ? void 0 : _data$response.message; + if (!message) { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_1__.showError)(t('files_sharing', 'Error while creating the share')); + console.error(data); + return; + } + if (message.match(/password/i)) { + this.onSyncError('password', message); + } else if (message.match(/date/i)) { + this.onSyncError('expireDate', message); + } else { + this.onSyncError('pending', message); + } + throw data; + } finally { + this.loading = false; + } + }, + async copyLink() { + try { + await navigator.clipboard.writeText(this.shareLink); + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_1__.showSuccess)(t('files_sharing', 'Link copied')); + // focus and show the tooltip + this.$refs.copyButton.$el.focus(); + this.copySuccess = true; + this.copied = true; + } catch (error) { + this.copySuccess = false; + this.copied = true; + console.error(error); + } finally { + setTimeout(() => { + this.copySuccess = false; + this.copied = false; + }, 4000); + } + }, + /** + * Update newPassword values + * of share. If password is set but not newPassword + * then the user did not changed the password + * If both co-exists, the password have changed and + * we show it in plain text. + * Then on submit (or menu close), we sync it. + * + * @param {string} password the changed password + */ + onPasswordChange(password) { + this.$set(this.share, 'newPassword', password); + }, + /** + * Uncheck password protection + * We need this method because @update:checked + * is ran simultaneously as @uncheck, so we + * cannot ensure data is up-to-date + */ + onPasswordDisable() { + this.share.password = ''; + + // reset password state after sync + this.$delete(this.share, 'newPassword'); + + // only update if valid share. + if (this.share.id) { + this.queueUpdate('password'); + } + }, + /** + * Menu have been closed or password has been submitted. + * The only property that does not get + * synced automatically is the password + * So let's check if we have an unsaved + * password. + * expireDate is saved on datepicker pick + * or close. + */ + onPasswordSubmit() { + if (this.hasUnsavedPassword) { + this.share.password = this.share.newPassword.trim(); + this.queueUpdate('password'); + } + }, + /** + * Update the password along with "sendPasswordByTalk". + * + * If the password was modified the new password is sent; otherwise + * updating a mail share would fail, as in that case it is required that + * a new password is set when enabling or disabling + * "sendPasswordByTalk". + */ + onPasswordProtectedByTalkChange() { + if (this.hasUnsavedPassword) { + this.share.password = this.share.newPassword.trim(); + } + this.queueUpdate('sendPasswordByTalk', 'password'); + }, + /** + * Save potential changed data on menu close + */ + onMenuClose() { + this.onPasswordSubmit(); + this.onNoteSubmit(); + }, + /** + * Cancel the share creation + * Used in the pending popover + */ + onCancel() { + // this.share already exists at this point, + // but is incomplete as not pushed to server + // YET. We can safely delete the share :) + this.$emit('remove:share', this.share); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js": +/*!********************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js ***! + \********************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue_material_design_icons_TriangleSmallDown_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue-material-design-icons/TriangleSmallDown.vue */ "./node_modules/vue-material-design-icons/TriangleSmallDown.vue"); +/* harmony import */ var _mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../mixins/SharesMixin.js */ "./apps/files_sharing/src/mixins/SharesMixin.js"); +/* harmony import */ var _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../mixins/ShareDetails.js */ "./apps/files_sharing/src/mixins/ShareDetails.js"); +/* harmony import */ var _mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../mixins/ShareTypes.js */ "./apps/files_sharing/src/mixins/ShareTypes.js"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActions.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActions.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionButton.mjs"); +/* harmony import */ var vue_material_design_icons_EyeOutline_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vue-material-design-icons/EyeOutline.vue */ "./node_modules/vue-material-design-icons/EyeOutline.vue"); +/* harmony import */ var vue_material_design_icons_Pencil_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue-material-design-icons/Pencil.vue */ "./node_modules/vue-material-design-icons/Pencil.vue"); +/* harmony import */ var vue_material_design_icons_FileUpload_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue-material-design-icons/FileUpload.vue */ "./node_modules/vue-material-design-icons/FileUpload.vue"); +/* harmony import */ var vue_material_design_icons_Tune_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue-material-design-icons/Tune.vue */ "./node_modules/vue-material-design-icons/Tune.vue"); +/* harmony import */ var _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../lib/SharePermissionsToolBox.js */ "./apps/files_sharing/src/lib/SharePermissionsToolBox.js"); + + + + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingEntryQuickShareSelect', + components: { + DropdownIcon: vue_material_design_icons_TriangleSmallDown_vue__WEBPACK_IMPORTED_MODULE_0__["default"], + NcActions: _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_4__["default"], + NcActionButton: _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_5__["default"] + }, + mixins: [_mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_3__["default"]], + props: { + share: { + type: Object, + required: true + } + }, + emits: ['open-sharing-details'], + data() { + return { + selectedOption: '' + }; + }, + computed: { + ariaLabel() { + return t('files_sharing', 'Quick share options, the current selected is "{selectedOption}"', { + selectedOption: this.selectedOption + }); + }, + canViewText() { + return t('files_sharing', 'View only'); + }, + canEditText() { + return t('files_sharing', 'Can edit'); + }, + fileDropText() { + return t('files_sharing', 'File drop'); + }, + customPermissionsText() { + return t('files_sharing', 'Custom permissions'); + }, + preSelectedOption() { + // We remove the share permission for the comparison as it is not relevant for bundled permissions. + if ((this.share.permissions & ~_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.ATOMIC_PERMISSIONS.SHARE) === _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.BUNDLED_PERMISSIONS.READ_ONLY) { + return this.canViewText; + } else if (this.share.permissions === _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.BUNDLED_PERMISSIONS.ALL || this.share.permissions === _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.BUNDLED_PERMISSIONS.ALL_FILE) { + return this.canEditText; + } else if ((this.share.permissions & ~_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.ATOMIC_PERMISSIONS.SHARE) === _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.BUNDLED_PERMISSIONS.FILE_DROP) { + return this.fileDropText; + } + return this.customPermissionsText; + }, + options() { + const options = [{ + label: this.canViewText, + icon: vue_material_design_icons_EyeOutline_vue__WEBPACK_IMPORTED_MODULE_6__["default"] + }, { + label: this.canEditText, + icon: vue_material_design_icons_Pencil_vue__WEBPACK_IMPORTED_MODULE_7__["default"] + }]; + if (this.supportsFileDrop) { + options.push({ + label: this.fileDropText, + icon: vue_material_design_icons_FileUpload_vue__WEBPACK_IMPORTED_MODULE_8__["default"] + }); + } + options.push({ + label: this.customPermissionsText, + icon: vue_material_design_icons_Tune_vue__WEBPACK_IMPORTED_MODULE_9__["default"] + }); + return options; + }, + supportsFileDrop() { + if (this.isFolder && this.config.isPublicUploadEnabled) { + var _this$share$type; + const shareType = (_this$share$type = this.share.type) !== null && _this$share$type !== void 0 ? _this$share$type : this.share.shareType; + return [this.SHARE_TYPES.SHARE_TYPE_LINK, this.SHARE_TYPES.SHARE_TYPE_EMAIL].includes(shareType); + } + return false; + }, + dropDownPermissionValue() { + switch (this.selectedOption) { + case this.canEditText: + return this.isFolder ? _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.BUNDLED_PERMISSIONS.ALL : _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.BUNDLED_PERMISSIONS.ALL_FILE; + case this.fileDropText: + return _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.BUNDLED_PERMISSIONS.FILE_DROP; + case this.customPermissionsText: + return 'custom'; + case this.canViewText: + default: + return _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_10__.BUNDLED_PERMISSIONS.READ_ONLY; + } + } + }, + created() { + this.selectedOption = this.preSelectedOption; + }, + methods: { + selectOption(optionLabel) { + this.selectedOption = optionLabel; + if (optionLabel === this.customPermissionsText) { + this.$emit('open-sharing-details'); + } else { + this.share.permissions = this.dropDownPermissionValue; + this.queueUpdate('permissions'); + // TODO: Add a focus method to NcActions or configurable returnFocus enabling to NcActionButton with closeAfterClick + this.$refs.quickShareActions.$refs.menuButton.$el.focus(); + } + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js": +/*!**********************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js ***! + \**********************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActions.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActions.mjs"); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingEntrySimple', + components: { + NcActions: _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + title: { + type: String, + default: '', + required: true + }, + subtitle: { + type: String, + default: '' + }, + isUnique: { + type: Boolean, + default: true + }, + ariaExpanded: { + type: Boolean, + default: null + } + }, + computed: { + ariaExpandedValue() { + if (this.ariaExpanded === null) { + return this.ariaExpanded; + } + return this.ariaExpanded ? 'true' : 'false'; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js": +/*!****************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js ***! + \****************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/capabilities */ "./node_modules/@nextcloud/capabilities/dist/index.mjs"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! debounce */ "./node_modules/debounce/index.js"); +/* harmony import */ var debounce__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(debounce__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcSelect.js */ "./node_modules/@nextcloud/vue/dist/Components/NcSelect.mjs"); +/* harmony import */ var _services_ConfigService_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../services/ConfigService.js */ "./apps/files_sharing/src/services/ConfigService.js"); +/* harmony import */ var _utils_GeneratePassword_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../utils/GeneratePassword.js */ "./apps/files_sharing/src/utils/GeneratePassword.js"); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); +/* harmony import */ var _mixins_ShareRequests_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../mixins/ShareRequests.js */ "./apps/files_sharing/src/mixins/ShareRequests.js"); +/* harmony import */ var _mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../mixins/ShareTypes.js */ "./apps/files_sharing/src/mixins/ShareTypes.js"); +/* harmony import */ var _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../mixins/ShareDetails.js */ "./apps/files_sharing/src/mixins/ShareDetails.js"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingInput', + components: { + NcSelect: _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_5__["default"] + }, + mixins: [_mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_10__["default"], _mixins_ShareRequests_js__WEBPACK_IMPORTED_MODULE_9__["default"], _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_11__["default"]], + props: { + shares: { + type: Array, + default: () => [], + required: true + }, + linkShares: { + type: Array, + default: () => [], + required: true + }, + fileInfo: { + type: Object, + default: () => {}, + required: true + }, + reshare: { + type: _models_Share_js__WEBPACK_IMPORTED_MODULE_8__["default"], + default: null + }, + canReshare: { + type: Boolean, + required: true + } + }, + data() { + return { + config: new _services_ConfigService_js__WEBPACK_IMPORTED_MODULE_6__["default"](), + loading: false, + query: '', + recommendations: [], + ShareSearch: OCA.Sharing.ShareSearch.state, + suggestions: [], + value: null + }; + }, + computed: { + /** + * Implement ShareSearch + * allows external appas to inject new + * results into the autocomplete dropdown + * Used for the guests app + * + * @return {Array} + */ + externalResults() { + return this.ShareSearch.results; + }, + inputPlaceholder() { + const allowRemoteSharing = this.config.isRemoteShareAllowed; + if (!this.canReshare) { + return t('files_sharing', 'Resharing is not allowed'); + } + // We can always search with email addresses for users too + if (!allowRemoteSharing) { + return t('files_sharing', 'Name or email …'); + } + return t('files_sharing', 'Name, email, or Federated Cloud ID …'); + }, + isValidQuery() { + return this.query && this.query.trim() !== '' && this.query.length > this.config.minSearchStringLength; + }, + options() { + if (this.isValidQuery) { + return this.suggestions; + } + return this.recommendations; + }, + noResultText() { + if (this.loading) { + return t('files_sharing', 'Searching …'); + } + return t('files_sharing', 'No elements found.'); + } + }, + mounted() { + this.getRecommendations(); + }, + methods: { + onSelected(option) { + this.value = null; // Reset selected option + this.openSharingDetails(option); + }, + async asyncFind(query) { + // save current query to check if we display + // recommendations or search results + this.query = query.trim(); + if (this.isValidQuery) { + // start loading now to have proper ux feedback + // during the debounce + this.loading = true; + await this.debounceGetSuggestions(query); + } + }, + /** + * Get suggestions + * + * @param {string} search the search query + * @param {boolean} [lookup] search on lookup server + */ + async getSuggestions(search) { + let lookup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + this.loading = true; + if ((0,_nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_2__.getCapabilities)().files_sharing.sharee.query_lookup_default === true) { + lookup = true; + } + const shareType = [this.SHARE_TYPES.SHARE_TYPE_USER, this.SHARE_TYPES.SHARE_TYPE_GROUP, this.SHARE_TYPES.SHARE_TYPE_REMOTE, this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP, this.SHARE_TYPES.SHARE_TYPE_CIRCLE, this.SHARE_TYPES.SHARE_TYPE_ROOM, this.SHARE_TYPES.SHARE_TYPE_GUEST, this.SHARE_TYPES.SHARE_TYPE_DECK, this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH]; + if ((0,_nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_2__.getCapabilities)().files_sharing.public.enabled === true) { + shareType.push(this.SHARE_TYPES.SHARE_TYPE_EMAIL); + } + let request = null; + try { + request = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateOcsUrl)('apps/files_sharing/api/v1/sharees'), { + params: { + format: 'json', + itemType: this.fileInfo.type === 'dir' ? 'folder' : 'file', + search, + lookup, + perPage: this.config.maxAutocompleteResults, + shareType + } + }); + } catch (error) { + console.error('Error fetching suggestions', error); + return; + } + const data = request.data.ocs.data; + const exact = request.data.ocs.data.exact; + data.exact = []; // removing exact from general results + + // flatten array of arrays + const rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), []); + const rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), []); + + // remove invalid data and format to user-select layout + const exactSuggestions = this.filterOutExistingShares(rawExactSuggestions).map(share => this.formatForMultiselect(share)) + // sort by type so we can get user&groups first... + .sort((a, b) => a.shareType - b.shareType); + const suggestions = this.filterOutExistingShares(rawSuggestions).map(share => this.formatForMultiselect(share)) + // sort by type so we can get user&groups first... + .sort((a, b) => a.shareType - b.shareType); + + // lookup clickable entry + // show if enabled and not already requested + const lookupEntry = []; + if (data.lookupEnabled && !lookup) { + lookupEntry.push({ + id: 'global-lookup', + isNoUser: true, + displayName: t('files_sharing', 'Search globally'), + lookup: true + }); + } + + // if there is a condition specified, filter it + const externalResults = this.externalResults.filter(result => !result.condition || result.condition(this)); + const allSuggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry); + + // Count occurrences of display names in order to provide a distinguishable description if needed + const nameCounts = allSuggestions.reduce((nameCounts, result) => { + if (!result.displayName) { + return nameCounts; + } + if (!nameCounts[result.displayName]) { + nameCounts[result.displayName] = 0; + } + nameCounts[result.displayName]++; + return nameCounts; + }, {}); + this.suggestions = allSuggestions.map(item => { + // Make sure that items with duplicate displayName get the shareWith applied as a description + if (nameCounts[item.displayName] > 1 && !item.desc) { + return { + ...item, + desc: item.shareWithDisplayNameUnique + }; + } + return item; + }); + this.loading = false; + console.info('suggestions', this.suggestions); + }, + /** + * Debounce getSuggestions + * + * @param {...*} args the arguments + */ + debounceGetSuggestions: debounce__WEBPACK_IMPORTED_MODULE_4___default()(function () { + this.getSuggestions(...arguments); + }, 300), + /** + * Get the sharing recommendations + */ + async getRecommendations() { + this.loading = true; + let request = null; + try { + request = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateOcsUrl)('apps/files_sharing/api/v1/sharees_recommended'), { + params: { + format: 'json', + itemType: this.fileInfo.type + } + }); + } catch (error) { + console.error('Error fetching recommendations', error); + return; + } + + // Add external results from the OCA.Sharing.ShareSearch api + const externalResults = this.externalResults.filter(result => !result.condition || result.condition(this)); + + // flatten array of arrays + const rawRecommendations = Object.values(request.data.ocs.data.exact).reduce((arr, elem) => arr.concat(elem), []); + + // remove invalid data and format to user-select layout + this.recommendations = this.filterOutExistingShares(rawRecommendations).map(share => this.formatForMultiselect(share)).concat(externalResults); + this.loading = false; + console.info('recommendations', this.recommendations); + }, + /** + * Filter out existing shares from + * the provided shares search results + * + * @param {object[]} shares the array of shares object + * @return {object[]} + */ + filterOutExistingShares(shares) { + return shares.reduce((arr, share) => { + // only check proper objects + if (typeof share !== 'object') { + return arr; + } + try { + if (share.value.shareType === this.SHARE_TYPES.SHARE_TYPE_USER) { + // filter out current user + if (share.value.shareWith === (0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)().uid) { + return arr; + } + + // filter out the owner of the share + if (this.reshare && share.value.shareWith === this.reshare.owner) { + return arr; + } + } + + // filter out existing mail shares + if (share.value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) { + const emails = this.linkShares.map(elem => elem.shareWith); + if (emails.indexOf(share.value.shareWith.trim()) !== -1) { + return arr; + } + } else { + // filter out existing shares + // creating an object of uid => type + const sharesObj = this.shares.reduce((obj, elem) => { + obj[elem.shareWith] = elem.type; + return obj; + }, {}); + + // if shareWith is the same and the share type too, ignore it + const key = share.value.shareWith.trim(); + if (key in sharesObj && sharesObj[key] === share.value.shareType) { + return arr; + } + } + + // ALL GOOD + // let's add the suggestion + arr.push(share); + } catch { + return arr; + } + return arr; + }, []); + }, + /** + * Get the icon based on the share type + * + * @param {number} type the share type + * @return {string} the icon class + */ + shareTypeToIcon(type) { + switch (type) { + case this.SHARE_TYPES.SHARE_TYPE_GUEST: + // default is a user, other icons are here to differentiate + // themselves from it, so let's not display the user icon + // case this.SHARE_TYPES.SHARE_TYPE_REMOTE: + // case this.SHARE_TYPES.SHARE_TYPE_USER: + return { + icon: 'icon-user', + iconTitle: t('files_sharing', 'Guest') + }; + case this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP: + case this.SHARE_TYPES.SHARE_TYPE_GROUP: + return { + icon: 'icon-group', + iconTitle: t('files_sharing', 'Group') + }; + case this.SHARE_TYPES.SHARE_TYPE_EMAIL: + return { + icon: 'icon-mail', + iconTitle: t('files_sharing', 'Email') + }; + case this.SHARE_TYPES.SHARE_TYPE_CIRCLE: + return { + icon: 'icon-teams', + iconTitle: t('files_sharing', 'Team') + }; + case this.SHARE_TYPES.SHARE_TYPE_ROOM: + return { + icon: 'icon-room', + iconTitle: t('files_sharing', 'Talk conversation') + }; + case this.SHARE_TYPES.SHARE_TYPE_DECK: + return { + icon: 'icon-deck', + iconTitle: t('files_sharing', 'Deck board') + }; + case this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH: + return { + icon: 'icon-sciencemesh', + iconTitle: t('files_sharing', 'ScienceMesh') + }; + default: + return {}; + } + }, + /** + * Format shares for the multiselect options + * + * @param {object} result select entry item + * @return {object} + */ + formatForMultiselect(result) { + let subtitle; + if (result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_USER && this.config.shouldAlwaysShowUnique) { + var _result$shareWithDisp; + subtitle = (_result$shareWithDisp = result.shareWithDisplayNameUnique) !== null && _result$shareWithDisp !== void 0 ? _result$shareWithDisp : ''; + } else if ((result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_REMOTE || result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP) && result.value.server) { + subtitle = t('files_sharing', 'on {server}', { + server: result.value.server + }); + } else if (result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) { + subtitle = result.value.shareWith; + } else { + var _result$shareWithDesc; + subtitle = (_result$shareWithDesc = result.shareWithDescription) !== null && _result$shareWithDesc !== void 0 ? _result$shareWithDesc : ''; + } + return { + shareWith: result.value.shareWith, + shareType: result.value.shareType, + user: result.uuid || result.value.shareWith, + isNoUser: result.value.shareType !== this.SHARE_TYPES.SHARE_TYPE_USER, + displayName: result.name || result.label, + subtitle, + shareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '', + ...this.shareTypeToIcon(result.value.shareType) + }; + }, + /** + * Process the new share request + * + * @param {object} value the multiselect option + */ + async addShare(value) { + // Clear the displayed selection + this.value = null; + if (value.lookup) { + await this.getSuggestions(this.query, true); + this.$nextTick(() => { + // open the dropdown again + this.$refs.select.$children[0].open = true; + }); + return true; + } + + // handle externalResults from OCA.Sharing.ShareSearch + if (value.handler) { + const share = await value.handler(this); + this.$emit('add:share', new _models_Share_js__WEBPACK_IMPORTED_MODULE_8__["default"](share)); + return true; + } + this.loading = true; + console.debug('Adding a new share from the input for', value); + try { + let password = null; + if (this.config.enforcePasswordForPublicLink && value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) { + password = await (0,_utils_GeneratePassword_js__WEBPACK_IMPORTED_MODULE_7__["default"])(); + } + const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/'); + const share = await this.createShare({ + path, + shareType: value.shareType, + shareWith: value.shareWith, + password, + permissions: this.fileInfo.sharePermissions & (0,_nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_2__.getCapabilities)().files_sharing.default_permissions, + attributes: JSON.stringify(this.fileInfo.shareAttributes) + }); + + // If we had a password, we need to show it to the user as it was generated + if (password) { + share.newPassword = password; + // Wait for the newly added share + const component = await new Promise(resolve => { + this.$emit('add:share', share, resolve); + }); + + // open the menu on the + // freshly created share component + component.open = true; + } else { + // Else we just add it normally + this.$emit('add:share', share); + } + await this.getRecommendations(); + } catch (error) { + this.$nextTick(() => { + // open the dropdown again on error + this.$refs.select.$children[0].open = true; + }); + this.query = value.shareWith; + console.error('Error while adding new share', error); + } finally { + this.loading = false; + } + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js": +/*!****************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js ***! + \****************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _nextcloud_sharing__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/sharing */ "./node_modules/@nextcloud/sharing/dist/index.js"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcInputField_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcInputField.js */ "./node_modules/@nextcloud/vue/dist/Components/NcInputField.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcPasswordField_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcPasswordField.js */ "./node_modules/@nextcloud/vue/dist/Components/NcPasswordField.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAvatar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAvatar.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcDateTimePickerNative_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDateTimePickerNative.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDateTimePickerNative.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js */ "./node_modules/@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); +/* harmony import */ var vue_material_design_icons_CircleOutline_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue-material-design-icons/CircleOutline.vue */ "./node_modules/vue-material-design-icons/CircleOutline.vue"); +/* harmony import */ var vue_material_design_icons_Close_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vue-material-design-icons/Close.vue */ "./node_modules/vue-material-design-icons/Close.vue"); +/* harmony import */ var vue_material_design_icons_Pencil_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vue-material-design-icons/Pencil.vue */ "./node_modules/vue-material-design-icons/Pencil.vue"); +/* harmony import */ var vue_material_design_icons_Email_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! vue-material-design-icons/Email.vue */ "./node_modules/vue-material-design-icons/Email.vue"); +/* harmony import */ var vue_material_design_icons_Link_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! vue-material-design-icons/Link.vue */ "./node_modules/vue-material-design-icons/Link.vue"); +/* harmony import */ var vue_material_design_icons_AccountGroup_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! vue-material-design-icons/AccountGroup.vue */ "./node_modules/vue-material-design-icons/AccountGroup.vue"); +/* harmony import */ var vue_material_design_icons_ShareCircle_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! vue-material-design-icons/ShareCircle.vue */ "./node_modules/vue-material-design-icons/ShareCircle.vue"); +/* harmony import */ var vue_material_design_icons_AccountCircleOutline_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! vue-material-design-icons/AccountCircleOutline.vue */ "./node_modules/vue-material-design-icons/AccountCircleOutline.vue"); +/* harmony import */ var vue_material_design_icons_Eye_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! vue-material-design-icons/Eye.vue */ "./node_modules/vue-material-design-icons/Eye.vue"); +/* harmony import */ var vue_material_design_icons_Upload_vue__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! vue-material-design-icons/Upload.vue */ "./node_modules/vue-material-design-icons/Upload.vue"); +/* harmony import */ var vue_material_design_icons_MenuDown_vue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! vue-material-design-icons/MenuDown.vue */ "./node_modules/vue-material-design-icons/MenuDown.vue"); +/* harmony import */ var vue_material_design_icons_MenuUp_vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! vue-material-design-icons/MenuUp.vue */ "./node_modules/vue-material-design-icons/MenuUp.vue"); +/* harmony import */ var vue_material_design_icons_DotsHorizontal_vue__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! vue-material-design-icons/DotsHorizontal.vue */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue"); +/* harmony import */ var _components_ExternalShareAction_vue__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ../components/ExternalShareAction.vue */ "./apps/files_sharing/src/components/ExternalShareAction.vue"); +/* harmony import */ var _utils_GeneratePassword_js__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ../utils/GeneratePassword.js */ "./apps/files_sharing/src/utils/GeneratePassword.js"); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); +/* harmony import */ var _mixins_ShareRequests_js__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! ../mixins/ShareRequests.js */ "./apps/files_sharing/src/mixins/ShareRequests.js"); +/* harmony import */ var _mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! ../mixins/ShareTypes.js */ "./apps/files_sharing/src/mixins/ShareTypes.js"); +/* harmony import */ var _mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ../mixins/SharesMixin.js */ "./apps/files_sharing/src/mixins/SharesMixin.js"); +/* harmony import */ var _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ../lib/SharePermissionsToolBox.js */ "./apps/files_sharing/src/lib/SharePermissionsToolBox.js"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingDetailsTab', + components: { + NcAvatar: _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_5__["default"], + NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_2__["default"], + NcInputField: _nextcloud_vue_dist_Components_NcInputField_js__WEBPACK_IMPORTED_MODULE_3__["default"], + NcPasswordField: _nextcloud_vue_dist_Components_NcPasswordField_js__WEBPACK_IMPORTED_MODULE_4__["default"], + NcDateTimePickerNative: _nextcloud_vue_dist_Components_NcDateTimePickerNative_js__WEBPACK_IMPORTED_MODULE_6__["default"], + NcCheckboxRadioSwitch: _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_7__["default"], + NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_8__["default"], + CloseIcon: vue_material_design_icons_Close_vue__WEBPACK_IMPORTED_MODULE_10__["default"], + CircleIcon: vue_material_design_icons_CircleOutline_vue__WEBPACK_IMPORTED_MODULE_9__["default"], + EditIcon: vue_material_design_icons_Pencil_vue__WEBPACK_IMPORTED_MODULE_11__["default"], + ExternalShareAction: _components_ExternalShareAction_vue__WEBPACK_IMPORTED_MODULE_22__["default"], + LinkIcon: vue_material_design_icons_Link_vue__WEBPACK_IMPORTED_MODULE_13__["default"], + GroupIcon: vue_material_design_icons_AccountGroup_vue__WEBPACK_IMPORTED_MODULE_14__["default"], + ShareIcon: vue_material_design_icons_ShareCircle_vue__WEBPACK_IMPORTED_MODULE_15__["default"], + UserIcon: vue_material_design_icons_AccountCircleOutline_vue__WEBPACK_IMPORTED_MODULE_16__["default"], + UploadIcon: vue_material_design_icons_Upload_vue__WEBPACK_IMPORTED_MODULE_18__["default"], + ViewIcon: vue_material_design_icons_Eye_vue__WEBPACK_IMPORTED_MODULE_17__["default"], + MenuDownIcon: vue_material_design_icons_MenuDown_vue__WEBPACK_IMPORTED_MODULE_19__["default"], + MenuUpIcon: vue_material_design_icons_MenuUp_vue__WEBPACK_IMPORTED_MODULE_20__["default"], + DotsHorizontalIcon: vue_material_design_icons_DotsHorizontal_vue__WEBPACK_IMPORTED_MODULE_21__["default"] + }, + mixins: [_mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_26__["default"], _mixins_ShareRequests_js__WEBPACK_IMPORTED_MODULE_25__["default"], _mixins_SharesMixin_js__WEBPACK_IMPORTED_MODULE_27__["default"]], + props: { + shareRequestValue: { + type: Object, + required: false + }, + fileInfo: { + type: Object, + required: true + }, + share: { + type: Object, + required: true + } + }, + data() { + return { + writeNoteToRecipientIsChecked: false, + sharingPermission: _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.BUNDLED_PERMISSIONS.ALL.toString(), + revertSharingPermission: _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.BUNDLED_PERMISSIONS.ALL.toString(), + setCustomPermissions: false, + passwordError: false, + advancedSectionAccordionExpanded: false, + bundledPermissions: _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.BUNDLED_PERMISSIONS, + isFirstComponentLoad: true, + test: false, + creating: false, + ExternalShareActions: OCA.Sharing.ExternalShareActions.state + }; + }, + computed: { + title() { + switch (this.share.type) { + case this.SHARE_TYPES.SHARE_TYPE_USER: + return t('files_sharing', 'Share with {userName}', { + userName: this.share.shareWithDisplayName + }); + case this.SHARE_TYPES.SHARE_TYPE_EMAIL: + return t('files_sharing', 'Share with email {email}', { + email: this.share.shareWith + }); + case this.SHARE_TYPES.SHARE_TYPE_LINK: + return t('files_sharing', 'Share link'); + case this.SHARE_TYPES.SHARE_TYPE_GROUP: + return t('files_sharing', 'Share with group'); + case this.SHARE_TYPES.SHARE_TYPE_ROOM: + return t('files_sharing', 'Share in conversation'); + case this.SHARE_TYPES.SHARE_TYPE_REMOTE: + { + const [user, server] = this.share.shareWith.split('@'); + return t('files_sharing', 'Share with {user} on remote server {server}', { + user, + server + }); + } + case this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP: + return t('files_sharing', 'Share with remote group'); + case this.SHARE_TYPES.SHARE_TYPE_GUEST: + return t('files_sharing', 'Share with guest'); + default: + { + if (this.share.id) { + // Share already exists + return t('files_sharing', 'Update share'); + } else { + return t('files_sharing', 'Create share'); + } + } + } + }, + /** + * Can the sharee edit the shared file ? + */ + canEdit: { + get() { + return this.share.hasUpdatePermission; + }, + set(checked) { + this.updateAtomicPermissions({ + isEditChecked: checked + }); + } + }, + /** + * Can the sharee create the shared file ? + */ + canCreate: { + get() { + return this.share.hasCreatePermission; + }, + set(checked) { + this.updateAtomicPermissions({ + isCreateChecked: checked + }); + } + }, + /** + * Can the sharee delete the shared file ? + */ + canDelete: { + get() { + return this.share.hasDeletePermission; + }, + set(checked) { + this.updateAtomicPermissions({ + isDeleteChecked: checked + }); + } + }, + /** + * Can the sharee reshare the file ? + */ + canReshare: { + get() { + return this.share.hasSharePermission; + }, + set(checked) { + this.updateAtomicPermissions({ + isReshareChecked: checked + }); + } + }, + /** + * Can the sharee download files or only view them ? + */ + canDownload: { + get() { + var _this$share$attribute; + return ((_this$share$attribute = this.share.attributes.find(attr => attr.key === 'download')) === null || _this$share$attribute === void 0 ? void 0 : _this$share$attribute.enabled) || false; + }, + set(checked) { + // Find the 'download' attribute and update its value + const downloadAttr = this.share.attributes.find(attr => attr.key === 'download'); + if (downloadAttr) { + downloadAttr.enabled = checked; + } + } + }, + /** + * Is this share readable + * Needed for some federated shares that might have been added from file drop links + */ + hasRead: { + get() { + return this.share.hasReadPermission; + }, + set(checked) { + this.updateAtomicPermissions({ + isReadChecked: checked + }); + } + }, + /** + * Does the current share have an expiration date + * + * @return {boolean} + */ + hasExpirationDate: { + get() { + return this.isValidShareAttribute(this.share.expireDate); + }, + set(enabled) { + this.share.expireDate = enabled ? this.formatDateToString(this.defaultExpiryDate) : ''; + } + }, + /** + * Is the current share password protected ? + * + * @return {boolean} + */ + isPasswordProtected: { + get() { + return this.config.enforcePasswordForPublicLink || !!this.share.password; + }, + async set(enabled) { + if (enabled) { + this.share.password = await (0,_utils_GeneratePassword_js__WEBPACK_IMPORTED_MODULE_23__["default"])(); + this.$set(this.share, 'newPassword', this.share.password); + } else { + this.share.password = ''; + this.$delete(this.share, 'newPassword'); + } + } + }, + /** + * Is the current share a folder ? + * + * @return {boolean} + */ + isFolder() { + return this.fileInfo.type === 'dir'; + }, + /** + * @return {boolean} + */ + isSetDownloadButtonVisible() { + const allowedMimetypes = [ + // Office documents + 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation']; + return this.isFolder || allowedMimetypes.includes(this.fileInfo.mimetype); + }, + isPasswordEnforced() { + return this.isPublicShare && this.config.enforcePasswordForPublicLink; + }, + defaultExpiryDate() { + if ((this.isGroupShare || this.isUserShare) && this.config.isDefaultInternalExpireDateEnabled) { + return new Date(this.config.defaultInternalExpirationDate); + } else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) { + return new Date(this.config.defaultRemoteExpireDateEnabled); + } else if (this.isPublicShare && this.config.isDefaultExpireDateEnabled) { + return new Date(this.config.defaultExpirationDate); + } + return new Date(new Date().setDate(new Date().getDate() + 1)); + }, + isUserShare() { + return this.share.type === this.SHARE_TYPES.SHARE_TYPE_USER; + }, + isGroupShare() { + return this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP; + }, + isNewShare() { + return !this.share.id; + }, + allowsFileDrop() { + if (this.isFolder && this.config.isPublicUploadEnabled) { + if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) { + return true; + } + } + return false; + }, + hasFileDropPermissions() { + return this.share.permissions === this.bundledPermissions.FILE_DROP; + }, + shareButtonText() { + if (this.isNewShare) { + return t('files_sharing', 'Save share'); + } + return t('files_sharing', 'Update share'); + }, + /** + * Can the sharer set whether the sharee can edit the file ? + * + * @return {boolean} + */ + canSetEdit() { + // If the owner revoked the permission after the resharer granted it + // the share still has the permission, and the resharer is still + // allowed to revoke it too (but not to grant it again). + return this.fileInfo.sharePermissions & OC.PERMISSION_UPDATE || this.canEdit; + }, + /** + * Can the sharer set whether the sharee can create the file ? + * + * @return {boolean} + */ + canSetCreate() { + // If the owner revoked the permission after the resharer granted it + // the share still has the permission, and the resharer is still + // allowed to revoke it too (but not to grant it again). + return this.fileInfo.sharePermissions & OC.PERMISSION_CREATE || this.canCreate; + }, + /** + * Can the sharer set whether the sharee can delete the file ? + * + * @return {boolean} + */ + canSetDelete() { + // If the owner revoked the permission after the resharer granted it + // the share still has the permission, and the resharer is still + // allowed to revoke it too (but not to grant it again). + return this.fileInfo.sharePermissions & OC.PERMISSION_DELETE || this.canDelete; + }, + /** + * Can the sharer set whether the sharee can reshare the file ? + * + * @return {boolean} + */ + canSetReshare() { + // If the owner revoked the permission after the resharer granted it + // the share still has the permission, and the resharer is still + // allowed to revoke it too (but not to grant it again). + return this.fileInfo.sharePermissions & OC.PERMISSION_SHARE || this.canReshare; + }, + /** + * Can the sharer set whether the sharee can download the file ? + * + * @return {boolean} + */ + canSetDownload() { + // If the owner revoked the permission after the resharer granted it + // the share still has the permission, and the resharer is still + // allowed to revoke it too (but not to grant it again). + return this.fileInfo.canDownload() || this.canDownload; + }, + // if newPassword exists, but is empty, it means + // the user deleted the original password + hasUnsavedPassword() { + return this.share.newPassword !== undefined; + }, + passwordExpirationTime() { + if (!this.isValidShareAttribute(this.share.passwordExpirationTime)) { + return null; + } + const expirationTime = moment(this.share.passwordExpirationTime); + if (expirationTime.diff(moment()) < 0) { + return false; + } + return expirationTime.fromNow(); + }, + /** + * Is Talk enabled? + * + * @return {boolean} + */ + isTalkEnabled() { + return OC.appswebroots.spreed !== undefined; + }, + /** + * Is it possible to protect the password by Talk? + * + * @return {boolean} + */ + isPasswordProtectedByTalkAvailable() { + return this.isPasswordProtected && this.isTalkEnabled; + }, + /** + * Is the current share password protected by Talk? + * + * @return {boolean} + */ + isPasswordProtectedByTalk: { + get() { + return this.share.sendPasswordByTalk; + }, + async set(enabled) { + this.share.sendPasswordByTalk = enabled; + } + }, + /** + * Is the current share an email share ? + * + * @return {boolean} + */ + isEmailShareType() { + return this.share ? this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL : false; + }, + canTogglePasswordProtectedByTalkAvailable() { + if (!this.isPublicShare || !this.isPasswordProtected) { + // Makes no sense + return false; + } else if (this.isEmailShareType && !this.hasUnsavedPassword) { + // For email shares we need a new password in order to enable or + // disable + return false; + } + + // Is Talk enabled? + return OC.appswebroots.spreed !== undefined; + }, + canChangeHideDownload() { + const hasDisabledDownload = shareAttribute => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.enabled === false; + return this.fileInfo.shareAttributes.some(hasDisabledDownload); + }, + customPermissionsList() { + // Key order will be different, because ATOMIC_PERMISSIONS are numbers + const translatedPermissions = { + [_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.READ]: this.t('files_sharing', 'Read'), + [_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.CREATE]: this.t('files_sharing', 'Create'), + [_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.UPDATE]: this.t('files_sharing', 'Edit'), + [_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.SHARE]: this.t('files_sharing', 'Share'), + [_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.DELETE]: this.t('files_sharing', 'Delete') + }; + return [_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.READ, _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.CREATE, _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.UPDATE, _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.SHARE, _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.DELETE].filter(permission => (0,_lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.hasPermissions)(this.share.permissions, permission)).map((permission, index) => index === 0 ? translatedPermissions[permission] : translatedPermissions[permission].toLocaleLowerCase((0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.getLanguage)())).join(', '); + }, + advancedControlExpandedValue() { + return this.advancedSectionAccordionExpanded ? 'true' : 'false'; + }, + errorPasswordLabel() { + if (this.passwordError) { + return t('files_sharing', "Password field can't be empty"); + } + return undefined; + }, + /** + * Additional actions for the menu + * + * @return {Array} + */ + externalLinkActions() { + const filterValidAction = action => (action.shareType.includes(_nextcloud_sharing__WEBPACK_IMPORTED_MODULE_1__.Type.SHARE_TYPE_LINK) || action.shareType.includes(_nextcloud_sharing__WEBPACK_IMPORTED_MODULE_1__.Type.SHARE_TYPE_EMAIL)) && action.advanced; + // filter only the advanced registered actions for said link + return this.ExternalShareActions.actions.filter(filterValidAction); + } + }, + watch: { + setCustomPermissions(isChecked) { + if (isChecked) { + this.sharingPermission = 'custom'; + } else { + this.sharingPermission = this.revertSharingPermission; + } + } + }, + beforeMount() { + this.initializePermissions(); + this.initializeAttributes(); + console.debug('shareSentIn', this.share); + console.debug('config', this.config); + }, + mounted() { + var _this$$refs$quickPerm; + (_this$$refs$quickPerm = this.$refs.quickPermissions) === null || _this$$refs$quickPerm === void 0 || (_this$$refs$quickPerm = _this$$refs$quickPerm.querySelector('input:checked')) === null || _this$$refs$quickPerm === void 0 || _this$$refs$quickPerm.focus(); + }, + methods: { + updateAtomicPermissions() { + let { + isReadChecked = this.hasRead, + isEditChecked = this.canEdit, + isCreateChecked = this.canCreate, + isDeleteChecked = this.canDelete, + isReshareChecked = this.canReshare + } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; + // calc permissions if checked + const permissions = 0 | (isReadChecked ? _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.READ : 0) | (isCreateChecked ? _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.CREATE : 0) | (isDeleteChecked ? _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.DELETE : 0) | (isEditChecked ? _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.UPDATE : 0) | (isReshareChecked ? _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.ATOMIC_PERMISSIONS.SHARE : 0); + this.share.permissions = permissions; + }, + expandCustomPermissions() { + if (!this.advancedSectionAccordionExpanded) { + this.advancedSectionAccordionExpanded = true; + } + this.toggleCustomPermissions(); + }, + toggleCustomPermissions(selectedPermission) { + const isCustomPermissions = this.sharingPermission === 'custom'; + this.revertSharingPermission = !isCustomPermissions ? selectedPermission : 'custom'; + this.setCustomPermissions = isCustomPermissions; + }, + async initializeAttributes() { + if (this.isNewShare) { + if (this.isPasswordEnforced && this.isPublicShare) { + this.$set(this.share, 'newPassword', await (0,_utils_GeneratePassword_js__WEBPACK_IMPORTED_MODULE_23__["default"])()); + this.advancedSectionAccordionExpanded = true; + } + /* Set default expiration dates if configured */ + if (this.isPublicShare && this.config.isDefaultExpireDateEnabled) { + this.share.expireDate = this.config.defaultExpirationDate.toDateString(); + } else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) { + this.share.expireDate = this.config.defaultRemoteExpirationDateString.toDateString(); + } else if (this.config.isDefaultInternalExpireDateEnabled) { + this.share.expireDate = this.config.defaultInternalExpirationDate.toDateString(); + } + if (this.isValidShareAttribute(this.share.expireDate)) { + this.advancedSectionAccordionExpanded = true; + } + return; + } + + // If there is an enforced expiry date, then existing shares created before enforcement + // have no expiry date, hence we set it here. + if (!this.isValidShareAttribute(this.share.expireDate) && this.isExpiryDateEnforced) { + this.hasExpirationDate = true; + } + if (this.isValidShareAttribute(this.share.password) || this.isValidShareAttribute(this.share.expireDate) || this.isValidShareAttribute(this.share.label)) { + this.advancedSectionAccordionExpanded = true; + } + }, + handleShareType() { + if ('shareType' in this.share) { + this.share.type = this.share.shareType; + } else if (this.share.share_type) { + this.share.type = this.share.share_type; + } + }, + handleDefaultPermissions() { + if (this.isNewShare) { + const defaultPermissions = this.config.defaultPermissions; + if (defaultPermissions === _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.BUNDLED_PERMISSIONS.READ_ONLY || defaultPermissions === _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.BUNDLED_PERMISSIONS.ALL) { + this.sharingPermission = defaultPermissions.toString(); + } else { + this.sharingPermission = 'custom'; + this.share.permissions = defaultPermissions; + this.advancedSectionAccordionExpanded = true; + this.setCustomPermissions = true; + } + } + }, + handleCustomPermissions() { + if (!this.isNewShare && (this.hasCustomPermissions || this.share.setCustomPermissions)) { + this.sharingPermission = 'custom'; + this.advancedSectionAccordionExpanded = true; + this.setCustomPermissions = true; + } else if (this.share.permissions) { + this.sharingPermission = this.share.permissions.toString(); + } + }, + initializePermissions() { + this.handleShareType(); + this.handleDefaultPermissions(); + this.handleCustomPermissions(); + }, + async saveShare() { + var _this$$refs$externalL; + const permissionsAndAttributes = ['permissions', 'attributes', 'note', 'expireDate']; + const publicShareAttributes = ['label', 'password', 'hideDownload']; + if (this.isPublicShare) { + permissionsAndAttributes.push(...publicShareAttributes); + } + const sharePermissionsSet = parseInt(this.sharingPermission); + if (this.setCustomPermissions) { + this.updateAtomicPermissions(); + } else { + this.share.permissions = sharePermissionsSet; + } + if (!this.isFolder && this.share.permissions === _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.BUNDLED_PERMISSIONS.ALL) { + // It's not possible to create an existing file. + this.share.permissions = _lib_SharePermissionsToolBox_js__WEBPACK_IMPORTED_MODULE_28__.BUNDLED_PERMISSIONS.ALL_FILE; + } + if (!this.writeNoteToRecipientIsChecked) { + this.share.note = ''; + } + if (this.isPasswordProtected) { + if (this.hasUnsavedPassword && this.isValidShareAttribute(this.share.newPassword)) { + this.share.password = this.share.newPassword; + this.$delete(this.share, 'newPassword'); + } else if (this.isPasswordEnforced && !this.isValidShareAttribute(this.share.password)) { + this.passwordError = true; + } + } else { + this.share.password = ''; + } + if (!this.hasExpirationDate) { + this.share.expireDate = ''; + } + if (this.isNewShare) { + const incomingShare = { + permissions: this.share.permissions, + shareType: this.share.type, + shareWith: this.share.shareWith, + attributes: this.share.attributes, + note: this.share.note, + fileInfo: this.fileInfo + }; + incomingShare.expireDate = this.hasExpirationDate ? this.share.expireDate : ''; + if (this.isPasswordProtected) { + incomingShare.password = this.share.password; + } + this.creating = true; + const share = await this.addShare(incomingShare, this.fileInfo); + this.creating = false; + this.share = share; + this.$emit('add:share', this.share); + } else { + this.queueUpdate(...permissionsAndAttributes); + } + if (((_this$$refs$externalL = this.$refs.externalLinkActions) === null || _this$$refs$externalL === void 0 ? void 0 : _this$$refs$externalL.length) > 0) { + await Promise.allSettled(this.$refs.externalLinkActions.map(action => { + var _action$$children$at, _action$$children$at2, _action$$children$at3; + if (typeof ((_action$$children$at = action.$children.at(0)) === null || _action$$children$at === void 0 ? void 0 : _action$$children$at.onSave) !== 'function') { + return Promise.resolve(); + } + return (_action$$children$at2 = action.$children.at(0)) === null || _action$$children$at2 === void 0 || (_action$$children$at3 = _action$$children$at2.onSave) === null || _action$$children$at3 === void 0 ? void 0 : _action$$children$at3.call(_action$$children$at2); + })); + } + this.$emit('close-sharing-details'); + }, + /** + * Process the new share request + * + * @param {Share} share incoming share object + * @param {object} fileInfo file data + */ + async addShare(share, fileInfo) { + console.debug('Adding a new share from the input for', share); + try { + const path = (fileInfo.path + '/' + fileInfo.name).replace('//', '/'); + const resultingShare = await this.createShare({ + path, + shareType: share.shareType, + shareWith: share.shareWith, + permissions: share.permissions, + expireDate: share.expireDate, + attributes: JSON.stringify(share.attributes), + ...(share.note ? { + note: share.note + } : {}), + ...(share.password ? { + password: share.password + } : {}) + }); + return resultingShare; + } catch (error) { + console.error('Error while adding new share', error); + } finally { + // this.loading = false // No loader here yet + } + }, + async removeShare() { + await this.onDelete(); + this.$emit('close-sharing-details'); + }, + /** + * Update newPassword values + * of share. If password is set but not newPassword + * then the user did not changed the password + * If both co-exists, the password have changed and + * we show it in plain text. + * Then on submit (or menu close), we sync it. + * + * @param {string} password the changed password + */ + onPasswordChange(password) { + this.passwordError = !this.isValidShareAttribute(password); + this.$set(this.share, 'newPassword', password); + }, + /** + * Update the password along with "sendPasswordByTalk". + * + * If the password was modified the new password is sent; otherwise + * updating a mail share would fail, as in that case it is required that + * a new password is set when enabling or disabling + * "sendPasswordByTalk". + */ + onPasswordProtectedByTalkChange() { + if (this.hasUnsavedPassword) { + this.share.password = this.share.newPassword.trim(); + } + this.queueUpdate('sendPasswordByTalk', 'password'); + }, + isValidShareAttribute(value) { + if ([null, undefined].includes(value)) { + return false; + } + if (!(value.trim().length > 0)) { + return false; + } + return true; + }, + getShareTypeIcon(type) { + switch (type) { + case this.SHARE_TYPES.SHARE_TYPE_LINK: + return vue_material_design_icons_Link_vue__WEBPACK_IMPORTED_MODULE_13__["default"]; + case this.SHARE_TYPES.SHARE_TYPE_GUEST: + return vue_material_design_icons_AccountCircleOutline_vue__WEBPACK_IMPORTED_MODULE_16__["default"]; + case this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP: + case this.SHARE_TYPES.SHARE_TYPE_GROUP: + return vue_material_design_icons_AccountGroup_vue__WEBPACK_IMPORTED_MODULE_14__["default"]; + case this.SHARE_TYPES.SHARE_TYPE_EMAIL: + return vue_material_design_icons_Email_vue__WEBPACK_IMPORTED_MODULE_12__["default"]; + case this.SHARE_TYPES.SHARE_TYPE_CIRCLE: + return vue_material_design_icons_CircleOutline_vue__WEBPACK_IMPORTED_MODULE_9__["default"]; + case this.SHARE_TYPES.SHARE_TYPE_ROOM: + return vue_material_design_icons_ShareCircle_vue__WEBPACK_IMPORTED_MODULE_15__["default"]; + case this.SHARE_TYPES.SHARE_TYPE_DECK: + return vue_material_design_icons_ShareCircle_vue__WEBPACK_IMPORTED_MODULE_15__["default"]; + case this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH: + return vue_material_design_icons_ShareCircle_vue__WEBPACK_IMPORTED_MODULE_15__["default"]; + default: + return null; + // Or a default icon component if needed + } + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js": +/*!***************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js ***! + \***************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionButton.mjs"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); +/* harmony import */ var _components_SharingEntryInherited_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/SharingEntryInherited.vue */ "./apps/files_sharing/src/components/SharingEntryInherited.vue"); +/* harmony import */ var _components_SharingEntrySimple_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/SharingEntrySimple.vue */ "./apps/files_sharing/src/components/SharingEntrySimple.vue"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingInherited', + components: { + NcActionButton: _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_1__["default"], + SharingEntryInherited: _components_SharingEntryInherited_vue__WEBPACK_IMPORTED_MODULE_4__["default"], + SharingEntrySimple: _components_SharingEntrySimple_vue__WEBPACK_IMPORTED_MODULE_5__["default"] + }, + props: { + fileInfo: { + type: Object, + default: () => {}, + required: true + } + }, + data() { + return { + loaded: false, + loading: false, + showInheritedShares: false, + shares: [] + }; + }, + computed: { + showInheritedSharesIcon() { + if (this.loading) { + return 'icon-loading-small'; + } + if (this.showInheritedShares) { + return 'icon-triangle-n'; + } + return 'icon-triangle-s'; + }, + mainTitle() { + return t('files_sharing', 'Others with access'); + }, + subTitle() { + return this.showInheritedShares && this.shares.length === 0 ? t('files_sharing', 'No other accounts with access found') : ''; + }, + toggleTooltip() { + return this.fileInfo.type === 'dir' ? t('files_sharing', 'Toggle list of others with access to this directory') : t('files_sharing', 'Toggle list of others with access to this file'); + }, + fullPath() { + const path = "".concat(this.fileInfo.path, "/").concat(this.fileInfo.name); + return path.replace('//', '/'); + } + }, + watch: { + fileInfo() { + this.resetState(); + } + }, + methods: { + /** + * Toggle the list view and fetch/reset the state + */ + toggleInheritedShares() { + this.showInheritedShares = !this.showInheritedShares; + if (this.showInheritedShares) { + this.fetchInheritedShares(); + } else { + this.resetState(); + } + }, + /** + * Fetch the Inherited Shares array + */ + async fetchInheritedShares() { + this.loading = true; + try { + const url = (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateOcsUrl)('apps/files_sharing/api/v1/shares/inherited?format=json&path={path}', { + path: this.fullPath + }); + const shares = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_2__["default"].get(url); + this.shares = shares.data.ocs.data.map(share => new _models_Share_js__WEBPACK_IMPORTED_MODULE_3__["default"](share)).sort((a, b) => b.createdTime - a.createdTime); + console.info(this.shares); + this.loaded = true; + } catch (error) { + OC.Notification.showTemporary(t('files_sharing', 'Unable to fetch inherited shares'), { + type: 'error' + }); + } finally { + this.loading = false; + } + }, + /** + * Reset current component state + */ + resetState() { + this.loaded = false; + this.loading = false; + this.showInheritedShares = false; + this.shares = []; + }, + /** + * Remove a share from the shares list + * + * @param {Share} share the share to remove + */ + removeShare(share) { + const index = this.shares.findIndex(item => item === share); + // eslint-disable-next-line vue/no-mutating-props + this.shares.splice(index, 1); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js": +/*!**************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js ***! + \**************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/capabilities */ "./node_modules/@nextcloud/capabilities/dist/index.mjs"); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); +/* harmony import */ var _mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../mixins/ShareTypes.js */ "./apps/files_sharing/src/mixins/ShareTypes.js"); +/* harmony import */ var _components_SharingEntryLink_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../components/SharingEntryLink.vue */ "./apps/files_sharing/src/components/SharingEntryLink.vue"); +/* harmony import */ var _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../mixins/ShareDetails.js */ "./apps/files_sharing/src/mixins/ShareDetails.js"); + + +// eslint-disable-next-line no-unused-vars + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingLinkList', + components: { + SharingEntryLink: _components_SharingEntryLink_vue__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + mixins: [_mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_2__["default"], _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_4__["default"]], + props: { + fileInfo: { + type: Object, + default: () => {}, + required: true + }, + shares: { + type: Array, + default: () => [], + required: true + }, + canReshare: { + type: Boolean, + required: true + } + }, + data() { + return { + canLinkShare: (0,_nextcloud_capabilities__WEBPACK_IMPORTED_MODULE_0__.getCapabilities)().files_sharing.public.enabled + }; + }, + computed: { + /** + * Do we have link shares? + * Using this to still show the `new link share` + * button regardless of mail shares + * + * @return {Array} + */ + hasLinkShares() { + return this.shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK).length > 0; + }, + /** + * Do we have any link or email shares? + * + * @return {boolean} + */ + hasShares() { + return this.shares.length > 0; + } + }, + methods: { + /** + * Add a new share into the link shares list + * and return the newly created share component + * + * @param {Share} share the share to add to the array + * @param {Function} resolve a function to run after the share is added and its component initialized + */ + addShare(share, resolve) { + // eslint-disable-next-line vue/no-mutating-props + this.shares.unshift(share); + this.awaitForShare(share, resolve); + }, + /** + * Await for next tick and render after the list updated + * Then resolve with the matched vue component of the + * provided share object + * + * @param {Share} share newly created share + * @param {Function} resolve a function to execute after + */ + awaitForShare(share, resolve) { + this.$nextTick(() => { + const newShare = this.$children.find(component => component.share === share); + if (newShare) { + resolve(newShare); + } + }); + }, + /** + * Remove a share from the shares list + * + * @param {Share} share the share to remove + */ + removeShare(share) { + const index = this.shares.findIndex(item => item === share); + // eslint-disable-next-line vue/no-mutating-props + this.shares.splice(index, 1); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js": +/*!**********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js ***! + \**********************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _components_SharingEntry_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../components/SharingEntry.vue */ "./apps/files_sharing/src/components/SharingEntry.vue"); +/* harmony import */ var _mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../mixins/ShareTypes.js */ "./apps/files_sharing/src/mixins/ShareTypes.js"); +/* harmony import */ var _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../mixins/ShareDetails.js */ "./apps/files_sharing/src/mixins/ShareDetails.js"); +// eslint-disable-next-line no-unused-vars + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingList', + components: { + SharingEntry: _components_SharingEntry_vue__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + mixins: [_mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_1__["default"], _mixins_ShareDetails_js__WEBPACK_IMPORTED_MODULE_2__["default"]], + props: { + fileInfo: { + type: Object, + default: () => {}, + required: true + }, + shares: { + type: Array, + default: () => [], + required: true + } + }, + computed: { + hasShares() { + return this.shares.length === 0; + }, + isUnique() { + return share => { + return [...this.shares].filter(item => { + return share.type === this.SHARE_TYPES.SHARE_TYPE_USER && share.shareWithDisplayName === item.shareWithDisplayName; + }).length <= 1; + }; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js": +/*!*********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js ***! + \*********************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var nextcloud_vue_collections__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! nextcloud-vue-collections */ "./node_modules/nextcloud-vue-collections/dist/index.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAvatar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAvatar.mjs"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); +/* harmony import */ var _services_ConfigService_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../services/ConfigService.js */ "./apps/files_sharing/src/services/ConfigService.js"); +/* harmony import */ var _utils_SharedWithMe_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils/SharedWithMe.js */ "./apps/files_sharing/src/utils/SharedWithMe.js"); +/* harmony import */ var _models_Share_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../models/Share.js */ "./apps/files_sharing/src/models/Share.js"); +/* harmony import */ var _mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../mixins/ShareTypes.js */ "./apps/files_sharing/src/mixins/ShareTypes.js"); +/* harmony import */ var _components_SharingEntryInternal_vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../components/SharingEntryInternal.vue */ "./apps/files_sharing/src/components/SharingEntryInternal.vue"); +/* harmony import */ var _components_SharingEntrySimple_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../components/SharingEntrySimple.vue */ "./apps/files_sharing/src/components/SharingEntrySimple.vue"); +/* harmony import */ var _components_SharingInput_vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../components/SharingInput.vue */ "./apps/files_sharing/src/components/SharingInput.vue"); +/* harmony import */ var _SharingInherited_vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./SharingInherited.vue */ "./apps/files_sharing/src/views/SharingInherited.vue"); +/* harmony import */ var _SharingLinkList_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./SharingLinkList.vue */ "./apps/files_sharing/src/views/SharingLinkList.vue"); +/* harmony import */ var _SharingList_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./SharingList.vue */ "./apps/files_sharing/src/views/SharingList.vue"); +/* harmony import */ var _SharingDetailsTab_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ./SharingDetailsTab.vue */ "./apps/files_sharing/src/views/SharingDetailsTab.vue"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + + + + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SharingTab', + components: { + NcAvatar: _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_2__["default"], + CollectionList: nextcloud_vue_collections__WEBPACK_IMPORTED_MODULE_0__.CollectionList, + SharingEntryInternal: _components_SharingEntryInternal_vue__WEBPACK_IMPORTED_MODULE_9__["default"], + SharingEntrySimple: _components_SharingEntrySimple_vue__WEBPACK_IMPORTED_MODULE_10__["default"], + SharingInherited: _SharingInherited_vue__WEBPACK_IMPORTED_MODULE_12__["default"], + SharingInput: _components_SharingInput_vue__WEBPACK_IMPORTED_MODULE_11__["default"], + SharingLinkList: _SharingLinkList_vue__WEBPACK_IMPORTED_MODULE_13__["default"], + SharingList: _SharingList_vue__WEBPACK_IMPORTED_MODULE_14__["default"], + SharingDetailsTab: _SharingDetailsTab_vue__WEBPACK_IMPORTED_MODULE_15__["default"] + }, + mixins: [_mixins_ShareTypes_js__WEBPACK_IMPORTED_MODULE_8__["default"]], + data() { + return { + config: new _services_ConfigService_js__WEBPACK_IMPORTED_MODULE_5__["default"](), + deleteEvent: null, + error: '', + expirationInterval: null, + loading: true, + fileInfo: null, + // reshare Share object + reshare: null, + sharedWithMe: {}, + shares: [], + linkShares: [], + sections: OCA.Sharing.ShareTabSections.getSections(), + projectsEnabled: (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__.loadState)('core', 'projects_enabled', false), + showSharingDetailsView: false, + shareDetailsData: {}, + returnFocusElement: null + }; + }, + computed: { + /** + * Is this share shared with me? + * + * @return {boolean} + */ + isSharedWithMe() { + return Object.keys(this.sharedWithMe).length > 0; + }, + canReshare() { + return !!(this.fileInfo.permissions & OC.PERMISSION_SHARE) || !!(this.reshare && this.reshare.hasSharePermission && this.config.isResharingAllowed); + } + }, + methods: { + /** + * Update current fileInfo and fetch new data + * + * @param {object} fileInfo the current file FileInfo + */ + async update(fileInfo) { + this.fileInfo = fileInfo; + this.resetState(); + this.getShares(); + }, + /** + * Get the existing shares infos + */ + async getShares() { + try { + this.loading = true; + + // init params + const shareUrl = (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateOcsUrl)('apps/files_sharing/api/v1/shares'); + const format = 'json'; + // TODO: replace with proper getFUllpath implementation of our own FileInfo model + const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/'); + + // fetch shares + const fetchShares = _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__["default"].get(shareUrl, { + params: { + format, + path, + reshares: true + } + }); + const fetchSharedWithMe = _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__["default"].get(shareUrl, { + params: { + format, + path, + shared_with_me: true + } + }); + + // wait for data + const [shares, sharedWithMe] = await Promise.all([fetchShares, fetchSharedWithMe]); + this.loading = false; + + // process results + this.processSharedWithMe(sharedWithMe); + this.processShares(shares); + } catch (error) { + var _error$response$data; + if ((_error$response$data = error.response.data) !== null && _error$response$data !== void 0 && (_error$response$data = _error$response$data.ocs) !== null && _error$response$data !== void 0 && (_error$response$data = _error$response$data.meta) !== null && _error$response$data !== void 0 && _error$response$data.message) { + this.error = error.response.data.ocs.meta.message; + } else { + this.error = t('files_sharing', 'Unable to load the shares list'); + } + this.loading = false; + console.error('Error loading the shares list', error); + } + }, + /** + * Reset the current view to its default state + */ + resetState() { + clearInterval(this.expirationInterval); + this.loading = true; + this.error = ''; + this.sharedWithMe = {}; + this.shares = []; + this.linkShares = []; + this.showSharingDetailsView = false; + this.shareDetailsData = {}; + }, + /** + * Update sharedWithMe.subtitle with the appropriate + * expiration time left + * + * @param {Share} share the sharedWith Share object + */ + updateExpirationSubtitle(share) { + const expiration = moment(share.expireDate).unix(); + this.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'Expires {relativetime}', { + relativetime: OC.Util.relativeModifiedDate(expiration * 1000) + })); + + // share have expired + if (moment().unix() > expiration) { + clearInterval(this.expirationInterval); + // TODO: clear ui if share is expired + this.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'this share just expired.')); + } + }, + /** + * Process the current shares data + * and init shares[] + * + * @param {object} share the share ocs api request data + * @param {object} share.data the request data + */ + processShares(_ref) { + let { + data + } = _ref; + if (data.ocs && data.ocs.data && data.ocs.data.length > 0) { + // create Share objects and sort by newest + const shares = data.ocs.data.map(share => new _models_Share_js__WEBPACK_IMPORTED_MODULE_7__["default"](share)).sort((a, b) => b.createdTime - a.createdTime); + this.linkShares = shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL); + this.shares = shares.filter(share => share.type !== this.SHARE_TYPES.SHARE_TYPE_LINK && share.type !== this.SHARE_TYPES.SHARE_TYPE_EMAIL); + console.debug('Processed', this.linkShares.length, 'link share(s)'); + console.debug('Processed', this.shares.length, 'share(s)'); + } + }, + /** + * Process the sharedWithMe share data + * and init sharedWithMe + * + * @param {object} share the share ocs api request data + * @param {object} share.data the request data + */ + processSharedWithMe(_ref2) { + let { + data + } = _ref2; + if (data.ocs && data.ocs.data && data.ocs.data[0]) { + const share = new _models_Share_js__WEBPACK_IMPORTED_MODULE_7__["default"](data); + const title = (0,_utils_SharedWithMe_js__WEBPACK_IMPORTED_MODULE_6__.shareWithTitle)(share); + const displayName = share.ownerDisplayName; + const user = share.owner; + this.sharedWithMe = { + displayName, + title, + user + }; + this.reshare = share; + + // If we have an expiration date, use it as subtitle + // Refresh the status every 10s and clear if expired + if (share.expireDate && moment(share.expireDate).unix() > moment().unix()) { + // first update + this.updateExpirationSubtitle(share); + // interval update + this.expirationInterval = setInterval(this.updateExpirationSubtitle, 10000, share); + } + } else if (this.fileInfo && this.fileInfo.shareOwnerId !== undefined ? this.fileInfo.shareOwnerId !== OC.currentUser : false) { + // Fallback to compare owner and current user. + this.sharedWithMe = { + displayName: this.fileInfo.shareOwner, + title: t('files_sharing', 'Shared with you by {owner}', { + owner: this.fileInfo.shareOwner + }, undefined, { + escape: false + }), + user: this.fileInfo.shareOwnerId + }; + } + }, + /** + * Add a new share into the shares list + * and return the newly created share component + * + * @param {Share} share the share to add to the array + * @param {Function} [resolve] a function to run after the share is added and its component initialized + */ + addShare(share) { + let resolve = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => {}; + // only catching share type MAIL as link shares are added differently + // meaning: not from the ShareInput + if (share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) { + this.linkShares.unshift(share); + } else { + this.shares.unshift(share); + } + this.awaitForShare(share, resolve); + }, + /** + * Remove a share from the shares list + * + * @param {Share} share the share to remove + */ + removeShare(share) { + // Get reference for this.linkShares or this.shares + const shareList = share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL || share.type === this.SHARE_TYPES.SHARE_TYPE_LINK ? this.linkShares : this.shares; + const index = shareList.findIndex(item => item.id === share.id); + if (index !== -1) { + shareList.splice(index, 1); + } + }, + /** + * Await for next tick and render after the list updated + * Then resolve with the matched vue component of the + * provided share object + * + * @param {Share} share newly created share + * @param {Function} resolve a function to execute after + */ + awaitForShare(share, resolve) { + this.$nextTick(() => { + let listComponent = this.$refs.shareList; + // Only mail shares comes from the input, link shares + // are managed internally in the SharingLinkList component + if (share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) { + listComponent = this.$refs.linkShareList; + } + const newShare = listComponent.$children.find(component => component.share === share); + if (newShare) { + resolve(newShare); + } + }); + }, + toggleShareDetailsView(eventData) { + if (!this.showSharingDetailsView) { + const isAction = Array.from(document.activeElement.classList).some(className => className.startsWith('action-')); + if (isAction) { + var _document$activeEleme; + const menuId = (_document$activeEleme = document.activeElement.closest('[role="menu"]')) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.id; + this.returnFocusElement = document.querySelector("[aria-controls=\"".concat(menuId, "\"]")); + } else { + this.returnFocusElement = document.activeElement; + } + } + if (eventData) { + this.shareDetailsData = eventData; + } + this.showSharingDetailsView = !this.showSharingDetailsView; + if (!this.showSharingDetailsView) { + this.$nextTick(() => { + var _this$returnFocusElem; + // Wait for next tick as the element must be visible to be focused + (_this$returnFocusElem = this.returnFocusElement) === null || _this$returnFocusElem === void 0 || _this$returnFocusElem.focus(); + this.returnFocusElement = null; + }); + } + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=template&id=27835356": +/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=template&id=27835356 ***! + \**********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c(_vm.data.is, _vm._g(_vm._b({ + tag: "Component" + }, "Component", _vm.data, false), _vm.action.handlers), [_vm._v("\n\t" + _vm._s(_vm.data.text) + "\n")]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true": +/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true ***! + \***************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("li", { + staticClass: "sharing-entry" + }, [_c("NcAvatar", { + staticClass: "sharing-entry__avatar", + attrs: { + "is-no-user": _vm.share.type !== _vm.SHARE_TYPES.SHARE_TYPE_USER, + user: _vm.share.shareWith, + "display-name": _vm.share.shareWithDisplayName, + "menu-position": "left", + url: _vm.share.shareWithAvatar + } + }), _vm._v(" "), _c("div", { + staticClass: "sharing-entry__summary" + }, [_c(_vm.share.shareWithLink ? "a" : "div", { + tag: "component", + staticClass: "sharing-entry__summary__desc", + attrs: { + title: _vm.tooltip, + "aria-label": _vm.tooltip, + href: _vm.share.shareWithLink + } + }, [_c("span", [_vm._v(_vm._s(_vm.title) + "\n\t\t\t\t"), !_vm.isUnique ? _c("span", { + staticClass: "sharing-entry__summary__desc-unique" + }, [_vm._v(" (" + _vm._s(_vm.share.shareWithDisplayNameUnique) + ")")]) : _vm._e(), _vm._v(" "), _vm.hasStatus && _vm.share.status.message ? _c("small", [_vm._v("(" + _vm._s(_vm.share.status.message) + ")")]) : _vm._e()])]), _vm._v(" "), _c("SharingEntryQuickShareSelect", { + attrs: { + share: _vm.share, + "file-info": _vm.fileInfo + }, + on: { + "open-sharing-details": function ($event) { + return _vm.openShareDetailsForCustomSettings(_vm.share); + } + } + })], 1), _vm._v(" "), _c("NcButton", { + staticClass: "sharing-entry__action", + attrs: { + "data-cy-files-sharing-share-actions": "", + "aria-label": _vm.t("files_sharing", "Open Sharing Details"), + type: "tertiary" + }, + on: { + click: function ($event) { + return _vm.openSharingDetails(_vm.share); + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("DotsHorizontalIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }]) + })], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true": +/*!************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true ***! + \************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("SharingEntrySimple", { + key: _vm.share.id, + staticClass: "sharing-entry__inherited", + attrs: { + title: _vm.share.shareWithDisplayName + }, + scopedSlots: _vm._u([{ + key: "avatar", + fn: function () { + return [_c("NcAvatar", { + staticClass: "sharing-entry__avatar", + attrs: { + user: _vm.share.shareWith, + "display-name": _vm.share.shareWithDisplayName + } + })]; + }, + proxy: true + }]) + }, [_vm._v(" "), _c("NcActionText", { + attrs: { + icon: "icon-user" + } + }, [_vm._v("\n\t\t" + _vm._s(_vm.t("files_sharing", "Added by {initiator}", { + initiator: _vm.share.ownerDisplayName + })) + "\n\t")]), _vm._v(" "), _vm.share.viaPath && _vm.share.viaFileid ? _c("NcActionLink", { + attrs: { + icon: "icon-folder", + href: _vm.viaFileTargetUrl + } + }, [_vm._v("\n\t\t" + _vm._s(_vm.t("files_sharing", "Via “{folder}”", { + folder: _vm.viaFolderName + })) + "\n\t")]) : _vm._e(), _vm._v(" "), _vm.share.canDelete ? _c("NcActionButton", { + attrs: { + icon: "icon-close" + }, + on: { + click: function ($event) { + $event.preventDefault(); + return _vm.onDelete.apply(null, arguments); + } + } + }, [_vm._v("\n\t\t" + _vm._s(_vm.t("files_sharing", "Unshare")) + "\n\t")]) : _vm._e()], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("ul", [_c("SharingEntrySimple", { + ref: "shareEntrySimple", + staticClass: "sharing-entry__internal", + attrs: { + title: _vm.t("files_sharing", "Internal link"), + subtitle: _vm.internalLinkSubtitle + }, + scopedSlots: _vm._u([{ + key: "avatar", + fn: function () { + return [_c("div", { + staticClass: "avatar-external icon-external-white" + })]; + }, + proxy: true + }]) + }, [_vm._v(" "), _c("NcActionButton", { + attrs: { + title: _vm.copyLinkTooltip, + "aria-label": _vm.copyLinkTooltip + }, + on: { + click: _vm.copyLink + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_vm.copied && _vm.copySuccess ? _c("CheckIcon", { + staticClass: "icon-checkmark-color", + attrs: { + size: 20 + } + }) : _c("ClipboardIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }]) + })], 1)], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("li", { + staticClass: "sharing-entry sharing-entry__link", + class: { + "sharing-entry--share": _vm.share + } + }, [_c("NcAvatar", { + staticClass: "sharing-entry__avatar", + attrs: { + "is-no-user": true, + "icon-class": _vm.isEmailShareType ? "avatar-link-share icon-mail-white" : "avatar-link-share icon-public-white" + } + }), _vm._v(" "), _c("div", { + staticClass: "sharing-entry__summary" + }, [_c("div", { + staticClass: "sharing-entry__desc" + }, [_c("span", { + staticClass: "sharing-entry__title", + attrs: { + title: _vm.title + } + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.title) + "\n\t\t\t")]), _vm._v(" "), _vm.subtitle ? _c("p", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.subtitle) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), _vm.share && _vm.share.permissions !== undefined ? _c("SharingEntryQuickShareSelect", { + attrs: { + share: _vm.share, + "file-info": _vm.fileInfo + }, + on: { + "open-sharing-details": function ($event) { + return _vm.openShareDetailsForCustomSettings(_vm.share); + } + } + }) : _vm._e()], 1), _vm._v(" "), _vm.share && !_vm.isEmailShareType && _vm.share.token ? _c("NcActions", { + ref: "copyButton", + staticClass: "sharing-entry__copy" + }, [_c("NcActionButton", { + attrs: { + title: _vm.copyLinkTooltip, + "aria-label": _vm.copyLinkTooltip + }, + on: { + click: function ($event) { + $event.preventDefault(); + return _vm.copyLink.apply(null, arguments); + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_vm.copied && _vm.copySuccess ? _c("CheckIcon", { + staticClass: "icon-checkmark-color", + attrs: { + size: 20 + } + }) : _c("ClipboardIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 4269614823) + })], 1) : _vm._e()], 1), _vm._v(" "), !_vm.pending && (_vm.pendingPassword || _vm.pendingEnforcedPassword || _vm.pendingExpirationDate) ? _c("NcActions", { + staticClass: "sharing-entry__actions", + attrs: { + "aria-label": _vm.actionsTooltip, + "menu-align": "right", + open: _vm.open + }, + on: { + "update:open": function ($event) { + _vm.open = $event; + }, + close: _vm.onCancel + } + }, [_vm.errors.pending ? _c("NcActionText", { + staticClass: "error", + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("ErrorIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 1966124155) + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.errors.pending) + "\n\t\t")]) : _c("NcActionText", { + attrs: { + icon: "icon-info" + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("files_sharing", "Please enter the following required information before creating the share")) + "\n\t\t")]), _vm._v(" "), _vm.pendingEnforcedPassword ? _c("NcActionText", [_c("LockIcon", { + attrs: { + size: 20 + } + }), _vm._v("\n\t\t\t" + _vm._s(_vm.t("files_sharing", "Password protection (enforced)")) + "\n\t\t")], 1) : _vm.pendingPassword ? _c("NcActionCheckbox", { + staticClass: "share-link-password-checkbox", + attrs: { + checked: _vm.isPasswordProtected, + disabled: _vm.config.enforcePasswordForPublicLink || _vm.saving + }, + on: { + "update:checked": function ($event) { + _vm.isPasswordProtected = $event; + }, + uncheck: _vm.onPasswordDisable + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("files_sharing", "Password protection")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.pendingEnforcedPassword || _vm.share.password ? _c("NcActionInput", { + staticClass: "share-link-password", + attrs: { + value: _vm.share.password, + disabled: _vm.saving, + required: _vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink, + minlength: _vm.isPasswordPolicyEnabled && _vm.config.passwordPolicy.minLength, + icon: "", + autocomplete: "new-password" + }, + on: { + "update:value": function ($event) { + return _vm.$set(_vm.share, "password", $event); + }, + submit: _vm.onNewLinkShare + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("files_sharing", "Enter a password")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.pendingExpirationDate ? _c("NcActionText", { + attrs: { + icon: "icon-calendar-dark" + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("files_sharing", "Expiration date (enforced)")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.pendingExpirationDate ? _c("NcActionInput", { + staticClass: "share-link-expire-date", + attrs: { + disabled: _vm.saving, + "is-native-picker": true, + "hide-label": true, + value: new Date(_vm.share.expireDate), + type: "date", + min: _vm.dateTomorrow, + max: _vm.maxExpirationDateEnforced + }, + on: { + input: _vm.onExpirationChange + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("files_sharing", "Enter a date")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _c("NcActionButton", { + on: { + click: function ($event) { + $event.preventDefault(); + $event.stopPropagation(); + return _vm.onNewLinkShare.apply(null, arguments); + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("CheckIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 2630571749) + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("files_sharing", "Create share")) + "\n\t\t")]), _vm._v(" "), _c("NcActionButton", { + on: { + click: function ($event) { + $event.preventDefault(); + $event.stopPropagation(); + return _vm.onCancel.apply(null, arguments); + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("CloseIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 2428343285) + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("files_sharing", "Cancel")) + "\n\t\t")])], 1) : !_vm.loading ? _c("NcActions", { + staticClass: "sharing-entry__actions", + attrs: { + "aria-label": _vm.actionsTooltip, + "menu-align": "right", + open: _vm.open + }, + on: { + "update:open": function ($event) { + _vm.open = $event; + }, + close: _vm.onMenuClose + } + }, [_vm.share ? [_vm.share.canEdit && _vm.canReshare ? [_c("NcActionButton", { + attrs: { + disabled: _vm.saving, + "close-after-click": true + }, + on: { + click: function ($event) { + $event.preventDefault(); + return _vm.openSharingDetails.apply(null, arguments); + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("Tune", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 1300586850) + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Customize link")) + "\n\t\t\t\t")])] : _vm._e(), _vm._v(" "), _c("NcActionButton", { + attrs: { + "close-after-click": true + }, + on: { + click: function ($event) { + $event.preventDefault(); + _vm.showQRCode = true; + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("IconQr", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 1082198240) + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Generate QR code")) + "\n\t\t\t")]), _vm._v(" "), _c("NcActionSeparator"), _vm._v(" "), _vm._l(_vm.externalLinkActions, function (action) { + return _c("ExternalShareAction", { + key: action.id, + attrs: { + id: action.id, + action: action, + "file-info": _vm.fileInfo, + share: _vm.share + } + }); + }), _vm._v(" "), _vm._l(_vm.externalLegacyLinkActions, function (_ref, index) { + let { + icon, + url, + name + } = _ref; + return _c("NcActionLink", { + key: index, + attrs: { + href: url(_vm.shareLink), + icon: icon, + target: "_blank" + } + }, [_vm._v("\n\t\t\t\t" + _vm._s(name) + "\n\t\t\t")]); + }), _vm._v(" "), !_vm.isEmailShareType && _vm.canReshare ? _c("NcActionButton", { + staticClass: "new-share-link", + on: { + click: function ($event) { + $event.preventDefault(); + $event.stopPropagation(); + return _vm.onNewLinkShare.apply(null, arguments); + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("PlusIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 2953566425) + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Add another link")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), _vm.share.canDelete ? _c("NcActionButton", { + attrs: { + disabled: _vm.saving + }, + on: { + click: function ($event) { + $event.preventDefault(); + return _vm.onDelete.apply(null, arguments); + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("CloseIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 2428343285) + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Unshare")) + "\n\t\t\t")]) : _vm._e()] : _vm.canReshare ? _c("NcActionButton", { + staticClass: "new-share-link", + attrs: { + title: _vm.t("files_sharing", "Create a new share link"), + "aria-label": _vm.t("files_sharing", "Create a new share link"), + icon: _vm.loading ? "icon-loading-small" : "icon-add" + }, + on: { + click: function ($event) { + $event.preventDefault(); + $event.stopPropagation(); + return _vm.onNewLinkShare.apply(null, arguments); + } + } + }) : _vm._e()], 2) : _c("div", { + staticClass: "icon-loading-small sharing-entry__loading" + }), _vm._v(" "), _vm.showQRCode ? _c("NcDialog", { + attrs: { + size: "normal", + open: _vm.showQRCode, + name: _vm.title, + "close-on-click-outside": true + }, + on: { + "update:open": function ($event) { + _vm.showQRCode = $event; + }, + close: function ($event) { + _vm.showQRCode = false; + } + } + }, [_c("div", { + staticClass: "qr-code-dialog" + }, [_c("VueQrcode", { + staticClass: "qr-code-dialog__img", + attrs: { + tag: "img", + value: _vm.shareLink + } + })], 1)]) : _vm._e()], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("NcActions", { + ref: "quickShareActions", + staticClass: "share-select", + attrs: { + "menu-name": _vm.selectedOption, + "aria-label": _vm.ariaLabel, + type: "tertiary-no-background", + "force-name": "" + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("DropdownIcon", { + attrs: { + size: 15 + } + })]; + }, + proxy: true + }]) + }, [_vm._v(" "), _vm._l(_vm.options, function (option) { + return _c("NcActionButton", { + key: option.label, + attrs: { + type: "radio", + "model-value": option.label === _vm.selectedOption, + "close-after-click": "" + }, + on: { + click: function ($event) { + return _vm.selectOption(option.label); + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(option.icon, { + tag: "component" + })]; + }, + proxy: true + }], null, true) + }, [_vm._v("\n\t\t" + _vm._s(option.label) + "\n\t")]); + })], 2); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("li", { + staticClass: "sharing-entry" + }, [_vm._t("avatar"), _vm._v(" "), _c("div", { + staticClass: "sharing-entry__desc" + }, [_c("span", { + staticClass: "sharing-entry__title" + }, [_vm._v(_vm._s(_vm.title))]), _vm._v(" "), _vm.subtitle ? _c("p", [_vm._v("\n\t\t\t" + _vm._s(_vm.subtitle) + "\n\t\t")]) : _vm._e()]), _vm._v(" "), _vm.$slots["default"] ? _c("NcActions", { + ref: "actionsComponent", + staticClass: "sharing-entry__actions", + attrs: { + "menu-align": "right", + "aria-expanded": _vm.ariaExpandedValue + } + }, [_vm._t("default")], 2) : _vm._e()], 2); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=template&id=39161a5c": +/*!***************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=template&id=39161a5c ***! + \***************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("div", { + staticClass: "sharing-search" + }, [_c("label", { + attrs: { + for: "sharing-search-input" + } + }, [_vm._v(_vm._s(_vm.t("files_sharing", "Search for share recipients")))]), _vm._v(" "), _c("NcSelect", { + ref: "select", + staticClass: "sharing-search__input", + attrs: { + "input-id": "sharing-search-input", + disabled: !_vm.canReshare, + loading: _vm.loading, + filterable: false, + placeholder: _vm.inputPlaceholder, + "clear-search-on-blur": () => false, + "user-select": true, + options: _vm.options + }, + on: { + search: _vm.asyncFind, + "option:selected": _vm.onSelected + }, + scopedSlots: _vm._u([{ + key: "no-options", + fn: function (_ref) { + let { + search + } = _ref; + return [_vm._v("\n\t\t\t" + _vm._s(search ? _vm.noResultText : _vm.t("files_sharing", "No recommendations. Start typing.")) + "\n\t\t")]; + } + }]), + model: { + value: _vm.value, + callback: function ($$v) { + _vm.value = $$v; + }, + expression: "value" + } + })], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true": +/*!***************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true ***! + \***************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm$share$expireDate; + var _vm = this, + _c = _vm._self._c; + return _c("div", { + staticClass: "sharingTabDetailsView" + }, [_c("div", { + staticClass: "sharingTabDetailsView__header" + }, [_c("span", [_vm.isUserShare ? _c("NcAvatar", { + staticClass: "sharing-entry__avatar", + attrs: { + "is-no-user": _vm.share.shareType !== _vm.SHARE_TYPES.SHARE_TYPE_USER, + user: _vm.share.shareWith, + "display-name": _vm.share.shareWithDisplayName, + "menu-position": "left", + url: _vm.share.shareWithAvatar + } + }) : _vm._e(), _vm._v(" "), _c(_vm.getShareTypeIcon(_vm.share.type), { + tag: "component", + attrs: { + size: 32 + } + })], 1), _vm._v(" "), _c("span", [_c("h1", [_vm._v(_vm._s(_vm.title))])])]), _vm._v(" "), _c("div", { + staticClass: "sharingTabDetailsView__wrapper" + }, [_c("div", { + ref: "quickPermissions", + staticClass: "sharingTabDetailsView__quick-permissions" + }, [_c("div", [_c("NcCheckboxRadioSwitch", { + attrs: { + "button-variant": true, + "data-cy-files-sharing-share-permissions-bundle": "read-only", + checked: _vm.sharingPermission, + value: _vm.bundledPermissions.READ_ONLY.toString(), + name: "sharing_permission_radio", + type: "radio", + "button-variant-grouped": "vertical" + }, + on: { + "update:checked": [function ($event) { + _vm.sharingPermission = $event; + }, _vm.toggleCustomPermissions] + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("ViewIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }]) + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "View only")) + "\n\t\t\t\t\t")]), _vm._v(" "), _c("NcCheckboxRadioSwitch", { + attrs: { + "button-variant": true, + "data-cy-files-sharing-share-permissions-bundle": "upload-edit", + checked: _vm.sharingPermission, + value: _vm.bundledPermissions.ALL.toString(), + name: "sharing_permission_radio", + type: "radio", + "button-variant-grouped": "vertical" + }, + on: { + "update:checked": [function ($event) { + _vm.sharingPermission = $event; + }, _vm.toggleCustomPermissions] + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("EditIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }]) + }, [_vm.allowsFileDrop ? [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Allow upload and editing")) + "\n\t\t\t\t\t")] : [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Allow editing")) + "\n\t\t\t\t\t")]], 2), _vm._v(" "), _vm.allowsFileDrop ? _c("NcCheckboxRadioSwitch", { + attrs: { + "data-cy-files-sharing-share-permissions-bundle": "file-drop", + "button-variant": true, + checked: _vm.sharingPermission, + value: _vm.bundledPermissions.FILE_DROP.toString(), + name: "sharing_permission_radio", + type: "radio", + "button-variant-grouped": "vertical" + }, + on: { + "update:checked": [function ($event) { + _vm.sharingPermission = $event; + }, _vm.toggleCustomPermissions] + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("UploadIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }], null, false, 1083194048) + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "File drop")) + "\n\t\t\t\t\t"), _c("small", { + staticClass: "subline" + }, [_vm._v(_vm._s(_vm.t("files_sharing", "Upload only")))])]) : _vm._e(), _vm._v(" "), _c("NcCheckboxRadioSwitch", { + attrs: { + "button-variant": true, + "data-cy-files-sharing-share-permissions-bundle": "custom", + checked: _vm.sharingPermission, + value: "custom", + name: "sharing_permission_radio", + type: "radio", + "button-variant-grouped": "vertical" + }, + on: { + "update:checked": [function ($event) { + _vm.sharingPermission = $event; + }, _vm.expandCustomPermissions] + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("DotsHorizontalIcon", { + attrs: { + size: 20 + } + })]; + }, + proxy: true + }]) + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Custom permissions")) + "\n\t\t\t\t\t"), _c("small", { + staticClass: "subline" + }, [_vm._v(_vm._s(_vm.customPermissionsList))])])], 1)]), _vm._v(" "), _c("div", { + staticClass: "sharingTabDetailsView__advanced-control" + }, [_c("NcButton", { + attrs: { + id: "advancedSectionAccordionAdvancedControl", + type: "tertiary", + alignment: "end-reverse", + "aria-controls": "advancedSectionAccordionAdvanced", + "aria-expanded": _vm.advancedControlExpandedValue + }, + on: { + click: function ($event) { + _vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded; + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [!_vm.advancedSectionAccordionExpanded ? _c("MenuDownIcon") : _c("MenuUpIcon")]; + }, + proxy: true + }]) + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Advanced settings")) + "\n\t\t\t\t")])], 1), _vm._v(" "), _vm.advancedSectionAccordionExpanded ? _c("div", { + staticClass: "sharingTabDetailsView__advanced", + attrs: { + id: "advancedSectionAccordionAdvanced", + "aria-labelledby": "advancedSectionAccordionAdvancedControl", + role: "region" + } + }, [_c("section", [_vm.isPublicShare ? _c("NcInputField", { + attrs: { + autocomplete: "off", + label: _vm.t("files_sharing", "Share label"), + value: _vm.share.label + }, + on: { + "update:value": function ($event) { + return _vm.$set(_vm.share, "label", $event); + } + } + }) : _vm._e(), _vm._v(" "), _vm.isPublicShare ? [_c("NcCheckboxRadioSwitch", { + attrs: { + checked: _vm.isPasswordProtected, + disabled: _vm.isPasswordEnforced + }, + on: { + "update:checked": function ($event) { + _vm.isPasswordProtected = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Set password")) + "\n\t\t\t\t\t")]), _vm._v(" "), _vm.isPasswordProtected ? _c("NcPasswordField", { + attrs: { + autocomplete: "new-password", + value: _vm.hasUnsavedPassword ? _vm.share.newPassword : "", + error: _vm.passwordError, + "helper-text": _vm.errorPasswordLabel, + required: _vm.isPasswordEnforced, + label: _vm.t("files_sharing", "Password") + }, + on: { + "update:value": _vm.onPasswordChange + } + }) : _vm._e(), _vm._v(" "), _vm.isEmailShareType && _vm.passwordExpirationTime ? _c("span", { + attrs: { + icon: "icon-info" + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Password expires {passwordExpirationTime}", { + passwordExpirationTime: _vm.passwordExpirationTime + })) + "\n\t\t\t\t\t")]) : _vm.isEmailShareType && _vm.passwordExpirationTime !== null ? _c("span", { + attrs: { + icon: "icon-error" + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Password expired")) + "\n\t\t\t\t\t")]) : _vm._e()] : _vm._e(), _vm._v(" "), _vm.canTogglePasswordProtectedByTalkAvailable ? _c("NcCheckboxRadioSwitch", { + attrs: { + checked: _vm.isPasswordProtectedByTalk + }, + on: { + "update:checked": [function ($event) { + _vm.isPasswordProtectedByTalk = $event; + }, _vm.onPasswordProtectedByTalkChange] + } + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Video verification")) + "\n\t\t\t\t")]) : _vm._e(), _vm._v(" "), _c("NcCheckboxRadioSwitch", { + attrs: { + checked: _vm.hasExpirationDate, + disabled: _vm.isExpiryDateEnforced + }, + on: { + "update:checked": function ($event) { + _vm.hasExpirationDate = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.isExpiryDateEnforced ? _vm.t("files_sharing", "Expiration date (enforced)") : _vm.t("files_sharing", "Set expiration date")) + "\n\t\t\t\t")]), _vm._v(" "), _vm.hasExpirationDate ? _c("NcDateTimePickerNative", { + attrs: { + id: "share-date-picker", + value: new Date((_vm$share$expireDate = _vm.share.expireDate) !== null && _vm$share$expireDate !== void 0 ? _vm$share$expireDate : _vm.dateTomorrow), + min: _vm.dateTomorrow, + max: _vm.maxExpirationDateEnforced, + "hide-label": true, + placeholder: _vm.t("files_sharing", "Expiration date"), + type: "date" + }, + on: { + input: _vm.onExpirationChange + } + }) : _vm._e(), _vm._v(" "), _vm.isPublicShare ? _c("NcCheckboxRadioSwitch", { + attrs: { + disabled: _vm.canChangeHideDownload, + checked: _vm.share.hideDownload + }, + on: { + "update:checked": [function ($event) { + return _vm.$set(_vm.share, "hideDownload", $event); + }, function ($event) { + return _vm.queueUpdate("hideDownload"); + }] + } + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Hide download")) + "\n\t\t\t\t")]) : _vm._e(), _vm._v(" "), !_vm.isPublicShare ? _c("NcCheckboxRadioSwitch", { + attrs: { + disabled: !_vm.canSetDownload, + checked: _vm.canDownload, + "data-cy-files-sharing-share-permissions-checkbox": "download" + }, + on: { + "update:checked": function ($event) { + _vm.canDownload = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Allow download")) + "\n\t\t\t\t")]) : _vm._e(), _vm._v(" "), _c("NcCheckboxRadioSwitch", { + attrs: { + checked: _vm.writeNoteToRecipientIsChecked + }, + on: { + "update:checked": function ($event) { + _vm.writeNoteToRecipientIsChecked = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Note to recipient")) + "\n\t\t\t\t")]), _vm._v(" "), _vm.writeNoteToRecipientIsChecked ? [_c("label", { + attrs: { + for: "share-note-textarea" + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Enter a note for the share recipient")) + "\n\t\t\t\t\t")]), _vm._v(" "), _c("textarea", { + attrs: { + id: "share-note-textarea" + }, + domProps: { + value: _vm.share.note + }, + on: { + input: function ($event) { + _vm.share.note = $event.target.value; + } + } + })] : _vm._e(), _vm._v(" "), _vm._l(_vm.externalLinkActions, function (action) { + return _c("ExternalShareAction", { + key: action.id, + ref: "externalLinkActions", + refInFor: true, + attrs: { + id: action.id, + action: action, + "file-info": _vm.fileInfo, + share: _vm.share + } + }); + }), _vm._v(" "), _c("NcCheckboxRadioSwitch", { + attrs: { + checked: _vm.setCustomPermissions + }, + on: { + "update:checked": function ($event) { + _vm.setCustomPermissions = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Custom permissions")) + "\n\t\t\t\t")]), _vm._v(" "), _vm.setCustomPermissions ? _c("section", { + staticClass: "custom-permissions-group" + }, [_c("NcCheckboxRadioSwitch", { + attrs: { + disabled: !_vm.allowsFileDrop && _vm.share.type === _vm.SHARE_TYPES.SHARE_TYPE_LINK, + checked: _vm.hasRead, + "data-cy-files-sharing-share-permissions-checkbox": "read" + }, + on: { + "update:checked": function ($event) { + _vm.hasRead = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Read")) + "\n\t\t\t\t\t")]), _vm._v(" "), _vm.isFolder ? _c("NcCheckboxRadioSwitch", { + attrs: { + disabled: !_vm.canSetCreate, + checked: _vm.canCreate, + "data-cy-files-sharing-share-permissions-checkbox": "create" + }, + on: { + "update:checked": function ($event) { + _vm.canCreate = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Create")) + "\n\t\t\t\t\t")]) : _vm._e(), _vm._v(" "), _c("NcCheckboxRadioSwitch", { + attrs: { + disabled: !_vm.canSetEdit, + checked: _vm.canEdit, + "data-cy-files-sharing-share-permissions-checkbox": "update" + }, + on: { + "update:checked": function ($event) { + _vm.canEdit = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Edit")) + "\n\t\t\t\t\t")]), _vm._v(" "), _vm.config.isResharingAllowed && _vm.share.type !== _vm.SHARE_TYPES.SHARE_TYPE_LINK ? _c("NcCheckboxRadioSwitch", { + attrs: { + disabled: !_vm.canSetReshare, + checked: _vm.canReshare, + "data-cy-files-sharing-share-permissions-checkbox": "share" + }, + on: { + "update:checked": function ($event) { + _vm.canReshare = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Share")) + "\n\t\t\t\t\t")]) : _vm._e(), _vm._v(" "), _c("NcCheckboxRadioSwitch", { + attrs: { + disabled: !_vm.canSetDelete, + checked: _vm.canDelete, + "data-cy-files-sharing-share-permissions-checkbox": "delete" + }, + on: { + "update:checked": function ($event) { + _vm.canDelete = $event; + } + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Delete")) + "\n\t\t\t\t\t")])], 1) : _vm._e(), _vm._v(" "), _c("div", { + staticClass: "sharingTabDetailsView__delete" + }, [!_vm.isNewShare ? _c("NcButton", { + attrs: { + "aria-label": _vm.t("files_sharing", "Delete share"), + disabled: false, + readonly: false, + type: "tertiary" + }, + on: { + click: function ($event) { + $event.preventDefault(); + return _vm.removeShare.apply(null, arguments); + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("CloseIcon", { + attrs: { + size: 16 + } + })]; + }, + proxy: true + }], null, false, 2746485232) + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Delete share")) + "\n\t\t\t\t\t")]) : _vm._e()], 1)], 2)]) : _vm._e()]), _vm._v(" "), _c("div", { + staticClass: "sharingTabDetailsView__footer" + }, [_c("div", { + staticClass: "button-group" + }, [_c("NcButton", { + attrs: { + "data-cy-files-sharing-share-editor-action": "cancel" + }, + on: { + click: function ($event) { + return _vm.$emit("close-sharing-details"); + } + } + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("files_sharing", "Cancel")) + "\n\t\t\t")]), _vm._v(" "), _c("NcButton", { + attrs: { + type: "primary", + "data-cy-files-sharing-share-editor-action": "save" + }, + on: { + click: _vm.saveShare + }, + scopedSlots: _vm._u([_vm.creating ? { + key: "icon", + fn: function () { + return [_c("NcLoadingIcon")]; + }, + proxy: true + } : null], null, true) + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.shareButtonText) + "\n\t\t\t\t")])], 1)])]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("ul", { + attrs: { + id: "sharing-inherited-shares" + } + }, [_c("SharingEntrySimple", { + staticClass: "sharing-entry__inherited", + attrs: { + title: _vm.mainTitle, + subtitle: _vm.subTitle, + "aria-expanded": _vm.showInheritedShares + }, + scopedSlots: _vm._u([{ + key: "avatar", + fn: function () { + return [_c("div", { + staticClass: "avatar-shared icon-more-white" + })]; + }, + proxy: true + }]) + }, [_vm._v(" "), _c("NcActionButton", { + attrs: { + icon: _vm.showInheritedSharesIcon, + "aria-label": _vm.toggleTooltip, + title: _vm.toggleTooltip + }, + on: { + click: function ($event) { + $event.preventDefault(); + $event.stopPropagation(); + return _vm.toggleInheritedShares.apply(null, arguments); + } + } + })], 1), _vm._v(" "), _vm._l(_vm.shares, function (share) { + return _c("SharingEntryInherited", { + key: share.id, + attrs: { + "file-info": _vm.fileInfo, + share: share + }, + on: { + "remove:share": _vm.removeShare + } + }); + })], 2); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=template&id=dd248c84": +/*!*************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=template&id=dd248c84 ***! + \*************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _vm.canLinkShare ? _c("ul", { + staticClass: "sharing-link-list" + }, [!_vm.hasLinkShares && _vm.canReshare ? _c("SharingEntryLink", { + attrs: { + "can-reshare": _vm.canReshare, + "file-info": _vm.fileInfo + }, + on: { + "add:share": _vm.addShare + } + }) : _vm._e(), _vm._v(" "), _vm.hasShares ? _vm._l(_vm.shares, function (share, index) { + return _c("SharingEntryLink", { + key: share.id, + attrs: { + index: _vm.shares.length > 1 ? index + 1 : null, + "can-reshare": _vm.canReshare, + share: _vm.shares[index], + "file-info": _vm.fileInfo + }, + on: { + "update:share": [function ($event) { + return _vm.$set(_vm.shares, index, $event); + }, function ($event) { + return _vm.awaitForShare(...arguments); + }], + "add:share": function ($event) { + return _vm.addShare(...arguments); + }, + "remove:share": _vm.removeShare, + "open-sharing-details": function ($event) { + return _vm.openSharingDetails(share); + } + } + }); + }) : _vm._e()], 2) : _vm._e(); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingList.vue?vue&type=template&id=698e26a4": +/*!*********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingList.vue?vue&type=template&id=698e26a4 ***! + \*********************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("ul", { + staticClass: "sharing-sharee-list" + }, _vm._l(_vm.shares, function (share) { + return _c("SharingEntry", { + key: share.id, + attrs: { + "file-info": _vm.fileInfo, + share: share, + "is-unique": _vm.isUnique(share) + }, + on: { + "open-sharing-details": function ($event) { + return _vm.openSharingDetails(share); + } + } + }); + }), 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=template&id=0f81577f&scoped=true": +/*!********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=template&id=0f81577f&scoped=true ***! + \********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("div", { + staticClass: "sharingTab", + class: { + "icon-loading": _vm.loading + } + }, [_vm.error ? _c("div", { + staticClass: "emptycontent", + class: { + emptyContentWithSections: _vm.sections.length > 0 + } + }, [_c("div", { + staticClass: "icon icon-error" + }), _vm._v(" "), _c("h2", [_vm._v(_vm._s(_vm.error))])]) : _vm._e(), _vm._v(" "), _c("div", { + directives: [{ + name: "show", + rawName: "v-show", + value: !_vm.showSharingDetailsView, + expression: "!showSharingDetailsView" + }], + staticClass: "sharingTab__content" + }, [_c("ul", [_vm.isSharedWithMe ? _c("SharingEntrySimple", _vm._b({ + staticClass: "sharing-entry__reshare", + scopedSlots: _vm._u([{ + key: "avatar", + fn: function () { + return [_c("NcAvatar", { + staticClass: "sharing-entry__avatar", + attrs: { + user: _vm.sharedWithMe.user, + "display-name": _vm.sharedWithMe.displayName + } + })]; + }, + proxy: true + }], null, false, 3197855346) + }, "SharingEntrySimple", _vm.sharedWithMe, false)) : _vm._e()], 1), _vm._v(" "), !_vm.loading ? _c("SharingInput", { + attrs: { + "can-reshare": _vm.canReshare, + "file-info": _vm.fileInfo, + "link-shares": _vm.linkShares, + reshare: _vm.reshare, + shares: _vm.shares + }, + on: { + "open-sharing-details": _vm.toggleShareDetailsView + } + }) : _vm._e(), _vm._v(" "), !_vm.loading ? _c("SharingLinkList", { + ref: "linkShareList", + attrs: { + "can-reshare": _vm.canReshare, + "file-info": _vm.fileInfo, + shares: _vm.linkShares + }, + on: { + "open-sharing-details": _vm.toggleShareDetailsView + } + }) : _vm._e(), _vm._v(" "), !_vm.loading ? _c("SharingList", { + ref: "shareList", + attrs: { + shares: _vm.shares, + "file-info": _vm.fileInfo + }, + on: { + "open-sharing-details": _vm.toggleShareDetailsView + } + }) : _vm._e(), _vm._v(" "), _vm.canReshare && !_vm.loading ? _c("SharingInherited", { + attrs: { + "file-info": _vm.fileInfo + } + }) : _vm._e(), _vm._v(" "), _c("SharingEntryInternal", { + attrs: { + "file-info": _vm.fileInfo + } + }), _vm._v(" "), _vm.projectsEnabled && _vm.fileInfo ? _c("CollectionList", { + attrs: { + id: "".concat(_vm.fileInfo.id), + type: "file", + name: _vm.fileInfo.name + } + }) : _vm._e()], 1), _vm._v(" "), _vm._l(_vm.sections, function (section, index) { + return _c("div", { + directives: [{ + name: "show", + rawName: "v-show", + value: !_vm.showSharingDetailsView, + expression: "!showSharingDetailsView" + }], + key: index, + ref: "section-" + index, + refInFor: true, + staticClass: "sharingTab__additionalContent" + }, [_c(section(_vm.$refs["section-" + index], _vm.fileInfo), { + tag: "component", + attrs: { + "file-info": _vm.fileInfo + } + })], 1); + }), _vm._v(" "), _vm.showSharingDetailsView ? _c("SharingDetailsTab", { + attrs: { + "file-info": _vm.shareDetailsData.fileInfo, + share: _vm.shareDetailsData.share + }, + on: { + "close-sharing-details": _vm.toggleShareDetailsView, + "add:share": _vm.addShare, + "remove:share": _vm.removeShare + } + }) : _vm._e()], 2); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/nextcloud-vue-collections/dist/assets/index-Au1Gr_G6.css": +/*!*********************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/nextcloud-vue-collections/dist/assets/index-Au1Gr_G6.css ***! + \*********************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.fade-enter-active[data-v-8e58e0a5], +.fade-leave-active[data-v-8e58e0a5] { + transition: opacity .3s ease; +} +.fade-enter[data-v-8e58e0a5], +.fade-leave-to[data-v-8e58e0a5] { + opacity: 0; +} +.linked-icons[data-v-8e58e0a5] { + display: flex; +} +.linked-icons img[data-v-8e58e0a5] { + padding: 12px; + height: 44px; + display: block; + background-repeat: no-repeat; + background-position: center; + opacity: .7; +} +.linked-icons img[data-v-8e58e0a5]:hover { + opacity: 1; +} +.popovermenu[data-v-8e58e0a5] { + display: none; +} +.popovermenu.open[data-v-8e58e0a5] { + display: block; +} +li.collection-list-item[data-v-8e58e0a5] { + flex-wrap: wrap; + height: auto; + cursor: pointer; + margin-bottom: 0 !important; +} +li.collection-list-item .collection-avatar[data-v-8e58e0a5] { + margin-top: 6px; +} +li.collection-list-item form[data-v-8e58e0a5], +li.collection-list-item .collection-item-name[data-v-8e58e0a5] { + flex-basis: 10%; + flex-grow: 1; + display: flex; +} +li.collection-list-item .collection-item-name[data-v-8e58e0a5] { + padding: 12px 9px; +} +li.collection-list-item input[data-v-8e58e0a5] { + margin-top: 4px; + border-color: var(--color-border-maxcontrast); +} +li.collection-list-item input[type=text][data-v-8e58e0a5] { + flex-grow: 1; +} +li.collection-list-item .error[data-v-8e58e0a5], +li.collection-list-item .resource-list-details[data-v-8e58e0a5] { + flex-basis: 100%; + width: 100%; +} +li.collection-list-item .resource-list-details li[data-v-8e58e0a5] { + display: flex; + margin-left: 44px; + border-radius: 3px; + cursor: pointer; +} +li.collection-list-item .resource-list-details li[data-v-8e58e0a5]:hover { + background-color: var(--color-background-dark); +} +li.collection-list-item .resource-list-details li a[data-v-8e58e0a5] { + flex-grow: 1; + padding: 3px; + max-width: calc(100% - 30px); + display: flex; +} +li.collection-list-item .resource-list-details span[data-v-8e58e0a5] { + display: inline-block; + vertical-align: top; + margin-right: 10px; +} +li.collection-list-item .resource-list-details span.resource-name[data-v-8e58e0a5] { + text-overflow: ellipsis; + overflow: hidden; + position: relative; + vertical-align: top; + white-space: nowrap; + flex-grow: 1; + padding: 4px; +} +li.collection-list-item .resource-list-details img[data-v-8e58e0a5] { + width: 24px; + height: 24px; +} +li.collection-list-item .resource-list-details .icon-close[data-v-8e58e0a5] { + opacity: .7; +} +li.collection-list-item .resource-list-details .icon-close[data-v-8e58e0a5]:hover, +li.collection-list-item .resource-list-details .icon-close[data-v-8e58e0a5]:focus { + opacity: 1; +} +.shouldshake[data-v-8e58e0a5] { + animation: shake-8e58e0a5 .6s 1 linear; +} +@keyframes shake-8e58e0a5 { + 0% { + transform: translate(15px); + } + 20% { + transform: translate(-15px); + } + 40% { + transform: translate(7px); + } + 60% { + transform: translate(-7px); + } + 80% { + transform: translate(3px); + } + to { + transform: translate(0); + } +} +.collection-list *[data-v-75a4370b] { + box-sizing: border-box; +} +.collection-list > li[data-v-75a4370b] { + display: flex; + align-items: start; + gap: 12px; +} +.collection-list > li > .avatar[data-v-75a4370b] { + margin-top: auto; +} +#collection-select-container[data-v-75a4370b] { + display: flex; + flex-direction: column; +} +.v-select span.avatar[data-v-75a4370b] { + display: block; + padding: 16px; + opacity: .7; + background-repeat: no-repeat; + background-position: center; +} +.v-select span.avatar[data-v-75a4370b]:hover { + opacity: 1; +} +p.hint[data-v-75a4370b] { + z-index: 1; + margin-top: -16px; + padding: 8px; + color: var(--color-text-maxcontrast); + line-height: normal; +} +div.avatar[data-v-75a4370b] { + width: 32px; + height: 32px; + margin: 30px 0 0; + padding: 8px; + background-color: var(--color-background-dark); +} +.icon-projects[data-v-75a4370b] { + display: block; + padding: 8px; + background-repeat: no-repeat; + background-position: center; +} +.option__wrapper[data-v-75a4370b] { + display: flex; +} +.option__wrapper .avatar[data-v-75a4370b] { + display: block; + background-color: var(--color-background-darker) !important; +} +.option__wrapper .option__title[data-v-75a4370b] { + padding: 4px; +} +.fade-enter-active[data-v-75a4370b], +.fade-leave-active[data-v-75a4370b] { + transition: opacity .5s; +} +.fade-enter[data-v-75a4370b], +.fade-leave-to[data-v-75a4370b] { + opacity: 0; +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-61240f7a] { + display: flex; + align-items: center; + height: 44px; +} +.sharing-entry__summary[data-v-61240f7a] { + padding: 8px; + padding-left: 10px; + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-start; + flex: 1 0; + min-width: 0; +} +.sharing-entry__summary__desc[data-v-61240f7a] { + display: inline-block; + padding-bottom: 0; + line-height: 1.2em; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.sharing-entry__summary__desc p[data-v-61240f7a], +.sharing-entry__summary__desc small[data-v-61240f7a] { + color: var(--color-text-maxcontrast); +} +.sharing-entry__summary__desc-unique[data-v-61240f7a] { + color: var(--color-text-maxcontrast); +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-06bd31b0] { + display: flex; + align-items: center; + height: 44px; +} +.sharing-entry__desc[data-v-06bd31b0] { + display: flex; + flex-direction: column; + justify-content: space-between; + padding: 8px; + padding-left: 10px; + line-height: 1.2em; +} +.sharing-entry__desc p[data-v-06bd31b0] { + color: var(--color-text-maxcontrast); +} +.sharing-entry__actions[data-v-06bd31b0] { + margin-left: auto; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__internal .avatar-external[data-v-f55cfc52] { + width: 32px; + height: 32px; + line-height: 32px; + font-size: 18px; + background-color: var(--color-text-maxcontrast); + border-radius: 50%; + flex-shrink: 0; +} +.sharing-entry__internal .icon-checkmark-color[data-v-f55cfc52] { + opacity: 1; + color: var(--color-success); +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-7a675594] { + display: flex; + align-items: center; + min-height: 44px; +} +.sharing-entry__summary[data-v-7a675594] { + padding: 8px; + padding-left: 10px; + display: flex; + justify-content: space-between; + flex: 1 0; + min-width: 0; +} +.sharing-entry__desc[data-v-7a675594] { + display: flex; + flex-direction: column; + line-height: 1.2em; +} +.sharing-entry__desc p[data-v-7a675594] { + color: var(--color-text-maxcontrast); +} +.sharing-entry__desc__title[data-v-7a675594] { + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; +} +.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-7a675594] { + border-top: 1px solid var(--color-border); +} +.sharing-entry[data-v-7a675594] .avatar-link-share { + background-color: var(--color-primary-element); +} +.sharing-entry .sharing-entry__action--public-upload[data-v-7a675594] { + border-bottom: 1px solid var(--color-border); +} +.sharing-entry__loading[data-v-7a675594] { + width: 44px; + height: 44px; + margin: 0; + padding: 14px; + margin-left: auto; +} +.sharing-entry .action-item ~ .action-item[data-v-7a675594], +.sharing-entry .action-item ~ .sharing-entry__loading[data-v-7a675594] { + margin-left: 0; +} +.sharing-entry .icon-checkmark-color[data-v-7a675594] { + opacity: 1; + color: var(--color-success); +} +.qr-code-dialog[data-v-7a675594] { + display: flex; + width: 100%; + justify-content: center; +} +.qr-code-dialog__img[data-v-7a675594] { + width: 100%; + height: auto; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.share-select[data-v-62b9dbb0] { + display: block; +} +.share-select[data-v-62b9dbb0] .action-item__menutoggle { + color: var(--color-primary-element) !important; + font-size: 12.5px !important; + height: auto !important; + min-height: auto !important; +} +.share-select[data-v-62b9dbb0] .action-item__menutoggle .button-vue__text { + font-weight: normal !important; +} +.share-select[data-v-62b9dbb0] .action-item__menutoggle .button-vue__icon { + height: 24px !important; + min-height: 24px !important; + width: 24px !important; + min-width: 24px !important; +} +.share-select[data-v-62b9dbb0] .action-item__menutoggle .button-vue__wrapper { + flex-direction: row-reverse !important; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true": +/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true ***! + \****************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-354542cc] { + display: flex; + align-items: center; + min-height: 44px; +} +.sharing-entry__desc[data-v-354542cc] { + padding: 8px; + padding-left: 10px; + line-height: 1.2em; + position: relative; + flex: 1 1; + min-width: 0; +} +.sharing-entry__desc p[data-v-354542cc] { + color: var(--color-text-maxcontrast); +} +.sharing-entry__title[data-v-354542cc] { + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + max-width: inherit; +} +.sharing-entry__actions[data-v-354542cc] { + margin-left: auto !important; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.sharing-search { + display: flex; + flex-direction: column; + margin-bottom: 4px; +} +.sharing-search label[for=sharing-search-input] { + margin-bottom: 2px; +} +.sharing-search__input { + width: 100%; + margin: 10px 0; +} +.vs__dropdown-menu span[lookup] .avatardiv { + background-image: var(--icon-search-white); + background-repeat: no-repeat; + background-position: center; + background-color: var(--color-text-maxcontrast) !important; +} +.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper { + display: none; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.sharingTabDetailsView[data-v-b968620e] { + display: flex; + flex-direction: column; + width: 100%; + margin: 0 auto; + position: relative; + height: 100%; + overflow: hidden; +} +.sharingTabDetailsView__header[data-v-b968620e] { + display: flex; + align-items: center; + box-sizing: border-box; + margin: 0.2em; +} +.sharingTabDetailsView__header span[data-v-b968620e] { + display: flex; + align-items: center; +} +.sharingTabDetailsView__header span h1[data-v-b968620e] { + font-size: 15px; + padding-left: 0.3em; +} +.sharingTabDetailsView__wrapper[data-v-b968620e] { + position: relative; + overflow: scroll; + flex-shrink: 1; + padding: 4px; + padding-right: 12px; +} +.sharingTabDetailsView__quick-permissions[data-v-b968620e] { + display: flex; + justify-content: center; + width: 100%; + margin: 0 auto; + border-radius: 0; +} +.sharingTabDetailsView__quick-permissions div[data-v-b968620e] { + width: 100%; +} +.sharingTabDetailsView__quick-permissions div span[data-v-b968620e] { + width: 100%; + /* Target component based style in NcCheckboxRadioSwitch slot content*/ +} +.sharingTabDetailsView__quick-permissions div span span[data-v-b968620e]:nth-child(1) { + align-items: center; + justify-content: center; + padding: 0.1em; +} +.sharingTabDetailsView__quick-permissions div span[data-v-b968620e] label span { + display: flex; + flex-direction: column; +} +.sharingTabDetailsView__quick-permissions div span[data-v-b968620e] span.checkbox-content__text.checkbox-radio-switch__text { + flex-wrap: wrap; +} +.sharingTabDetailsView__quick-permissions div span[data-v-b968620e] span.checkbox-content__text.checkbox-radio-switch__text .subline { + display: block; + flex-basis: 100%; +} +.sharingTabDetailsView__advanced-control[data-v-b968620e] { + width: 100%; +} +.sharingTabDetailsView__advanced-control button[data-v-b968620e] { + margin-top: 0.5em; +} +.sharingTabDetailsView__advanced[data-v-b968620e] { + width: 100%; + margin-bottom: 0.5em; + text-align: left; + padding-left: 0; +} +.sharingTabDetailsView__advanced section[data-v-b968620e] { + /* + The following style is applied out of the component's scope + to remove padding from the label.checkbox-radio-switch__label, + which is used to group radio checkbox items. The use of ::v-deep + ensures that the padding is modified without being affected by + the component's scoping. + Without this achieving left alignment for the checkboxes would not + be possible. + */ +} +.sharingTabDetailsView__advanced section textarea[data-v-b968620e], +.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-b968620e] { + width: 100%; +} +.sharingTabDetailsView__advanced section textarea[data-v-b968620e] { + height: 80px; + margin: 0; +} +.sharingTabDetailsView__advanced section span[data-v-b968620e] label { + padding-left: 0 !important; + background-color: initial !important; + border: none !important; +} +.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-b968620e] { + padding-left: 1.5em; +} +.sharingTabDetailsView__delete > button[data-v-b968620e]:first-child { + color: rgb(223, 7, 7); +} +.sharingTabDetailsView__footer[data-v-b968620e] { + width: 100%; + display: flex; + position: sticky; + bottom: 0; + flex-direction: column; + justify-content: space-between; + align-items: flex-start; + background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background)); +} +.sharingTabDetailsView__footer .button-group[data-v-b968620e] { + display: flex; + justify-content: space-between; + width: 100%; + margin-top: 16px; +} +.sharingTabDetailsView__footer .button-group button[data-v-b968620e] { + margin-left: 16px; +} +.sharingTabDetailsView__footer .button-group button[data-v-b968620e]:first-child { + margin-left: 0; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__inherited .avatar-shared[data-v-3f1bda78] { + width: 32px; + height: 32px; + line-height: 32px; + font-size: 18px; + background-color: var(--color-text-maxcontrast); + border-radius: 50%; + flex-shrink: 0; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.emptyContentWithSections[data-v-0f81577f] { + margin: 1rem auto; +} +.sharingTab[data-v-0f81577f] { + position: relative; + height: 100%; +} +.sharingTab__content[data-v-0f81577f] { + padding: 0 6px; +} +.sharingTab__additionalContent[data-v-0f81577f] { + margin: 44px 0; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/nextcloud-vue-collections/node_modules/@nextcloud/router/dist/index.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/nextcloud-vue-collections/node_modules/@nextcloud/router/dist/index.js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.generateUrl = exports.generateRemoteUrl = exports.generateOcsUrl = exports.generateFilePath = void 0; +exports.getAppRootUrl = getAppRootUrl; +exports.getRootUrl = getRootUrl; +exports.linkTo = exports.imagePath = void 0; +__webpack_require__(/*! core-js/modules/es.string.replace.js */ "./node_modules/core-js/modules/es.string.replace.js"); +/** + * Get an url with webroot to a file in an app + * + * @param {string} app the id of the app the file belongs to + * @param {string} file the file path relative to the app folder + * @return {string} URL with webroot to a file + */ +const linkTo = (app, file) => generateFilePath(app, '', file); + +/** + * Creates a relative url for remote use + * + * @param {string} service id + * @return {string} the url + */ +exports.linkTo = linkTo; +const linkToRemoteBase = service => getRootUrl() + '/remote.php/' + service; + +/** + * @brief Creates an absolute url for remote use + * @param {string} service id + * @return {string} the url + */ +const generateRemoteUrl = service => window.location.protocol + '//' + window.location.host + linkToRemoteBase(service); + +/** + * Get the base path for the given OCS API service + * + * @param {string} url OCS API service url + * @param {object} params parameters to be replaced into the service url + * @param {UrlOptions} options options for the parameter replacement + * @param {boolean} options.escape Set to false if parameters should not be URL encoded (default true) + * @param {Number} options.ocsVersion OCS version to use (defaults to 2) + * @return {string} Absolute path for the OCS URL + */ +exports.generateRemoteUrl = generateRemoteUrl; +const generateOcsUrl = (url, params, options) => { + const allOptions = Object.assign({ + ocsVersion: 2 + }, options || {}); + const version = allOptions.ocsVersion === 1 ? 1 : 2; + return window.location.protocol + '//' + window.location.host + getRootUrl() + '/ocs/v' + version + '.php' + _generateUrlPath(url, params, options); +}; +exports.generateOcsUrl = generateOcsUrl; +/** + * Generate a url path, which can contain parameters + * + * Parameters will be URL encoded automatically + * + * @param {string} url address (can contain placeholders e.g. /call/{token} would replace {token} with the value of params.token + * @param {object} params parameters to be replaced into the address + * @param {UrlOptions} options options for the parameter replacement + * @return {string} Path part for the given URL + */ +const _generateUrlPath = (url, params, options) => { + const allOptions = Object.assign({ + escape: true + }, options || {}); + const _build = function (text, vars) { + vars = vars || {}; + return text.replace(/{([^{}]*)}/g, function (a, b) { + var r = vars[b]; + if (allOptions.escape) { + return typeof r === 'string' || typeof r === 'number' ? encodeURIComponent(r.toString()) : encodeURIComponent(a); + } else { + return typeof r === 'string' || typeof r === 'number' ? r.toString() : a; + } + }); + }; + if (url.charAt(0) !== '/') { + url = '/' + url; + } + return _build(url, params || {}); +}; + +/** + * Generate the url with webroot for the given relative url, which can contain parameters + * + * Parameters will be URL encoded automatically + * + * @param {string} url address (can contain placeholders e.g. /call/{token} would replace {token} with the value of params.token + * @param {object} params parameters to be replaced into the url + * @param {UrlOptions} options options for the parameter replacement + * @param {boolean} options.noRewrite True if you want to force index.php being added + * @param {boolean} options.escape Set to false if parameters should not be URL encoded (default true) + * @return {string} URL with webroot for the given relative URL + */ +const generateUrl = (url, params, options) => { + var _window; + const allOptions = Object.assign({ + noRewrite: false + }, options || {}); + if (((_window = window) === null || _window === void 0 || (_window = _window.OC) === null || _window === void 0 || (_window = _window.config) === null || _window === void 0 ? void 0 : _window.modRewriteWorking) === true && !allOptions.noRewrite) { + return getRootUrl() + _generateUrlPath(url, params, options); + } + return getRootUrl() + '/index.php' + _generateUrlPath(url, params, options); +}; + +/** + * Get the path with webroot to an image file + * if no extension is given for the image, it will automatically decide + * between .png and .svg based on what the browser supports + * + * @param {string} app the app id to which the image belongs + * @param {string} file the name of the image file + * @return {string} + */ +exports.generateUrl = generateUrl; +const imagePath = (app, file) => { + if (file.indexOf('.') === -1) { + //if no extension is given, use svg + return generateFilePath(app, 'img', file + '.svg'); + } + return generateFilePath(app, 'img', file); +}; + +/** + * Get the url with webroot for a file in an app + * + * @param {string} app the id of the app + * @param {string} type the type of the file to link to (e.g. css,img,ajax.template) + * @param {string} file the filename + * @return {string} URL with webroot for a file in an app + */ +exports.imagePath = imagePath; +const generateFilePath = (app, type, file) => { + var _window2; + const isCore = ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.OC) === null || _window2 === void 0 || (_window2 = _window2.coreApps) === null || _window2 === void 0 ? void 0 : _window2.indexOf(app)) !== -1; + let link = getRootUrl(); + if (file.substring(file.length - 3) === 'php' && !isCore) { + link += '/index.php/apps/' + app; + if (file !== 'index.php') { + link += '/'; + if (type) { + link += encodeURI(type + '/'); + } + link += file; + } + } else if (file.substring(file.length - 3) !== 'php' && !isCore) { + link = getAppRootUrl(app); + if (type) { + link += '/' + type + '/'; + } + if (link.substring(link.length - 1) !== '/') { + link += '/'; + } + link += file; + } else { + if ((app === 'settings' || app === 'core' || app === 'search') && type === 'ajax') { + link += '/index.php/'; + } else { + link += '/'; + } + if (!isCore) { + link += 'apps/'; + } + if (app !== '') { + app += '/'; + link += app; + } + if (type) { + link += type + '/'; + } + link += file; + } + return link; +}; + +/** + * Return the web root path where this Nextcloud instance + * is accessible, with a leading slash. + * For example "/nextcloud". + * + * @return {string} web root path + */ +exports.generateFilePath = generateFilePath; +function getRootUrl() { + let webroot = window._oc_webroot; + if (typeof webroot === 'undefined') { + webroot = location.pathname; + const pos = webroot.indexOf('/index.php/'); + if (pos !== -1) { + webroot = webroot.substr(0, pos); + } else { + webroot = webroot.substr(0, webroot.lastIndexOf('/')); + } + } + return webroot; +} + +/** + * Return the web root path for a given app + * @param {string} app The ID of the app + */ +function getAppRootUrl(app) { + var _window$_oc_appswebro, _webroots$app; + const webroots = (_window$_oc_appswebro = window._oc_appswebroots) !== null && _window$_oc_appswebro !== void 0 ? _window$_oc_appswebro : {}; + return (_webroots$app = webroots[app]) !== null && _webroots$app !== void 0 ? _webroots$app : ''; +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/nextcloud-vue-collections/dist/assets/index-Au1Gr_G6.css": +/*!*******************************************************************************!*\ + !*** ./node_modules/nextcloud-vue-collections/dist/assets/index-Au1Gr_G6.css ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _css_loader_dist_cjs_js_index_Au1Gr_G6_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../css-loader/dist/cjs.js!./index-Au1Gr_G6.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/nextcloud-vue-collections/dist/assets/index-Au1Gr_G6.css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_index_Au1Gr_G6_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_index_Au1Gr_G6_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _css_loader_dist_cjs_js_index_Au1Gr_G6_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _css_loader_dist_cjs_js_index_Au1Gr_G6_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_style_index_0_id_61240f7a_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_style_index_0_id_61240f7a_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_style_index_0_id_61240f7a_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_style_index_0_id_61240f7a_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_style_index_0_id_61240f7a_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_style_index_0_id_06bd31b0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_style_index_0_id_06bd31b0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_style_index_0_id_06bd31b0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_style_index_0_id_06bd31b0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_style_index_0_id_06bd31b0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_style_index_0_id_f55cfc52_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_style_index_0_id_f55cfc52_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_style_index_0_id_f55cfc52_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_style_index_0_id_f55cfc52_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_style_index_0_id_f55cfc52_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_style_index_0_id_7a675594_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_style_index_0_id_7a675594_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_style_index_0_id_7a675594_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_style_index_0_id_7a675594_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_style_index_0_id_7a675594_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_style_index_0_id_62b9dbb0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_style_index_0_id_62b9dbb0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_style_index_0_id_62b9dbb0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_style_index_0_id_62b9dbb0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_style_index_0_id_62b9dbb0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_style_index_0_id_354542cc_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_style_index_0_id_354542cc_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_style_index_0_id_354542cc_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_style_index_0_id_354542cc_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_style_index_0_id_354542cc_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_style_index_0_id_39161a5c_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_style_index_0_id_39161a5c_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_style_index_0_id_39161a5c_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_style_index_0_id_39161a5c_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_style_index_0_id_39161a5c_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_style_index_0_id_b968620e_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_style_index_0_id_b968620e_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_style_index_0_id_b968620e_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_style_index_0_id_b968620e_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_style_index_0_id_b968620e_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_style_index_0_id_3f1bda78_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_style_index_0_id_3f1bda78_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_style_index_0_id_3f1bda78_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_style_index_0_id_3f1bda78_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_style_index_0_id_3f1bda78_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_style_index_0_id_0f81577f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_style_index_0_id_0f81577f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_style_index_0_id_0f81577f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_style_index_0_id_0f81577f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_style_index_0_id_0f81577f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/url-search-params-polyfill/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/url-search-params-polyfill/index.js ***! + \**********************************************************/ +/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { + +/**! + * url-search-params-polyfill + * + * @author Jerry Bendy (https://github.com/jerrybendy) + * @licence MIT + */ +(function(self) { + 'use strict'; + + var nativeURLSearchParams = (function() { + // #41 Fix issue in RN + try { + if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') { + return self.URLSearchParams; + } + } catch (e) {} + return null; + })(), + isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1', + // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus. + decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'), + isSupportSize = nativeURLSearchParams && 'size' in nativeURLSearchParams.prototype, + __URLSearchParams__ = "__URLSearchParams__", + // Fix bug in Edge which cannot encode ' &' correctly + encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() { + var ampersandTest = new nativeURLSearchParams(); + ampersandTest.append('s', ' &'); + return ampersandTest.toString() === 's=+%26'; + })() : true, + prototype = URLSearchParamsPolyfill.prototype, + iterable = !!(self.Symbol && self.Symbol.iterator); + + if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly && isSupportSize) { + return; + } + + + /** + * Make a URLSearchParams instance + * + * @param {object|string|URLSearchParams} search + * @constructor + */ + function URLSearchParamsPolyfill(search) { + search = search || ""; + + // support construct object with another URLSearchParams instance + if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) { + search = search.toString(); + } + this [__URLSearchParams__] = parseToDict(search); + } + + + /** + * Appends a specified key/value pair as a new search parameter. + * + * @param {string} name + * @param {string} value + */ + prototype.append = function(name, value) { + appendTo(this [__URLSearchParams__], name, value); + }; + + /** + * Deletes the given search parameter, and its associated value, + * from the list of all search parameters. + * + * @param {string} name + */ + prototype['delete'] = function(name) { + delete this [__URLSearchParams__] [name]; + }; + + /** + * Returns the first value associated to the given search parameter. + * + * @param {string} name + * @returns {string|null} + */ + prototype.get = function(name) { + var dict = this [__URLSearchParams__]; + return this.has(name) ? dict[name][0] : null; + }; + + /** + * Returns all the values association with a given search parameter. + * + * @param {string} name + * @returns {Array} + */ + prototype.getAll = function(name) { + var dict = this [__URLSearchParams__]; + return this.has(name) ? dict [name].slice(0) : []; + }; + + /** + * Returns a Boolean indicating if such a search parameter exists. + * + * @param {string} name + * @returns {boolean} + */ + prototype.has = function(name) { + return hasOwnProperty(this [__URLSearchParams__], name); + }; + + /** + * Sets the value associated to a given search parameter to + * the given value. If there were several values, delete the + * others. + * + * @param {string} name + * @param {string} value + */ + prototype.set = function set(name, value) { + this [__URLSearchParams__][name] = ['' + value]; + }; + + /** + * Returns a string containg a query string suitable for use in a URL. + * + * @returns {string} + */ + prototype.toString = function() { + var dict = this[__URLSearchParams__], query = [], i, key, name, value; + for (key in dict) { + name = encode(key); + for (i = 0, value = dict[key]; i < value.length; i++) { + query.push(name + '=' + encode(value[i])); + } + } + return query.join('&'); + }; + + // There is a bug in Safari 10.1 and `Proxy`ing it is not enough. + var useProxy = self.Proxy && nativeURLSearchParams && (!decodesPlusesCorrectly || !encodesAmpersandsCorrectly || !isSupportObjectConstructor || !isSupportSize); + var propValue; + if (useProxy) { + // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0 + propValue = new Proxy(nativeURLSearchParams, { + construct: function (target, args) { + return new target((new URLSearchParamsPolyfill(args[0]).toString())); + } + }) + // Chrome <=60 .toString() on a function proxy got error "Function.prototype.toString is not generic" + propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill); + } else { + propValue = URLSearchParamsPolyfill; + } + + /* + * Apply polyfill to global object and append other prototype into it + */ + Object.defineProperty(self, 'URLSearchParams', { + value: propValue + }); + + var USPProto = self.URLSearchParams.prototype; + + USPProto.polyfill = true; + + // Fix #54, `toString.call(new URLSearchParams)` will return correct value when Proxy not used + if (!useProxy && self.Symbol) { + USPProto[self.Symbol.toStringTag] = 'URLSearchParams'; + } + + /** + * + * @param {function} callback + * @param {object} thisArg + */ + if (!('forEach' in USPProto)) { + USPProto.forEach = function(callback, thisArg) { + var dict = parseToDict(this.toString()); + Object.getOwnPropertyNames(dict).forEach(function(name) { + dict[name].forEach(function(value) { + callback.call(thisArg, value, name, this); + }, this); + }, this); + }; + } + + /** + * Sort all name-value pairs + */ + if (!('sort' in USPProto)) { + USPProto.sort = function() { + var dict = parseToDict(this.toString()), keys = [], k, i, j; + for (k in dict) { + keys.push(k); + } + keys.sort(); + + for (i = 0; i < keys.length; i++) { + this['delete'](keys[i]); + } + for (i = 0; i < keys.length; i++) { + var key = keys[i], values = dict[key]; + for (j = 0; j < values.length; j++) { + this.append(key, values[j]); + } + } + }; + } + + /** + * Returns an iterator allowing to go through all keys of + * the key/value pairs contained in this object. + * + * @returns {function} + */ + if (!('keys' in USPProto)) { + USPProto.keys = function() { + var items = []; + this.forEach(function(item, name) { + items.push(name); + }); + return makeIterator(items); + }; + } + + /** + * Returns an iterator allowing to go through all values of + * the key/value pairs contained in this object. + * + * @returns {function} + */ + if (!('values' in USPProto)) { + USPProto.values = function() { + var items = []; + this.forEach(function(item) { + items.push(item); + }); + return makeIterator(items); + }; + } + + /** + * Returns an iterator allowing to go through all key/value + * pairs contained in this object. + * + * @returns {function} + */ + if (!('entries' in USPProto)) { + USPProto.entries = function() { + var items = []; + this.forEach(function(item, name) { + items.push([name, item]); + }); + return makeIterator(items); + }; + } + + if (iterable) { + USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries; + } + + if (!('size' in USPProto)) { + Object.defineProperty(USPProto, 'size', { + get: function () { + var dict = parseToDict(this.toString()) + if (USPProto === this) { + throw new TypeError('Illegal invocation at URLSearchParams.invokeGetter') + } + return Object.keys(dict).reduce(function (prev, cur) { + return prev + dict[cur].length; + }, 0); + } + }); + } + + function encode(str) { + var replace = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'\(\)~]|%20|%00/g, function(match) { + return replace[match]; + }); + } + + function decode(str) { + return str + .replace(/[ +]/g, '%20') + .replace(/(%[a-f0-9]{2})+/ig, function(match) { + return decodeURIComponent(match); + }); + } + + function makeIterator(arr) { + var iterator = { + next: function() { + var value = arr.shift(); + return {done: value === undefined, value: value}; + } + }; + + if (iterable) { + iterator[self.Symbol.iterator] = function() { + return iterator; + }; + } + + return iterator; + } + + function parseToDict(search) { + var dict = {}; + + if (typeof search === "object") { + // if `search` is an array, treat it as a sequence + if (isArray(search)) { + for (var i = 0; i < search.length; i++) { + var item = search[i]; + if (isArray(item) && item.length === 2) { + appendTo(dict, item[0], item[1]); + } else { + throw new TypeError("Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements"); + } + } + + } else { + for (var key in search) { + if (search.hasOwnProperty(key)) { + appendTo(dict, key, search[key]); + } + } + } + + } else { + // remove first '?' + if (search.indexOf("?") === 0) { + search = search.slice(1); + } + + var pairs = search.split("&"); + for (var j = 0; j < pairs.length; j++) { + var value = pairs [j], + index = value.indexOf('='); + + if (-1 < index) { + appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1))); + + } else { + if (value) { + appendTo(dict, decode(value), ''); + } + } + } + } + + return dict; + } + + function appendTo(dict, name, value) { + var val = typeof value === 'string' ? value : ( + value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value) + ); + + // #47 Prevent using `hasOwnProperty` as a property name + if (hasOwnProperty(dict, name)) { + dict[name].push(val); + } else { + dict[name] = [val]; + } + } + + function isArray(val) { + return !!val && '[object Array]' === Object.prototype.toString.call(val); + } + + function hasOwnProperty(obj, prop) { + return Object.prototype.hasOwnProperty.call(obj, prop); + } + +})(typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : (typeof window !== 'undefined' ? window : this)); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/ExternalShareAction.vue": +/*!*******************************************************************!*\ + !*** ./apps/files_sharing/src/components/ExternalShareAction.vue ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ExternalShareAction_vue_vue_type_template_id_27835356__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ExternalShareAction.vue?vue&type=template&id=27835356 */ "./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=template&id=27835356"); +/* harmony import */ var _ExternalShareAction_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ExternalShareAction.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ExternalShareAction_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _ExternalShareAction_vue_vue_type_template_id_27835356__WEBPACK_IMPORTED_MODULE_0__.render, + _ExternalShareAction_vue_vue_type_template_id_27835356__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/components/ExternalShareAction.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntry.vue": +/*!************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntry.vue ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingEntry_vue_vue_type_template_id_61240f7a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true */ "./apps/files_sharing/src/components/SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true"); +/* harmony import */ var _SharingEntry_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingEntry.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingEntry_vue_vue_type_style_index_0_id_61240f7a_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true */ "./apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingEntry_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingEntry_vue_vue_type_template_id_61240f7a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingEntry_vue_vue_type_template_id_61240f7a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "61240f7a", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/components/SharingEntry.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryInherited.vue": +/*!*********************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryInherited.vue ***! + \*********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingEntryInherited_vue_vue_type_template_id_06bd31b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true */ "./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true"); +/* harmony import */ var _SharingEntryInherited_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingEntryInherited.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingEntryInherited_vue_vue_type_style_index_0_id_06bd31b0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true */ "./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingEntryInherited_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingEntryInherited_vue_vue_type_template_id_06bd31b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingEntryInherited_vue_vue_type_template_id_06bd31b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "06bd31b0", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/components/SharingEntryInherited.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryInternal.vue": +/*!********************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryInternal.vue ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingEntryInternal_vue_vue_type_template_id_f55cfc52_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true */ "./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true"); +/* harmony import */ var _SharingEntryInternal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingEntryInternal.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingEntryInternal_vue_vue_type_style_index_0_id_f55cfc52_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true */ "./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingEntryInternal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingEntryInternal_vue_vue_type_template_id_f55cfc52_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingEntryInternal_vue_vue_type_template_id_f55cfc52_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "f55cfc52", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/components/SharingEntryInternal.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryLink.vue": +/*!****************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryLink.vue ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingEntryLink_vue_vue_type_template_id_7a675594_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true */ "./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true"); +/* harmony import */ var _SharingEntryLink_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingEntryLink.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingEntryLink_vue_vue_type_style_index_0_id_7a675594_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true */ "./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingEntryLink_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingEntryLink_vue_vue_type_template_id_7a675594_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingEntryLink_vue_vue_type_template_id_7a675594_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "7a675594", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/components/SharingEntryLink.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue": +/*!****************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingEntryQuickShareSelect_vue_vue_type_template_id_62b9dbb0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true */ "./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true"); +/* harmony import */ var _SharingEntryQuickShareSelect_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingEntryQuickShareSelect_vue_vue_type_style_index_0_id_62b9dbb0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true */ "./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingEntryQuickShareSelect_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingEntryQuickShareSelect_vue_vue_type_template_id_62b9dbb0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingEntryQuickShareSelect_vue_vue_type_template_id_62b9dbb0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "62b9dbb0", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntrySimple.vue": +/*!******************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntrySimple.vue ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingEntrySimple_vue_vue_type_template_id_354542cc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true */ "./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true"); +/* harmony import */ var _SharingEntrySimple_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingEntrySimple.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingEntrySimple_vue_vue_type_style_index_0_id_354542cc_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true */ "./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingEntrySimple_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingEntrySimple_vue_vue_type_template_id_354542cc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingEntrySimple_vue_vue_type_template_id_354542cc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "354542cc", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/components/SharingEntrySimple.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingInput.vue": +/*!************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingInput.vue ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingInput_vue_vue_type_template_id_39161a5c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingInput.vue?vue&type=template&id=39161a5c */ "./apps/files_sharing/src/components/SharingInput.vue?vue&type=template&id=39161a5c"); +/* harmony import */ var _SharingInput_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingInput.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingInput_vue_vue_type_style_index_0_id_39161a5c_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss */ "./apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingInput_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingInput_vue_vue_type_template_id_39161a5c__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingInput_vue_vue_type_template_id_39161a5c__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/components/SharingInput.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingDetailsTab.vue": +/*!************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingDetailsTab.vue ***! + \************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingDetailsTab_vue_vue_type_template_id_b968620e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true */ "./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true"); +/* harmony import */ var _SharingDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingDetailsTab.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingDetailsTab_vue_vue_type_style_index_0_id_b968620e_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true */ "./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingDetailsTab_vue_vue_type_template_id_b968620e_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingDetailsTab_vue_vue_type_template_id_b968620e_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "b968620e", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/views/SharingDetailsTab.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingInherited.vue": +/*!***********************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingInherited.vue ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingInherited_vue_vue_type_template_id_3f1bda78_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true */ "./apps/files_sharing/src/views/SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true"); +/* harmony import */ var _SharingInherited_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingInherited.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingInherited_vue_vue_type_style_index_0_id_3f1bda78_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true */ "./apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingInherited_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingInherited_vue_vue_type_template_id_3f1bda78_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingInherited_vue_vue_type_template_id_3f1bda78_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "3f1bda78", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/views/SharingInherited.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingLinkList.vue": +/*!**********************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingLinkList.vue ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingLinkList_vue_vue_type_template_id_dd248c84__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingLinkList.vue?vue&type=template&id=dd248c84 */ "./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=template&id=dd248c84"); +/* harmony import */ var _SharingLinkList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingLinkList.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _SharingLinkList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingLinkList_vue_vue_type_template_id_dd248c84__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingLinkList_vue_vue_type_template_id_dd248c84__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/views/SharingLinkList.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingList.vue": +/*!******************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingList.vue ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingList_vue_vue_type_template_id_698e26a4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingList.vue?vue&type=template&id=698e26a4 */ "./apps/files_sharing/src/views/SharingList.vue?vue&type=template&id=698e26a4"); +/* harmony import */ var _SharingList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingList.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _SharingList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingList_vue_vue_type_template_id_698e26a4__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingList_vue_vue_type_template_id_698e26a4__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/views/SharingList.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingTab.vue": +/*!*****************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingTab.vue ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SharingTab_vue_vue_type_template_id_0f81577f_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SharingTab.vue?vue&type=template&id=0f81577f&scoped=true */ "./apps/files_sharing/src/views/SharingTab.vue?vue&type=template&id=0f81577f&scoped=true"); +/* harmony import */ var _SharingTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./SharingTab.vue?vue&type=script&lang=js */ "./apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js"); +/* harmony import */ var _SharingTab_vue_vue_type_style_index_0_id_0f81577f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss */ "./apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _SharingTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _SharingTab_vue_vue_type_template_id_0f81577f_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _SharingTab_vue_vue_type_template_id_0f81577f_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "0f81577f", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files_sharing/src/views/SharingTab.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AccountCircleOutline.vue": +/*!*************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AccountCircleOutline.vue ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AccountCircleOutline_vue_vue_type_template_id_4f5873d1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AccountCircleOutline.vue?vue&type=template&id=4f5873d1 */ "./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=4f5873d1"); +/* harmony import */ var _AccountCircleOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AccountCircleOutline.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _AccountCircleOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _AccountCircleOutline_vue_vue_type_template_id_4f5873d1__WEBPACK_IMPORTED_MODULE_0__.render, + _AccountCircleOutline_vue_vue_type_template_id_4f5873d1__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/AccountCircleOutline.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js": +/*!************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js ***! + \************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "AccountCircleOutlineIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/CheckBold.vue": +/*!**************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/CheckBold.vue ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _CheckBold_vue_vue_type_template_id_486b2cb1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CheckBold.vue?vue&type=template&id=486b2cb1 */ "./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=486b2cb1"); +/* harmony import */ var _CheckBold_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CheckBold.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _CheckBold_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _CheckBold_vue_vue_type_template_id_486b2cb1__WEBPACK_IMPORTED_MODULE_0__.render, + _CheckBold_vue_vue_type_template_id_486b2cb1__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/CheckBold.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js": +/*!*************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js ***! + \*************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "CheckBoldIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/CircleOutline.vue": +/*!******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/CircleOutline.vue ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _CircleOutline_vue_vue_type_template_id_ad0ef454__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CircleOutline.vue?vue&type=template&id=ad0ef454 */ "./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=ad0ef454"); +/* harmony import */ var _CircleOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CircleOutline.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _CircleOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _CircleOutline_vue_vue_type_template_id_ad0ef454__WEBPACK_IMPORTED_MODULE_0__.render, + _CircleOutline_vue_vue_type_template_id_ad0ef454__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/CircleOutline.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js": +/*!*****************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js ***! + \*****************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "CircleOutlineIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ClipboardFlow.vue": +/*!******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ClipboardFlow.vue ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ClipboardFlow_vue_vue_type_template_id_2676ab68__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ClipboardFlow.vue?vue&type=template&id=2676ab68 */ "./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=template&id=2676ab68"); +/* harmony import */ var _ClipboardFlow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ClipboardFlow.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ClipboardFlow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _ClipboardFlow_vue_vue_type_template_id_2676ab68__WEBPACK_IMPORTED_MODULE_0__.render, + _ClipboardFlow_vue_vue_type_template_id_2676ab68__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ClipboardFlow.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=script&lang=js": +/*!*****************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=script&lang=js ***! + \*****************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "ClipboardFlowIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/DotsHorizontal.vue": +/*!*******************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/DotsHorizontal.vue ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _DotsHorizontal_vue_vue_type_template_id_3174c38c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./DotsHorizontal.vue?vue&type=template&id=3174c38c */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c"); +/* harmony import */ var _DotsHorizontal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./DotsHorizontal.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _DotsHorizontal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _DotsHorizontal_vue_vue_type_template_id_3174c38c__WEBPACK_IMPORTED_MODULE_0__.render, + _DotsHorizontal_vue_vue_type_template_id_3174c38c__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/DotsHorizontal.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js": +/*!******************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js ***! + \******************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "DotsHorizontalIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Email.vue": +/*!**********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Email.vue ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Email_vue_vue_type_template_id_503121c0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Email.vue?vue&type=template&id=503121c0 */ "./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0"); +/* harmony import */ var _Email_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Email.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Email_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _Email_vue_vue_type_template_id_503121c0__WEBPACK_IMPORTED_MODULE_0__.render, + _Email_vue_vue_type_template_id_503121c0__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Email.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js": +/*!*********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js ***! + \*********************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "EmailIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Exclamation.vue": +/*!****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Exclamation.vue ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Exclamation_vue_vue_type_template_id_34aa771e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Exclamation.vue?vue&type=template&id=34aa771e */ "./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=34aa771e"); +/* harmony import */ var _Exclamation_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Exclamation.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Exclamation_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _Exclamation_vue_vue_type_template_id_34aa771e__WEBPACK_IMPORTED_MODULE_0__.render, + _Exclamation_vue_vue_type_template_id_34aa771e__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Exclamation.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js": +/*!***************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js ***! + \***************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "ExclamationIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Eye.vue": +/*!********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Eye.vue ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Eye_vue_vue_type_template_id_6cfe2635__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Eye.vue?vue&type=template&id=6cfe2635 */ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635"); +/* harmony import */ var _Eye_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Eye.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Eye_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _Eye_vue_vue_type_template_id_6cfe2635__WEBPACK_IMPORTED_MODULE_0__.render, + _Eye_vue_vue_type_template_id_6cfe2635__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Eye.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js": +/*!*******************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js ***! + \*******************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "EyeIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/EyeOutline.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/EyeOutline.vue ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _EyeOutline_vue_vue_type_template_id_7b68237d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./EyeOutline.vue?vue&type=template&id=7b68237d */ "./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=7b68237d"); +/* harmony import */ var _EyeOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./EyeOutline.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _EyeOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _EyeOutline_vue_vue_type_template_id_7b68237d__WEBPACK_IMPORTED_MODULE_0__.render, + _EyeOutline_vue_vue_type_template_id_7b68237d__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/EyeOutline.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js": +/*!**************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js ***! + \**************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "EyeOutlineIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FileUpload.vue": +/*!***************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FileUpload.vue ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _FileUpload_vue_vue_type_template_id_78fe596e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./FileUpload.vue?vue&type=template&id=78fe596e */ "./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=78fe596e"); +/* harmony import */ var _FileUpload_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FileUpload.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _FileUpload_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _FileUpload_vue_vue_type_template_id_78fe596e__WEBPACK_IMPORTED_MODULE_0__.render, + _FileUpload_vue_vue_type_template_id_78fe596e__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/FileUpload.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js": +/*!**************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js ***! + \**************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "FileUploadIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Lock.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Lock.vue ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Lock_vue_vue_type_template_id_0e7c8452__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Lock.vue?vue&type=template&id=0e7c8452 */ "./node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=0e7c8452"); +/* harmony import */ var _Lock_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Lock.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Lock_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _Lock_vue_vue_type_template_id_0e7c8452__WEBPACK_IMPORTED_MODULE_0__.render, + _Lock_vue_vue_type_template_id_0e7c8452__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Lock.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js": +/*!********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js ***! + \********************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "LockIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Qrcode.vue": +/*!***********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Qrcode.vue ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Qrcode_vue_vue_type_template_id_ff95848c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Qrcode.vue?vue&type=template&id=ff95848c */ "./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=ff95848c"); +/* harmony import */ var _Qrcode_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Qrcode.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Qrcode_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _Qrcode_vue_vue_type_template_id_ff95848c__WEBPACK_IMPORTED_MODULE_0__.render, + _Qrcode_vue_vue_type_template_id_ff95848c__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Qrcode.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js": +/*!**********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js ***! + \**********************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "QrcodeIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ShareCircle.vue": +/*!****************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ShareCircle.vue ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ShareCircle_vue_vue_type_template_id_5c5332da__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ShareCircle.vue?vue&type=template&id=5c5332da */ "./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=5c5332da"); +/* harmony import */ var _ShareCircle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShareCircle.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _ShareCircle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _ShareCircle_vue_vue_type_template_id_5c5332da__WEBPACK_IMPORTED_MODULE_0__.render, + _ShareCircle_vue_vue_type_template_id_5c5332da__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/ShareCircle.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js": +/*!***************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js ***! + \***************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "ShareCircleIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TriangleSmallDown.vue": +/*!**********************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TriangleSmallDown.vue ***! + \**********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _TriangleSmallDown_vue_vue_type_template_id_7ca50825__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TriangleSmallDown.vue?vue&type=template&id=7ca50825 */ "./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=7ca50825"); +/* harmony import */ var _TriangleSmallDown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TriangleSmallDown.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _TriangleSmallDown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _TriangleSmallDown_vue_vue_type_template_id_7ca50825__WEBPACK_IMPORTED_MODULE_0__.render, + _TriangleSmallDown_vue_vue_type_template_id_7ca50825__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/TriangleSmallDown.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js": +/*!*********************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js ***! + \*********************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "TriangleSmallDownIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Tune.vue": +/*!*********************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Tune.vue ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Tune_vue_vue_type_template_id_f0bd6bb8__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Tune.vue?vue&type=template&id=f0bd6bb8 */ "./node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=f0bd6bb8"); +/* harmony import */ var _Tune_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Tune.vue?vue&type=script&lang=js */ "./node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js"); +/* harmony import */ var _vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _Tune_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _Tune_vue_vue_type_template_id_f0bd6bb8__WEBPACK_IMPORTED_MODULE_0__.render, + _Tune_vue_vue_type_template_id_f0bd6bb8__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "node_modules/vue-material-design-icons/Tune.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js": +/*!********************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js ***! + \********************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: "TuneIcon", + emits: ['click'], + props: { + title: { + type: String, + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js": +/*!*******************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ExternalShareAction_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ExternalShareAction_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js": +/*!************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js ***! + \************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js": +/*!*********************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js": +/*!********************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js": +/*!****************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js": +/*!****************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js": +/*!******************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js": +/*!************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js ***! + \************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js": +/*!************************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js ***! + \************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js": +/*!***********************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js": +/*!**********************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingLinkList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingLinkList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js": +/*!******************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js": +/*!*****************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=template&id=27835356": +/*!*************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=template&id=27835356 ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ExternalShareAction_vue_vue_type_template_id_27835356__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ExternalShareAction_vue_vue_type_template_id_27835356__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ExternalShareAction_vue_vue_type_template_id_27835356__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.vue?vue&type=template&id=27835356 */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=template&id=27835356"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true": +/*!******************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true ***! + \******************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_template_id_61240f7a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_template_id_61240f7a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_template_id_61240f7a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true": +/*!***************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true ***! + \***************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_template_id_06bd31b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_template_id_06bd31b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_template_id_06bd31b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true": +/*!**************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true ***! + \**************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_template_id_f55cfc52_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_template_id_f55cfc52_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_template_id_f55cfc52_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true": +/*!**********************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_template_id_7a675594_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_template_id_7a675594_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_template_id_7a675594_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true": +/*!**********************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true ***! + \**********************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_template_id_62b9dbb0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_template_id_62b9dbb0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_template_id_62b9dbb0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true": +/*!************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_template_id_354542cc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_template_id_354542cc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_template_id_354542cc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingInput.vue?vue&type=template&id=39161a5c": +/*!******************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingInput.vue?vue&type=template&id=39161a5c ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_template_id_39161a5c__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_template_id_39161a5c__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_template_id_39161a5c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=template&id=39161a5c */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=template&id=39161a5c"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true": +/*!******************************************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true ***! + \******************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_template_id_b968620e_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_template_id_b968620e_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_template_id_b968620e_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true": +/*!*****************************************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true ***! + \*****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_template_id_3f1bda78_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_template_id_3f1bda78_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_template_id_3f1bda78_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=template&id=dd248c84": +/*!****************************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=template&id=dd248c84 ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingLinkList_vue_vue_type_template_id_dd248c84__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingLinkList_vue_vue_type_template_id_dd248c84__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingLinkList_vue_vue_type_template_id_dd248c84__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=template&id=dd248c84 */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingLinkList.vue?vue&type=template&id=dd248c84"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingList.vue?vue&type=template&id=698e26a4": +/*!************************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingList.vue?vue&type=template&id=698e26a4 ***! + \************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingList_vue_vue_type_template_id_698e26a4__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingList_vue_vue_type_template_id_698e26a4__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingList_vue_vue_type_template_id_698e26a4__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=template&id=698e26a4 */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingList.vue?vue&type=template&id=698e26a4"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingTab.vue?vue&type=template&id=0f81577f&scoped=true": +/*!***********************************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingTab.vue?vue&type=template&id=0f81577f&scoped=true ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_template_id_0f81577f_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_template_id_0f81577f_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_template_id_0f81577f_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=template&id=0f81577f&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=template&id=0f81577f&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true": +/*!*********************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true ***! + \*********************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntry_vue_vue_type_style_index_0_id_61240f7a_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true": +/*!******************************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true ***! + \******************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInherited_vue_vue_type_style_index_0_id_06bd31b0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true": +/*!*****************************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true ***! + \*****************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryInternal_vue_vue_type_style_index_0_id_f55cfc52_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true": +/*!*************************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true ***! + \*************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryLink_vue_vue_type_style_index_0_id_7a675594_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true": +/*!*************************************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true ***! + \*************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntryQuickShareSelect_vue_vue_type_style_index_0_id_62b9dbb0_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true": +/*!***************************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true ***! + \***************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingEntrySimple_vue_vue_type_style_index_0_id_354542cc_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss": +/*!*********************************************************************************************************!*\ + !*** ./apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss ***! + \*********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInput_vue_vue_type_style_index_0_id_39161a5c_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true": +/*!*********************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true ***! + \*********************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingDetailsTab_vue_vue_type_style_index_0_id_b968620e_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true": +/*!********************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true ***! + \********************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingInherited_vue_vue_type_style_index_0_id_3f1bda78_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss": +/*!**************************************************************************************************************!*\ + !*** ./apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss ***! + \**************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SharingTab_vue_vue_type_style_index_0_id_0f81577f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_AccountCircleOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_AccountCircleOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_CheckBold_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_CheckBold_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_CircleOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_CircleOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=script&lang=js": +/*!******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=script&lang=js ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ClipboardFlow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./ClipboardFlow.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_ClipboardFlow_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js": +/*!**********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Exclamation_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_Exclamation_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js": +/*!********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_EyeOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_EyeOutline_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_FileUpload_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_FileUpload_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js": +/*!*********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Lock_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_Lock_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js": +/*!***********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Qrcode_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_Qrcode_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_ShareCircle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_ShareCircle_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js ***! + \**********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_TriangleSmallDown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_TriangleSmallDown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js": +/*!*********************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_index_js_vue_loader_options_Tune_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js */ "./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_vue_loader_lib_index_js_vue_loader_options_Tune_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=4f5873d1": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=4f5873d1 ***! + \*******************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_AccountCircleOutline_vue_vue_type_template_id_4f5873d1__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_AccountCircleOutline_vue_vue_type_template_id_4f5873d1__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_AccountCircleOutline_vue_vue_type_template_id_4f5873d1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=template&id=4f5873d1 */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=4f5873d1"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=486b2cb1": +/*!********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=486b2cb1 ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_CheckBold_vue_vue_type_template_id_486b2cb1__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_CheckBold_vue_vue_type_template_id_486b2cb1__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_CheckBold_vue_vue_type_template_id_486b2cb1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=template&id=486b2cb1 */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=486b2cb1"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=ad0ef454": +/*!************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=ad0ef454 ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_CircleOutline_vue_vue_type_template_id_ad0ef454__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_CircleOutline_vue_vue_type_template_id_ad0ef454__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_CircleOutline_vue_vue_type_template_id_ad0ef454__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=template&id=ad0ef454 */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=ad0ef454"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=template&id=2676ab68": +/*!************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=template&id=2676ab68 ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_ClipboardFlow_vue_vue_type_template_id_2676ab68__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_ClipboardFlow_vue_vue_type_template_id_2676ab68__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_ClipboardFlow_vue_vue_type_template_id_2676ab68__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./ClipboardFlow.vue?vue&type=template&id=2676ab68 */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=template&id=2676ab68"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c": +/*!*************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_template_id_3174c38c__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_template_id_3174c38c__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_DotsHorizontal_vue_vue_type_template_id_3174c38c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=template&id=3174c38c */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0": +/*!****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0 ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_template_id_503121c0__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_template_id_503121c0__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Email_vue_vue_type_template_id_503121c0__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=template&id=503121c0 */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=34aa771e": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=34aa771e ***! + \**********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Exclamation_vue_vue_type_template_id_34aa771e__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Exclamation_vue_vue_type_template_id_34aa771e__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Exclamation_vue_vue_type_template_id_34aa771e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=template&id=34aa771e */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=34aa771e"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635": +/*!**************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635 ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_template_id_6cfe2635__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_template_id_6cfe2635__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Eye_vue_vue_type_template_id_6cfe2635__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=template&id=6cfe2635 */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=7b68237d": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=7b68237d ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_EyeOutline_vue_vue_type_template_id_7b68237d__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_EyeOutline_vue_vue_type_template_id_7b68237d__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_EyeOutline_vue_vue_type_template_id_7b68237d__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=template&id=7b68237d */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=7b68237d"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=78fe596e": +/*!*********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=78fe596e ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_FileUpload_vue_vue_type_template_id_78fe596e__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_FileUpload_vue_vue_type_template_id_78fe596e__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_FileUpload_vue_vue_type_template_id_78fe596e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=template&id=78fe596e */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=78fe596e"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=0e7c8452": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=0e7c8452 ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Lock_vue_vue_type_template_id_0e7c8452__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Lock_vue_vue_type_template_id_0e7c8452__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Lock_vue_vue_type_template_id_0e7c8452__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=template&id=0e7c8452 */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=0e7c8452"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=ff95848c": +/*!*****************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=ff95848c ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Qrcode_vue_vue_type_template_id_ff95848c__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Qrcode_vue_vue_type_template_id_ff95848c__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Qrcode_vue_vue_type_template_id_ff95848c__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=template&id=ff95848c */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=ff95848c"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=5c5332da": +/*!**********************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=5c5332da ***! + \**********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_ShareCircle_vue_vue_type_template_id_5c5332da__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_ShareCircle_vue_vue_type_template_id_5c5332da__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_ShareCircle_vue_vue_type_template_id_5c5332da__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=template&id=5c5332da */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=5c5332da"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=7ca50825": +/*!****************************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=7ca50825 ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_TriangleSmallDown_vue_vue_type_template_id_7ca50825__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_TriangleSmallDown_vue_vue_type_template_id_7ca50825__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_TriangleSmallDown_vue_vue_type_template_id_7ca50825__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=template&id=7ca50825 */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=7ca50825"); + + +/***/ }), + +/***/ "./node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=f0bd6bb8": +/*!***************************************************************************************!*\ + !*** ./node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=f0bd6bb8 ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Tune_vue_vue_type_template_id_f0bd6bb8__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Tune_vue_vue_type_template_id_f0bd6bb8__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_vue_loader_lib_index_js_vue_loader_options_Tune_vue_vue_type_template_id_f0bd6bb8__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=template&id=f0bd6bb8 */ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=f0bd6bb8"); + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=4f5873d1": +/*!***********************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=4f5873d1 ***! + \***********************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon account-circle-outline-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=486b2cb1": +/*!************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=486b2cb1 ***! + \************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon check-bold-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=ad0ef454": +/*!****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=ad0ef454 ***! + \****************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon circle-outline-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=template&id=2676ab68": +/*!****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=template&id=2676ab68 ***! + \****************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon clipboard-flow-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M15,19L11,15H14V8H16V15H19L15,19M10,16H8V9H5L9,5L13,9H10V16", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c": +/*!*****************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c ***! + \*****************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon dots-horizontal-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0": +/*!********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0 ***! + \********************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon email-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=34aa771e": +/*!**************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=34aa771e ***! + \**************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon exclamation-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635": +/*!******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635 ***! + \******************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon eye-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=7b68237d": +/*!*************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=7b68237d ***! + \*************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon eye-outline-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=78fe596e": +/*!*************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=78fe596e ***! + \*************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon file-upload-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=0e7c8452": +/*!*******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=0e7c8452 ***! + \*******************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon lock-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=ff95848c": +/*!*********************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=ff95848c ***! + \*********************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon qrcode-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=5c5332da": +/*!**************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=5c5332da ***! + \**************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon share-circle-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=7ca50825": +/*!********************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=7ca50825 ***! + \********************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon triangle-small-down-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c("path", { attrs: { d: "M8 9H16L12 16" } }, [ + _vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e(), + ]), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=f0bd6bb8": +/*!*******************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=f0bd6bb8 ***! + \*******************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c + return _c( + "span", + _vm._b( + { + staticClass: "material-design-icon tune-icon", + attrs: { + "aria-hidden": _vm.title ? null : true, + "aria-label": _vm.title, + role: "img", + }, + on: { + click: function ($event) { + return _vm.$emit("click", $event) + }, + }, + }, + "span", + _vm.$attrs, + false + ), + [ + _c( + "svg", + { + staticClass: "material-design-icon__svg", + attrs: { + fill: _vm.fillColor, + width: _vm.size, + height: _vm.size, + viewBox: "0 0 24 24", + }, + }, + [ + _c( + "path", + { + attrs: { + d: "M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z", + }, + }, + [_vm.title ? _c("title", [_vm._v(_vm._s(_vm.title))]) : _vm._e()] + ), + ] + ), + ] + ) +} +var staticRenderFns = [] +render._withStripped = true + + + +/***/ }), + +/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e": +/*!***********************************************************************************************************************************************************************************************************************************!*\ + !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e ***! + \***********************************************************************************************************************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"; + +/***/ }), + +/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e": +/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e ***! + \******************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"; + +/***/ }), + +/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e": +/*!******************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e ***! + \******************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"; + +/***/ }), + +/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e ***! + \***************************************************************************************************************************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"; + +/***/ }), + +/***/ "./node_modules/lodash-es/_Symbol.js": +/*!*******************************************!*\ + !*** ./node_modules/lodash-es/_Symbol.js ***! + \*******************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ "./node_modules/lodash-es/_root.js"); + + +/** Built-in value references. */ +var Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Symbol; + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Symbol); + + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseGetTag.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_baseGetTag.js ***! + \***********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ "./node_modules/lodash-es/_Symbol.js"); +/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_getRawTag.js */ "./node_modules/lodash-es/_getRawTag.js"); +/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_objectToString.js */ "./node_modules/lodash-es/_objectToString.js"); + + + + +/** `Object#toString` result references. */ +var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + +/** Built-in value references. */ +var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? (0,_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) + : (0,_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseGetTag); + + +/***/ }), + +/***/ "./node_modules/lodash-es/_baseTrim.js": +/*!*********************************************!*\ + !*** ./node_modules/lodash-es/_baseTrim.js ***! + \*********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _trimmedEndIndex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_trimmedEndIndex.js */ "./node_modules/lodash-es/_trimmedEndIndex.js"); + + +/** Used to match leading whitespace. */ +var reTrimStart = /^\s+/; + +/** + * The base implementation of `_.trim`. + * + * @private + * @param {string} string The string to trim. + * @returns {string} Returns the trimmed string. + */ +function baseTrim(string) { + return string + ? string.slice(0, (0,_trimmedEndIndex_js__WEBPACK_IMPORTED_MODULE_0__["default"])(string) + 1).replace(reTrimStart, '') + : string; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (baseTrim); + + +/***/ }), + +/***/ "./node_modules/lodash-es/_freeGlobal.js": +/*!***********************************************!*\ + !*** ./node_modules/lodash-es/_freeGlobal.js ***! + \***********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (freeGlobal); + + +/***/ }), + +/***/ "./node_modules/lodash-es/_getRawTag.js": +/*!**********************************************!*\ + !*** ./node_modules/lodash-es/_getRawTag.js ***! + \**********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_Symbol.js */ "./node_modules/lodash-es/_Symbol.js"); + + +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Built-in value references. */ +var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getRawTag); + + +/***/ }), + +/***/ "./node_modules/lodash-es/_objectToString.js": +/*!***************************************************!*\ + !*** ./node_modules/lodash-es/_objectToString.js ***! + \***************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** Used for built-in method references. */ +var objectProto = Object.prototype; + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (objectToString); + + +/***/ }), + +/***/ "./node_modules/lodash-es/_root.js": +/*!*****************************************!*\ + !*** ./node_modules/lodash-es/_root.js ***! + \*****************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_freeGlobal.js */ "./node_modules/lodash-es/_freeGlobal.js"); + + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')(); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (root); + + +/***/ }), + +/***/ "./node_modules/lodash-es/_trimmedEndIndex.js": +/*!****************************************************!*\ + !*** ./node_modules/lodash-es/_trimmedEndIndex.js ***! + \****************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** Used to match a single whitespace character. */ +var reWhitespace = /\s/; + +/** + * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace + * character of `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the index of the last non-whitespace character. + */ +function trimmedEndIndex(string) { + var index = string.length; + + while (index-- && reWhitespace.test(string.charAt(index))) {} + return index; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (trimmedEndIndex); + + +/***/ }), + +/***/ "./node_modules/lodash-es/debounce.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/debounce.js ***! + \********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObject.js */ "./node_modules/lodash-es/isObject.js"); +/* harmony import */ var _now_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./now.js */ "./node_modules/lodash-es/now.js"); +/* harmony import */ var _toNumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./toNumber.js */ "./node_modules/lodash-es/toNumber.js"); + + + + +/** Error message constants. */ +var FUNC_ERROR_TEXT = 'Expected a function'; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeMax = Math.max, + nativeMin = Math.min; + +/** + * Creates a debounced function that delays invoking `func` until after `wait` + * milliseconds have elapsed since the last time the debounced function was + * invoked. The debounced function comes with a `cancel` method to cancel + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide `options` to indicate whether `func` should be invoked on the + * leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent + * calls to the debounced function return the result of the last `func` + * invocation. + * + * **Note:** If `leading` and `trailing` options are `true`, `func` is + * invoked on the trailing edge of the timeout only if the debounced function + * is invoked more than once during the `wait` timeout. + * + * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred + * until to the next tick, similar to `setTimeout` with a timeout of `0`. + * + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * for details over the differences between `_.debounce` and `_.throttle`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to debounce. + * @param {number} [wait=0] The number of milliseconds to delay. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. + * @returns {Function} Returns the new debounced function. + * @example + * + * // Avoid costly calculations while the window size is in flux. + * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); + * + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { + * 'leading': true, + * 'trailing': false + * })); + * + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * var source = new EventSource('/stream'); + * jQuery(source).on('message', debounced); + * + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); + */ +function debounce(func, wait, options) { + var lastArgs, + lastThis, + maxWait, + result, + timerId, + lastCallTime, + lastInvokeTime = 0, + leading = false, + maxing = false, + trailing = true; + + if (typeof func != 'function') { + throw new TypeError(FUNC_ERROR_TEXT); + } + wait = (0,_toNumber_js__WEBPACK_IMPORTED_MODULE_0__["default"])(wait) || 0; + if ((0,_isObject_js__WEBPACK_IMPORTED_MODULE_1__["default"])(options)) { + leading = !!options.leading; + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax((0,_toNumber_js__WEBPACK_IMPORTED_MODULE_0__["default"])(options.maxWait) || 0, wait) : maxWait; + trailing = 'trailing' in options ? !!options.trailing : trailing; + } + + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + timeWaiting = wait - timeSinceLastCall; + + return maxing + ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) + : timeWaiting; + } + + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return (lastCallTime === undefined || (timeSinceLastCall >= wait) || + (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); + } + + function timerExpired() { + var time = (0,_now_js__WEBPACK_IMPORTED_MODULE_2__["default"])(); + if (shouldInvoke(time)) { + return trailingEdge(time); + } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); + } + lastArgs = lastThis = undefined; + return result; + } + + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); + } + lastInvokeTime = 0; + lastArgs = lastCallTime = lastThis = timerId = undefined; + } + + function flush() { + return timerId === undefined ? result : trailingEdge((0,_now_js__WEBPACK_IMPORTED_MODULE_2__["default"])()); + } + + function debounced() { + var time = (0,_now_js__WEBPACK_IMPORTED_MODULE_2__["default"])(), + isInvoking = shouldInvoke(time); + + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); + } + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); + } + } + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); + } + return result; + } + debounced.cancel = cancel; + debounced.flush = flush; + return debounced; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (debounce); + + +/***/ }), + +/***/ "./node_modules/lodash-es/isObject.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isObject.js ***! + \********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isObject); + + +/***/ }), + +/***/ "./node_modules/lodash-es/isObjectLike.js": +/*!************************************************!*\ + !*** ./node_modules/lodash-es/isObjectLike.js ***! + \************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isObjectLike); + + +/***/ }), + +/***/ "./node_modules/lodash-es/isSymbol.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/isSymbol.js ***! + \********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./_baseGetTag.js */ "./node_modules/lodash-es/_baseGetTag.js"); +/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isObjectLike.js */ "./node_modules/lodash-es/isObjectLike.js"); + + + +/** `Object#toString` result references. */ +var symbolTag = '[object Symbol]'; + +/** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ +function isSymbol(value) { + return typeof value == 'symbol' || + ((0,_isObjectLike_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) && (0,_baseGetTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) == symbolTag); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isSymbol); + + +/***/ }), + +/***/ "./node_modules/lodash-es/now.js": +/*!***************************************!*\ + !*** ./node_modules/lodash-es/now.js ***! + \***************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_root.js */ "./node_modules/lodash-es/_root.js"); + + +/** + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Date + * @returns {number} Returns the timestamp. + * @example + * + * _.defer(function(stamp) { + * console.log(_.now() - stamp); + * }, _.now()); + * // => Logs the number of milliseconds it took for the deferred invocation. + */ +var now = function() { + return _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Date.now(); +}; + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (now); + + +/***/ }), + +/***/ "./node_modules/lodash-es/toNumber.js": +/*!********************************************!*\ + !*** ./node_modules/lodash-es/toNumber.js ***! + \********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _baseTrim_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./_baseTrim.js */ "./node_modules/lodash-es/_baseTrim.js"); +/* harmony import */ var _isObject_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./isObject.js */ "./node_modules/lodash-es/isObject.js"); +/* harmony import */ var _isSymbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./isSymbol.js */ "./node_modules/lodash-es/isSymbol.js"); + + + + +/** Used as references for various `Number` constants. */ +var NAN = 0 / 0; + +/** Used to detect bad signed hexadecimal string values. */ +var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + +/** Used to detect binary string values. */ +var reIsBinary = /^0b[01]+$/i; + +/** Used to detect octal string values. */ +var reIsOctal = /^0o[0-7]+$/i; + +/** Built-in method references without a dependency on `root`. */ +var freeParseInt = parseInt; + +/** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ +function toNumber(value) { + if (typeof value == 'number') { + return value; + } + if ((0,_isSymbol_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value)) { + return NAN; + } + if ((0,_isObject_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = (0,_isObject_js__WEBPACK_IMPORTED_MODULE_1__["default"])(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = (0,_baseTrim_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); +} + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (toNumber); + + +/***/ }), + +/***/ "./node_modules/nextcloud-vue-collections/dist/index.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/nextcloud-vue-collections/dist/index.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ CollectionList: () => (/* binding */ Q), +/* harmony export */ CollectionListItem: () => (/* binding */ j) +/* harmony export */ }); +/* harmony import */ var _assets_index_Au1Gr_G6_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./assets/index-Au1Gr_G6.css */ "./node_modules/nextcloud-vue-collections/dist/assets/index-Au1Gr_G6.css"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAvatar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAvatar.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcSelect.js */ "./node_modules/@nextcloud/vue/dist/Components/NcSelect.mjs"); +/* harmony import */ var lodash_es_debounce_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash-es/debounce.js */ "./node_modules/lodash-es/debounce.js"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActions.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActions.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcActionButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcActionButton.mjs"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/nextcloud-vue-collections/node_modules/@nextcloud/router/dist/index.js"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + + + + +/* + * @copyright Copyright (c) 2019 Julius Härtl + * + * @author Julius Härtl + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +class D { + constructor() { + this.http = _nextcloud_axios__WEBPACK_IMPORTED_MODULE_5__["default"]; + } + listCollection(e) { + return this.http.get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_6__.generateOcsUrl)("collaboration/resources/collections/{collectionId}", { collectionId: e })); + } + renameCollection(e, o) { + return this.http.put((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_6__.generateOcsUrl)("collaboration/resources/collections/{collectionId}", { collectionId: e }), { + collectionName: o + }).then((n) => n.data.ocs.data); + } + getCollectionsByResource(e, o) { + return this.http.get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_6__.generateOcsUrl)("collaboration/resources/{resourceType}/{resourceId}", { resourceType: e, resourceId: o })).then((n) => n.data.ocs.data); + } + createCollection(e, o, n) { + return this.http.post((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_6__.generateOcsUrl)("collaboration/resources/{resourceType}/{resourceId}", { resourceType: e, resourceId: o }), { + name: n + }).then((r) => r.data.ocs.data); + } + addResource(e, o, n) { + return n = "" + n, this.http.post((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_6__.generateOcsUrl)("collaboration/resources/collections/{collectionId}", { collectionId: e }), { + resourceType: o, + resourceId: n + }).then((r) => r.data.ocs.data); + } + removeResource(e, o, n) { + return this.http.delete((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_6__.generateOcsUrl)("collaboration/resources/collections/{collectionId}", { collectionId: e }), { params: { resourceType: o, resourceId: n } }).then((r) => r.data.ocs.data); + } + search(e) { + return this.http.get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_6__.generateOcsUrl)("collaboration/resources/collections/search/{query}", { query: e })).then((o) => o.data.ocs.data); + } +} +const p = new D(); +/* + * @copyright Copyright (c) 2019 Julius Härtl + * + * @author Julius Härtl + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +const u = vue__WEBPACK_IMPORTED_MODULE_7__["default"].observable({ + collections: [] +}), h = { + addCollections(s) { + (0,vue__WEBPACK_IMPORTED_MODULE_7__.set)(u, "collections", s); + }, + addCollection(s) { + u.collections.push(s); + }, + removeCollection(s) { + (0,vue__WEBPACK_IMPORTED_MODULE_7__.set)(u, "collections", u.collections.filter((e) => e.id !== s)); + }, + updateCollection(s) { + const e = u.collections.findIndex((o) => o.id === s.id); + e !== -1 ? (0,vue__WEBPACK_IMPORTED_MODULE_7__.set)(u.collections, e, s) : u.collections.push(s); + } +}, l = { + fetchCollectionsByResource({ resourceType: s, resourceId: e }) { + return p.getCollectionsByResource(s, e).then((o) => (h.addCollections(o), o)); + }, + createCollection({ baseResourceType: s, baseResourceId: e, resourceType: o, resourceId: n, name: r }) { + return p.createCollection(s, e, r).then((m) => { + h.addCollection(m), l.addResourceToCollection({ + collectionId: m.id, + resourceType: o, + resourceId: n + }); + }); + }, + renameCollection({ collectionId: s, name: e }) { + return p.renameCollection(s, e).then((o) => (h.updateCollection(o), o)); + }, + addResourceToCollection({ collectionId: s, resourceType: e, resourceId: o }) { + return p.addResource(s, e, o).then((n) => (h.updateCollection(n), n)); + }, + removeResource({ collectionId: s, resourceType: e, resourceId: o }) { + return p.removeResource(s, e, o).then((n) => { + n.resources.length > 0 ? h.updateCollection(n) : h.removeCollection(n); + }); + }, + search(s) { + return p.search(s); + } +}; +function R(s, e, o, n, r, m, _, I) { + var i = typeof s == "function" ? s.options : s; + e && (i.render = e, i.staticRenderFns = o, i._compiled = !0), n && (i.functional = !0), m && (i._scopeId = "data-v-" + m); + var a; + if (_ ? (a = function(c) { + c = c || // cached call + this.$vnode && this.$vnode.ssrContext || // stateful + this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !c && typeof __VUE_SSR_CONTEXT__ < "u" && (c = __VUE_SSR_CONTEXT__), r && r.call(this, c), c && c._registeredComponents && c._registeredComponents.add(_); + }, i._ssrRegister = a) : r && (a = I ? function() { + r.call( + this, + (i.functional ? this.parent : this).$root.$options.shadowRoot + ); + } : r), a) + if (i.functional) { + i._injectStyles = a; + var b = i.render; + i.render = function(N, v) { + return a.call(v), b(N, v); + }; + } else { + var C = i.beforeCreate; + i.beforeCreate = C ? [].concat(C, a) : [a]; + } + return { + exports: s, + options: i + }; +} +const B = { + name: "CollectionListItem", + components: { + NcAvatar: _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_1__["default"], + NcActions: _nextcloud_vue_dist_Components_NcActions_js__WEBPACK_IMPORTED_MODULE_3__["default"], + NcActionButton: _nextcloud_vue_dist_Components_NcActionButton_js__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + props: { + collection: { + type: Object, + default: null + } + }, + data() { + return { + detailsOpen: !1, + newName: null, + error: {} + }; + }, + computed: { + getIcon() { + return (s) => [s.iconClass]; + }, + typeClass() { + return (s) => "resource-type-" + s.type; + }, + limitedResources() { + return (s) => s.resources ? s.resources.slice(0, 2) : []; + }, + iconUrl() { + return (s) => s.mimetype ? OC.MimeType.getIconUrl(s.mimetype) : s.iconUrl ? s.iconUrl : ""; + } + }, + methods: { + toggleDetails() { + this.detailsOpen = !this.detailsOpen; + }, + showDetails() { + this.detailsOpen = !0; + }, + hideDetails() { + this.detailsOpen = !1; + }, + removeResource(s, e) { + l.removeResource({ + collectionId: s.id, + resourceType: e.type, + resourceId: e.id + }); + }, + openRename() { + this.newName = this.collection.name; + }, + renameCollection() { + if (this.newName === "") { + this.newName = null; + return; + } + l.renameCollection({ + collectionId: this.collection.id, + name: this.newName + }).then((s) => { + this.newName = null; + }).catch((s) => { + this.$set(this.error, "rename", t("core", "Failed to rename the project")), console.error(s), setTimeout(() => { + (0,vue__WEBPACK_IMPORTED_MODULE_7__.set)(this.error, "rename", null); + }, 3e3); + }); + } + } +}; +var E = function() { + var e = this, o = e._self._c; + return o("li", { staticClass: "collection-list-item" }, [o("NcAvatar", { staticClass: "collection-avatar", attrs: { "display-name": e.collection.name, "allow-placeholder": "" } }), e.newName === null ? o("span", { staticClass: "collection-item-name", attrs: { title: "" }, on: { click: e.showDetails } }, [e._v(e._s(e.collection.name))]) : o("form", { class: { shouldshake: e.error.rename }, on: { submit: function(n) { + return n.preventDefault(), e.renameCollection.apply(null, arguments); + } } }, [o("input", { directives: [{ name: "model", rawName: "v-model", value: e.newName, expression: "newName" }], attrs: { type: "text", autocomplete: "off", autocapitalize: "off" }, domProps: { value: e.newName }, on: { input: function(n) { + n.target.composing || (e.newName = n.target.value); + } } }), o("input", { staticClass: "icon-confirm", attrs: { type: "submit", value: "" } })]), !e.detailsOpen && e.newName === null ? o("div", { staticClass: "linked-icons" }, e._l(e.limitedResources(e.collection), function(n) { + return o("a", { key: n.type + "|" + n.id, class: e.typeClass(n), attrs: { title: n.name, href: n.link } }, [o("img", { attrs: { src: e.iconUrl(n) } })]); + }), 0) : e._e(), e.newName === null ? o("span", { staticClass: "sharingOptionsGroup" }, [o("NcActions", [o("NcActionButton", { attrs: { icon: "icon-info" }, on: { click: function(n) { + return n.preventDefault(), e.toggleDetails.apply(null, arguments); + } } }, [e._v(" " + e._s(e.detailsOpen ? e.t("core", "Hide details") : e.t("core", "Show details")) + " ")]), o("NcActionButton", { attrs: { icon: "icon-rename" }, on: { click: function(n) { + return n.preventDefault(), e.openRename.apply(null, arguments); + } } }, [e._v(" " + e._s(e.t("core", "Rename project")) + " ")])], 1)], 1) : e._e(), o("transition", { attrs: { name: "fade" } }, [e.error.rename ? o("div", { staticClass: "error" }, [e._v(" " + e._s(e.error.rename) + " ")]) : e._e()]), o("transition", { attrs: { name: "fade" } }, [e.detailsOpen ? o("ul", { staticClass: "resource-list-details" }, e._l(e.collection.resources, function(n) { + return o("li", { key: n.type + "|" + n.id, class: e.typeClass(n) }, [o("a", { attrs: { href: n.link } }, [o("img", { attrs: { src: e.iconUrl(n) } }), o("span", { staticClass: "resource-name" }, [e._v(e._s(n.name || ""))])]), o("span", { staticClass: "icon-close", on: { click: function(r) { + return e.removeResource(e.collection, n); + } } })]); + }), 0) : e._e()])], 1); +}, L = [], U = /* @__PURE__ */ R( + B, + E, + L, + !1, + null, + "8e58e0a5", + null, + null +); +const j = U.exports, y = 0, g = 1, F = (0,lodash_es_debounce_js__WEBPACK_IMPORTED_MODULE_8__["default"])( + function(s, e) { + s !== "" && (e(!0), l.search(s).then((o) => { + this.searchCollections = o; + }).catch((o) => { + console.error("Failed to search for collections", o); + }).finally(() => { + e(!1); + })); + }, + 500, + {} +), P = { + name: "CollectionList", + components: { + CollectionListItem: j, + NcAvatar: _nextcloud_vue_dist_Components_NcAvatar_js__WEBPACK_IMPORTED_MODULE_1__["default"], + NcSelect: _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_2__["default"] + }, + props: { + /** + * Resource type identifier + */ + type: { + type: String, + default: null + }, + /** + * Unique id of the resource + */ + id: { + type: String, + default: null + }, + /** + * Name of the resource + */ + name: { + type: String, + default: "" + }, + isActive: { + type: Boolean, + default: !0 + } + }, + data() { + return { + selectIsOpen: !1, + generatingCodes: !1, + codes: void 0, + value: null, + model: {}, + searchCollections: [], + error: null, + state: u, + isSelectOpen: !1 + }; + }, + computed: { + collections() { + return this.state.collections.filter((s) => typeof s.resources.find((e) => e && e.id === "" + this.id && e.type === this.type) < "u"); + }, + placeholder() { + return this.isSelectOpen ? t("core", "Type to search for existing projects") : t("core", "Add to a project"); + }, + options() { + const s = []; + window.OCP.Collaboration.getTypes().sort().forEach((e) => { + s.push({ + method: y, + type: e, + title: window.OCP.Collaboration.getLabel(e), + class: window.OCP.Collaboration.getIcon(e), + action: () => window.OCP.Collaboration.trigger(e) + }); + }); + for (const e in this.searchCollections) + this.collections.findIndex((o) => o.id === this.searchCollections[e].id) === -1 && s.push({ + method: g, + title: this.searchCollections[e].name, + collectionId: this.searchCollections[e].id + }); + return s; + } + }, + watch: { + type() { + this.isActive && l.fetchCollectionsByResource({ + resourceType: this.type, + resourceId: this.id + }); + }, + id() { + this.isActive && l.fetchCollectionsByResource({ + resourceType: this.type, + resourceId: this.id + }); + }, + isActive(s) { + s && l.fetchCollectionsByResource({ + resourceType: this.type, + resourceId: this.id + }); + } + }, + mounted() { + l.fetchCollectionsByResource({ + resourceType: this.type, + resourceId: this.id + }); + }, + methods: { + select(s, e) { + s.method === y && s.action().then((o) => { + l.createCollection({ + baseResourceType: this.type, + baseResourceId: this.id, + resourceType: s.type, + resourceId: o, + name: this.name + }).catch((n) => { + this.setError(t("core", "Failed to create a project"), n); + }); + }).catch((o) => { + console.error("No resource selected", o); + }), s.method === g && l.addResourceToCollection({ + collectionId: s.collectionId, + resourceType: this.type, + resourceId: this.id + }).catch((o) => { + this.setError(t("core", "Failed to add the item to the project"), o); + }); + }, + search(s, e) { + F.bind(this)(s, e); + }, + showSelect() { + this.selectIsOpen = !0, this.$refs.select.$el.focus(); + }, + hideSelect() { + this.selectIsOpen = !1; + }, + isVueComponent(s) { + return s._isVue; + }, + setError(s, e) { + console.error(s, e), this.error = s, setTimeout(() => { + this.error = null; + }, 5e3); + } + } +}; +var V = function() { + var e = this, o = e._self._c; + return e.collections && e.type && e.id ? o("ul", { staticClass: "collection-list", attrs: { id: "collection-list" } }, [o("li", { on: { click: e.showSelect } }, [e._m(0), o("div", { attrs: { id: "collection-select-container" } }, [o("NcSelect", { ref: "select", attrs: { "aria-label-combobox": e.t("core", "Add to a project"), options: e.options, placeholder: e.placeholder, label: "title", limit: 5 }, on: { close: function(n) { + e.isSelectOpen = !1; + }, open: function(n) { + e.isSelectOpen = !0; + }, "option:selected": e.select, search: e.search }, scopedSlots: e._u([{ key: "selected-option", fn: function(n) { + return [o("span", { staticClass: "option__desc" }, [o("span", { staticClass: "option__title" }, [e._v(e._s(n.title))])])]; + } }, { key: "option", fn: function(n) { + return [o("span", { staticClass: "option__wrapper" }, [n.class ? o("span", { staticClass: "avatar", class: n.class }) : n.method !== 2 ? o("NcAvatar", { attrs: { "allow-placeholder": "", "display-name": n.title } }) : e._e(), o("span", { staticClass: "option__title" }, [e._v(e._s(n.title))])], 1)]; + } }], null, !1, 2397208459), model: { value: e.value, callback: function(n) { + e.value = n; + }, expression: "value" } }, [o("p", { staticClass: "hint" }, [e._v(" " + e._s(e.t("core", "Connect items to a project to make them easier to find")) + " ")])])], 1)]), o("transition", { attrs: { name: "fade" } }, [e.error ? o("li", { staticClass: "error" }, [e._v(" " + e._s(e.error) + " ")]) : e._e()]), e._l(e.collections, function(n) { + return o("CollectionListItem", { key: n.id, attrs: { collection: n } }); + })], 2) : e._e(); +}, x = [function() { + var s = this, e = s._self._c; + return e("div", { staticClass: "avatar" }, [e("span", { staticClass: "icon-projects" })]); +}], H = /* @__PURE__ */ R( + P, + V, + x, + !1, + null, + "75a4370b", + null, + null +); +const Q = H.exports; + + + +/***/ }) + +}]); +//# sourceMappingURL=apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js.map?v=3a7850c191f4d3187d23 \ No newline at end of file diff --git a/dist/apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js.map b/dist/apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js.map new file mode 100644 index 0000000000000..ff53c09bbfe9f --- /dev/null +++ b/dist/apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe-apps_files_sharing_src_views_SharingTab_vue-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_or-753dbe.js?v=3a7850c191f4d3187d23","mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;ACp4KA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACpKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9WA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACxoBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACpVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;ACzgBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACtHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7bA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC5sBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC9GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC9FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACjHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC/LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AClIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC5XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACjBA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AwBAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AcAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA","sources":["webpack:///nextcloud/node_modules/@chenfengyuan/vue-qrcode/dist/vue-qrcode.js","webpack:///nextcloud/apps/files_sharing/src/lib/SharePermissionsToolBox.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareDetails.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareRequests.js","webpack:///nextcloud/apps/files_sharing/src/mixins/ShareTypes.js","webpack:///nextcloud/apps/files_sharing/src/mixins/SharesMixin.js","webpack:///nextcloud/apps/files_sharing/src/models/Share.js","webpack:///nextcloud/apps/files_sharing/src/services/ConfigService.js","webpack:///nextcloud/apps/files_sharing/src/utils/GeneratePassword.js","webpack:///nextcloud/apps/files_sharing/src/utils/SharedWithMe.js","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue?vue&type=template&id=27835356","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=template&id=39161a5c","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue?vue&type=template&id=dd248c84","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue?vue&type=template&id=698e26a4","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=template&id=0f81577f&scoped=true","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/assets/index-Au1Gr_G6.css","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss","webpack:///nextcloud/node_modules/nextcloud-vue-collections/node_modules/@nextcloud/router/dist/index.js","webpack://nextcloud/./node_modules/nextcloud-vue-collections/dist/assets/index-Au1Gr_G6.css?fdca","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?3a08","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?89d9","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?ed42","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?4621","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?ca47","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?7aae","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?c8ee","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?2230","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?52bb","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?9eda","webpack:///nextcloud/node_modules/url-search-params-polyfill/index.js","webpack:///nextcloud/apps/files_sharing/src/components/ExternalShareAction.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntry.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInherited.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryInternal.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryLink.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingEntrySimple.vue","webpack:///nextcloud/apps/files_sharing/src/components/SharingInput.vue","webpack:///nextcloud/apps/files_sharing/src/views/SharingDetailsTab.vue","webpack:///nextcloud/apps/files_sharing/src/views/SharingInherited.vue","webpack:///nextcloud/apps/files_sharing/src/views/SharingLinkList.vue","webpack:///nextcloud/apps/files_sharing/src/views/SharingList.vue","webpack:///nextcloud/apps/files_sharing/src/views/SharingTab.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ClipboardFlow.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=script&lang=js","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?c836","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?6438","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?3233","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?be8a","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?f754","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?fd83","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?7402","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?1b8a","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?e732","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?deba","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?8e9e","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?f7b3","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?fe72","webpack://nextcloud/./apps/files_sharing/src/components/ExternalShareAction.vue?c5ec","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?f810","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?fd40","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?c078","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?66a3","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?afbe","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?0615","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?6cb1","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?4ce7","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?5698","webpack://nextcloud/./apps/files_sharing/src/views/SharingLinkList.vue?cd91","webpack://nextcloud/./apps/files_sharing/src/views/SharingList.vue?eb26","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?e748","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntry.vue?28a9","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInherited.vue?2840","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryInternal.vue?26b6","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryLink.vue?694f","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue?bcf4","webpack://nextcloud/./apps/files_sharing/src/components/SharingEntrySimple.vue?aa78","webpack://nextcloud/./apps/files_sharing/src/components/SharingInput.vue?402e","webpack://nextcloud/./apps/files_sharing/src/views/SharingDetailsTab.vue?cf3b","webpack://nextcloud/./apps/files_sharing/src/views/SharingInherited.vue?f501","webpack://nextcloud/./apps/files_sharing/src/views/SharingTab.vue?4f83","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountCircleOutline.vue?e8a2","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckBold.vue?4a81","webpack://nextcloud/./node_modules/vue-material-design-icons/CircleOutline.vue?0a90","webpack://nextcloud/./node_modules/vue-material-design-icons/ClipboardFlow.vue?2481","webpack://nextcloud/./node_modules/vue-material-design-icons/DotsHorizontal.vue?38ea","webpack://nextcloud/./node_modules/vue-material-design-icons/Email.vue?eeab","webpack://nextcloud/./node_modules/vue-material-design-icons/Exclamation.vue?015f","webpack://nextcloud/./node_modules/vue-material-design-icons/Eye.vue?81c3","webpack://nextcloud/./node_modules/vue-material-design-icons/EyeOutline.vue?e93d","webpack://nextcloud/./node_modules/vue-material-design-icons/FileUpload.vue?6857","webpack://nextcloud/./node_modules/vue-material-design-icons/Lock.vue?1b84","webpack://nextcloud/./node_modules/vue-material-design-icons/Qrcode.vue?9d76","webpack://nextcloud/./node_modules/vue-material-design-icons/ShareCircle.vue?720d","webpack://nextcloud/./node_modules/vue-material-design-icons/TriangleSmallDown.vue?10c4","webpack://nextcloud/./node_modules/vue-material-design-icons/Tune.vue?d018","webpack://nextcloud/./node_modules/vue-material-design-icons/AccountCircleOutline.vue?1277","webpack://nextcloud/./node_modules/vue-material-design-icons/CheckBold.vue?5278","webpack://nextcloud/./node_modules/vue-material-design-icons/CircleOutline.vue?a03b","webpack://nextcloud/./node_modules/vue-material-design-icons/ClipboardFlow.vue?1748","webpack://nextcloud/./node_modules/vue-material-design-icons/Email.vue?6cc2","webpack://nextcloud/./node_modules/vue-material-design-icons/Exclamation.vue?8522","webpack://nextcloud/./node_modules/vue-material-design-icons/Eye.vue?1de7","webpack://nextcloud/./node_modules/vue-material-design-icons/FileUpload.vue?4348","webpack://nextcloud/./node_modules/vue-material-design-icons/Lock.vue?071c","webpack://nextcloud/./node_modules/vue-material-design-icons/Qrcode.vue?d5b7","webpack://nextcloud/./node_modules/vue-material-design-icons/ShareCircle.vue?f24e","webpack://nextcloud/./node_modules/vue-material-design-icons/TriangleSmallDown.vue?8279","webpack://nextcloud/./node_modules/vue-material-design-icons/Tune.vue?8d26","webpack:///nextcloud/node_modules/vue-material-design-icons/AccountCircleOutline.vue?vue&type=template&id=4f5873d1","webpack:///nextcloud/node_modules/vue-material-design-icons/CheckBold.vue?vue&type=template&id=486b2cb1","webpack:///nextcloud/node_modules/vue-material-design-icons/CircleOutline.vue?vue&type=template&id=ad0ef454","webpack:///nextcloud/node_modules/vue-material-design-icons/ClipboardFlow.vue?vue&type=template&id=2676ab68","webpack:///nextcloud/node_modules/vue-material-design-icons/DotsHorizontal.vue?vue&type=template&id=3174c38c","webpack:///nextcloud/node_modules/vue-material-design-icons/Email.vue?vue&type=template&id=503121c0","webpack:///nextcloud/node_modules/vue-material-design-icons/Exclamation.vue?vue&type=template&id=34aa771e","webpack:///nextcloud/node_modules/vue-material-design-icons/Eye.vue?vue&type=template&id=6cfe2635","webpack:///nextcloud/node_modules/vue-material-design-icons/EyeOutline.vue?vue&type=template&id=7b68237d","webpack:///nextcloud/node_modules/vue-material-design-icons/FileUpload.vue?vue&type=template&id=78fe596e","webpack:///nextcloud/node_modules/vue-material-design-icons/Lock.vue?vue&type=template&id=0e7c8452","webpack:///nextcloud/node_modules/vue-material-design-icons/Qrcode.vue?vue&type=template&id=ff95848c","webpack:///nextcloud/node_modules/vue-material-design-icons/ShareCircle.vue?vue&type=template&id=5c5332da","webpack:///nextcloud/node_modules/vue-material-design-icons/TriangleSmallDown.vue?vue&type=template&id=7ca50825","webpack:///nextcloud/node_modules/vue-material-design-icons/Tune.vue?vue&type=template&id=f0bd6bb8","webpack:///nextcloud/node_modules/lodash-es/_Symbol.js","webpack:///nextcloud/node_modules/lodash-es/_baseGetTag.js","webpack:///nextcloud/node_modules/lodash-es/_baseTrim.js","webpack:///nextcloud/node_modules/lodash-es/_freeGlobal.js","webpack:///nextcloud/node_modules/lodash-es/_getRawTag.js","webpack:///nextcloud/node_modules/lodash-es/_objectToString.js","webpack:///nextcloud/node_modules/lodash-es/_root.js","webpack:///nextcloud/node_modules/lodash-es/_trimmedEndIndex.js","webpack:///nextcloud/node_modules/lodash-es/debounce.js","webpack:///nextcloud/node_modules/lodash-es/isObject.js","webpack:///nextcloud/node_modules/lodash-es/isObjectLike.js","webpack:///nextcloud/node_modules/lodash-es/isSymbol.js","webpack:///nextcloud/node_modules/lodash-es/now.js","webpack:///nextcloud/node_modules/lodash-es/toNumber.js","webpack:///nextcloud/node_modules/nextcloud-vue-collections/dist/index.mjs"],"sourcesContent":["/*!\n * vue-qrcode v1.0.2\n * https://fengyuanchen.github.io/vue-qrcode\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2020-01-18T06:04:33.222Z\n */\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t(global = global || self, global.VueQrcode = factory());\n}(this, (function () { 'use strict';\n\n\tfunction commonjsRequire () {\n\t\tthrow new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs');\n\t}\n\n\tfunction createCommonjsModule(fn, module) {\n\t\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n\t}\n\n\tvar qrcode = createCommonjsModule(function (module, exports) {\n\t(function(f){{module.exports=f();}})(function(){return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof commonjsRequire&&commonjsRequire;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t);}return n[i].exports}for(var u=\"function\"==typeof commonjsRequire&&commonjsRequire,i=0;i>> (7 - index % 8)) & 1) === 1\n\t },\n\n\t put: function (num, length) {\n\t for (var i = 0; i < length; i++) {\n\t this.putBit(((num >>> (length - i - 1)) & 1) === 1);\n\t }\n\t },\n\n\t getLengthInBits: function () {\n\t return this.length\n\t },\n\n\t putBit: function (bit) {\n\t var bufIndex = Math.floor(this.length / 8);\n\t if (this.buffer.length <= bufIndex) {\n\t this.buffer.push(0);\n\t }\n\n\t if (bit) {\n\t this.buffer[bufIndex] |= (0x80 >>> (this.length % 8));\n\t }\n\n\t this.length++;\n\t }\n\t};\n\n\tmodule.exports = BitBuffer;\n\n\t},{}],5:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\t/**\n\t * Helper class to handle QR Code symbol modules\n\t *\n\t * @param {Number} size Symbol size\n\t */\n\tfunction BitMatrix (size) {\n\t if (!size || size < 1) {\n\t throw new Error('BitMatrix size must be defined and greater than 0')\n\t }\n\n\t this.size = size;\n\t this.data = BufferUtil.alloc(size * size);\n\t this.reservedBit = BufferUtil.alloc(size * size);\n\t}\n\n\t/**\n\t * Set bit value at specified location\n\t * If reserved flag is set, this bit will be ignored during masking process\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t * @param {Boolean} reserved\n\t */\n\tBitMatrix.prototype.set = function (row, col, value, reserved) {\n\t var index = row * this.size + col;\n\t this.data[index] = value;\n\t if (reserved) this.reservedBit[index] = true;\n\t};\n\n\t/**\n\t * Returns bit value at specified location\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.get = function (row, col) {\n\t return this.data[row * this.size + col]\n\t};\n\n\t/**\n\t * Applies xor operator at specified location\n\t * (used during masking process)\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @param {Boolean} value\n\t */\n\tBitMatrix.prototype.xor = function (row, col, value) {\n\t this.data[row * this.size + col] ^= value;\n\t};\n\n\t/**\n\t * Check if bit at specified location is reserved\n\t *\n\t * @param {Number} row\n\t * @param {Number} col\n\t * @return {Boolean}\n\t */\n\tBitMatrix.prototype.isReserved = function (row, col) {\n\t return this.reservedBit[row * this.size + col]\n\t};\n\n\tmodule.exports = BitMatrix;\n\n\t},{\"../utils/buffer\":28}],6:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Mode = require('./mode');\n\n\tfunction ByteData (data) {\n\t this.mode = Mode.BYTE;\n\t this.data = BufferUtil.from(data);\n\t}\n\n\tByteData.getBitsLength = function getBitsLength (length) {\n\t return length * 8\n\t};\n\n\tByteData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tByteData.prototype.getBitsLength = function getBitsLength () {\n\t return ByteData.getBitsLength(this.data.length)\n\t};\n\n\tByteData.prototype.write = function (bitBuffer) {\n\t for (var i = 0, l = this.data.length; i < l; i++) {\n\t bitBuffer.put(this.data[i], 8);\n\t }\n\t};\n\n\tmodule.exports = ByteData;\n\n\t},{\"../utils/buffer\":28,\"./mode\":14}],7:[function(require,module,exports){\n\tvar ECLevel = require('./error-correction-level');\r\n\r\n\tvar EC_BLOCKS_TABLE = [\r\n\t// L M Q H\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 1, 1,\r\n\t 1, 1, 2, 2,\r\n\t 1, 2, 2, 4,\r\n\t 1, 2, 4, 4,\r\n\t 2, 4, 4, 4,\r\n\t 2, 4, 6, 5,\r\n\t 2, 4, 6, 6,\r\n\t 2, 5, 8, 8,\r\n\t 4, 5, 8, 8,\r\n\t 4, 5, 8, 11,\r\n\t 4, 8, 10, 11,\r\n\t 4, 9, 12, 16,\r\n\t 4, 9, 16, 16,\r\n\t 6, 10, 12, 18,\r\n\t 6, 10, 17, 16,\r\n\t 6, 11, 16, 19,\r\n\t 6, 13, 18, 21,\r\n\t 7, 14, 21, 25,\r\n\t 8, 16, 20, 25,\r\n\t 8, 17, 23, 25,\r\n\t 9, 17, 23, 34,\r\n\t 9, 18, 25, 30,\r\n\t 10, 20, 27, 32,\r\n\t 12, 21, 29, 35,\r\n\t 12, 23, 34, 37,\r\n\t 12, 25, 34, 40,\r\n\t 13, 26, 35, 42,\r\n\t 14, 28, 38, 45,\r\n\t 15, 29, 40, 48,\r\n\t 16, 31, 43, 51,\r\n\t 17, 33, 45, 54,\r\n\t 18, 35, 48, 57,\r\n\t 19, 37, 51, 60,\r\n\t 19, 38, 53, 63,\r\n\t 20, 40, 56, 66,\r\n\t 21, 43, 59, 70,\r\n\t 22, 45, 62, 74,\r\n\t 24, 47, 65, 77,\r\n\t 25, 49, 68, 81\r\n\t];\r\n\r\n\tvar EC_CODEWORDS_TABLE = [\r\n\t// L M Q H\r\n\t 7, 10, 13, 17,\r\n\t 10, 16, 22, 28,\r\n\t 15, 26, 36, 44,\r\n\t 20, 36, 52, 64,\r\n\t 26, 48, 72, 88,\r\n\t 36, 64, 96, 112,\r\n\t 40, 72, 108, 130,\r\n\t 48, 88, 132, 156,\r\n\t 60, 110, 160, 192,\r\n\t 72, 130, 192, 224,\r\n\t 80, 150, 224, 264,\r\n\t 96, 176, 260, 308,\r\n\t 104, 198, 288, 352,\r\n\t 120, 216, 320, 384,\r\n\t 132, 240, 360, 432,\r\n\t 144, 280, 408, 480,\r\n\t 168, 308, 448, 532,\r\n\t 180, 338, 504, 588,\r\n\t 196, 364, 546, 650,\r\n\t 224, 416, 600, 700,\r\n\t 224, 442, 644, 750,\r\n\t 252, 476, 690, 816,\r\n\t 270, 504, 750, 900,\r\n\t 300, 560, 810, 960,\r\n\t 312, 588, 870, 1050,\r\n\t 336, 644, 952, 1110,\r\n\t 360, 700, 1020, 1200,\r\n\t 390, 728, 1050, 1260,\r\n\t 420, 784, 1140, 1350,\r\n\t 450, 812, 1200, 1440,\r\n\t 480, 868, 1290, 1530,\r\n\t 510, 924, 1350, 1620,\r\n\t 540, 980, 1440, 1710,\r\n\t 570, 1036, 1530, 1800,\r\n\t 570, 1064, 1590, 1890,\r\n\t 600, 1120, 1680, 1980,\r\n\t 630, 1204, 1770, 2100,\r\n\t 660, 1260, 1860, 2220,\r\n\t 720, 1316, 1950, 2310,\r\n\t 750, 1372, 2040, 2430\r\n\t];\r\n\r\n\t/**\r\n\t * Returns the number of error correction block that the QR Code should contain\r\n\t * for the specified version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction blocks\r\n\t */\r\n\texports.getBlocksCount = function getBlocksCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_BLOCKS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\r\n\t/**\r\n\t * Returns the number of error correction codewords to use for the specified\r\n\t * version and error correction level.\r\n\t *\r\n\t * @param {Number} version QR Code version\r\n\t * @param {Number} errorCorrectionLevel Error correction level\r\n\t * @return {Number} Number of error correction codewords\r\n\t */\r\n\texports.getTotalCodewordsCount = function getTotalCodewordsCount (version, errorCorrectionLevel) {\r\n\t switch (errorCorrectionLevel) {\r\n\t case ECLevel.L:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 0]\r\n\t case ECLevel.M:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 1]\r\n\t case ECLevel.Q:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 2]\r\n\t case ECLevel.H:\r\n\t return EC_CODEWORDS_TABLE[(version - 1) * 4 + 3]\r\n\t default:\r\n\t return undefined\r\n\t }\r\n\t};\r\n\n\t},{\"./error-correction-level\":8}],8:[function(require,module,exports){\n\texports.L = { bit: 1 };\n\texports.M = { bit: 0 };\n\texports.Q = { bit: 3 };\n\texports.H = { bit: 2 };\n\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'l':\n\t case 'low':\n\t return exports.L\n\n\t case 'm':\n\t case 'medium':\n\t return exports.M\n\n\t case 'q':\n\t case 'quartile':\n\t return exports.Q\n\n\t case 'h':\n\t case 'high':\n\t return exports.H\n\n\t default:\n\t throw new Error('Unknown EC Level: ' + string)\n\t }\n\t}\n\n\texports.isValid = function isValid (level) {\n\t return level && typeof level.bit !== 'undefined' &&\n\t level.bit >= 0 && level.bit < 4\n\t};\n\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{}],9:[function(require,module,exports){\n\tvar getSymbolSize = require('./utils').getSymbolSize;\n\tvar FINDER_PATTERN_SIZE = 7;\n\n\t/**\n\t * Returns an array containing the positions of each finder pattern.\n\t * Each array's element represent the top-left point of the pattern as (x, y) coordinates\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of coordinates\n\t */\n\texports.getPositions = function getPositions (version) {\n\t var size = getSymbolSize(version);\n\n\t return [\n\t // top-left\n\t [0, 0],\n\t // top-right\n\t [size - FINDER_PATTERN_SIZE, 0],\n\t // bottom-left\n\t [0, size - FINDER_PATTERN_SIZE]\n\t ]\n\t};\n\n\t},{\"./utils\":21}],10:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tvar G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n\tvar G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\tvar G15_BCH = Utils.getBCHDigit(G15);\n\n\t/**\n\t * Returns format information with relative error correction bits\n\t *\n\t * The format information is a 15-bit sequence containing 5 data bits,\n\t * with 10 error correction bits calculated using the (15, 5) BCH code.\n\t *\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Number} mask Mask pattern\n\t * @return {Number} Encoded format information bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (errorCorrectionLevel, mask) {\n\t var data = ((errorCorrectionLevel.bit << 3) | mask);\n\t var d = data << 10;\n\n\t while (Utils.getBCHDigit(d) - G15_BCH >= 0) {\n\t d ^= (G15 << (Utils.getBCHDigit(d) - G15_BCH));\n\t }\n\n\t // xor final data with mask pattern in order to ensure that\n\t // no combination of Error Correction Level and data mask pattern\n\t // will result in an all-zero data string\n\t return ((data << 10) | d) ^ G15_MASK\n\t};\n\n\t},{\"./utils\":21}],11:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\n\tvar EXP_TABLE = BufferUtil.alloc(512);\n\tvar LOG_TABLE = BufferUtil.alloc(256)\n\t/**\n\t * Precompute the log and anti-log tables for faster computation later\n\t *\n\t * For each possible value in the galois field 2^8, we will pre-compute\n\t * the logarithm and anti-logarithm (exponential) of this value\n\t *\n\t * ref {@link https://en.wikiversity.org/wiki/Reed%E2%80%93Solomon_codes_for_coders#Introduction_to_mathematical_fields}\n\t */\n\t;(function initTables () {\n\t var x = 1;\n\t for (var i = 0; i < 255; i++) {\n\t EXP_TABLE[i] = x;\n\t LOG_TABLE[x] = i;\n\n\t x <<= 1; // multiply by 2\n\n\t // The QR code specification says to use byte-wise modulo 100011101 arithmetic.\n\t // This means that when a number is 256 or larger, it should be XORed with 0x11D.\n\t if (x & 0x100) { // similar to x >= 256, but a lot faster (because 0x100 == 256)\n\t x ^= 0x11D;\n\t }\n\t }\n\n\t // Optimization: double the size of the anti-log table so that we don't need to mod 255 to\n\t // stay inside the bounds (because we will mainly use this table for the multiplication of\n\t // two GF numbers, no more).\n\t // @see {@link mul}\n\t for (i = 255; i < 512; i++) {\n\t EXP_TABLE[i] = EXP_TABLE[i - 255];\n\t }\n\t}());\n\n\t/**\n\t * Returns log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.log = function log (n) {\n\t if (n < 1) throw new Error('log(' + n + ')')\n\t return LOG_TABLE[n]\n\t};\n\n\t/**\n\t * Returns anti-log value of n inside Galois Field\n\t *\n\t * @param {Number} n\n\t * @return {Number}\n\t */\n\texports.exp = function exp (n) {\n\t return EXP_TABLE[n]\n\t};\n\n\t/**\n\t * Multiplies two number inside Galois Field\n\t *\n\t * @param {Number} x\n\t * @param {Number} y\n\t * @return {Number}\n\t */\n\texports.mul = function mul (x, y) {\n\t if (x === 0 || y === 0) return 0\n\n\t // should be EXP_TABLE[(LOG_TABLE[x] + LOG_TABLE[y]) % 255] if EXP_TABLE wasn't oversized\n\t // @see {@link initTables}\n\t return EXP_TABLE[LOG_TABLE[x] + LOG_TABLE[y]]\n\t};\n\n\t},{\"../utils/buffer\":28}],12:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar Utils = require('./utils');\n\n\tfunction KanjiData (data) {\n\t this.mode = Mode.KANJI;\n\t this.data = data;\n\t}\n\n\tKanjiData.getBitsLength = function getBitsLength (length) {\n\t return length * 13\n\t};\n\n\tKanjiData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tKanjiData.prototype.getBitsLength = function getBitsLength () {\n\t return KanjiData.getBitsLength(this.data.length)\n\t};\n\n\tKanjiData.prototype.write = function (bitBuffer) {\n\t var i;\n\n\t // In the Shift JIS system, Kanji characters are represented by a two byte combination.\n\t // These byte values are shifted from the JIS X 0208 values.\n\t // JIS X 0208 gives details of the shift coded representation.\n\t for (i = 0; i < this.data.length; i++) {\n\t var value = Utils.toSJIS(this.data[i]);\n\n\t // For characters with Shift JIS values from 0x8140 to 0x9FFC:\n\t if (value >= 0x8140 && value <= 0x9FFC) {\n\t // Subtract 0x8140 from Shift JIS value\n\t value -= 0x8140;\n\n\t // For characters with Shift JIS values from 0xE040 to 0xEBBF\n\t } else if (value >= 0xE040 && value <= 0xEBBF) {\n\t // Subtract 0xC140 from Shift JIS value\n\t value -= 0xC140;\n\t } else {\n\t throw new Error(\n\t 'Invalid SJIS character: ' + this.data[i] + '\\n' +\n\t 'Make sure your charset is UTF-8')\n\t }\n\n\t // Multiply most significant byte of result by 0xC0\n\t // and add least significant byte to product\n\t value = (((value >>> 8) & 0xff) * 0xC0) + (value & 0xff);\n\n\t // Convert result to a 13-bit binary string\n\t bitBuffer.put(value, 13);\n\t }\n\t};\n\n\tmodule.exports = KanjiData;\n\n\t},{\"./mode\":14,\"./utils\":21}],13:[function(require,module,exports){\n\t/**\n\t * Data mask pattern reference\n\t * @type {Object}\n\t */\n\texports.Patterns = {\n\t PATTERN000: 0,\n\t PATTERN001: 1,\n\t PATTERN010: 2,\n\t PATTERN011: 3,\n\t PATTERN100: 4,\n\t PATTERN101: 5,\n\t PATTERN110: 6,\n\t PATTERN111: 7\n\t};\n\n\t/**\n\t * Weighted penalty scores for the undesirable features\n\t * @type {Object}\n\t */\n\tvar PenaltyScores = {\n\t N1: 3,\n\t N2: 3,\n\t N3: 40,\n\t N4: 10\n\t};\n\n\t/**\n\t * Check if mask pattern value is valid\n\t *\n\t * @param {Number} mask Mask pattern\n\t * @return {Boolean} true if valid, false otherwise\n\t */\n\texports.isValid = function isValid (mask) {\n\t return mask != null && mask !== '' && !isNaN(mask) && mask >= 0 && mask <= 7\n\t};\n\n\t/**\n\t * Returns mask pattern from a value.\n\t * If value is not valid, returns undefined\n\t *\n\t * @param {Number|String} value Mask pattern value\n\t * @return {Number} Valid mask pattern or undefined\n\t */\n\texports.from = function from (value) {\n\t return exports.isValid(value) ? parseInt(value, 10) : undefined\n\t};\n\n\t/**\n\t* Find adjacent modules in row/column with the same color\n\t* and assign a penalty value.\n\t*\n\t* Points: N1 + i\n\t* i is the amount by which the number of adjacent modules of the same color exceeds 5\n\t*/\n\texports.getPenaltyN1 = function getPenaltyN1 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var sameCountCol = 0;\n\t var sameCountRow = 0;\n\t var lastCol = null;\n\t var lastRow = null;\n\n\t for (var row = 0; row < size; row++) {\n\t sameCountCol = sameCountRow = 0;\n\t lastCol = lastRow = null;\n\n\t for (var col = 0; col < size; col++) {\n\t var module = data.get(row, col);\n\t if (module === lastCol) {\n\t sameCountCol++;\n\t } else {\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t lastCol = module;\n\t sameCountCol = 1;\n\t }\n\n\t module = data.get(col, row);\n\t if (module === lastRow) {\n\t sameCountRow++;\n\t } else {\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t lastRow = module;\n\t sameCountRow = 1;\n\t }\n\t }\n\n\t if (sameCountCol >= 5) points += PenaltyScores.N1 + (sameCountCol - 5);\n\t if (sameCountRow >= 5) points += PenaltyScores.N1 + (sameCountRow - 5);\n\t }\n\n\t return points\n\t};\n\n\t/**\n\t * Find 2x2 blocks with the same color and assign a penalty value\n\t *\n\t * Points: N2 * (m - 1) * (n - 1)\n\t */\n\texports.getPenaltyN2 = function getPenaltyN2 (data) {\n\t var size = data.size;\n\t var points = 0;\n\n\t for (var row = 0; row < size - 1; row++) {\n\t for (var col = 0; col < size - 1; col++) {\n\t var last = data.get(row, col) +\n\t data.get(row, col + 1) +\n\t data.get(row + 1, col) +\n\t data.get(row + 1, col + 1);\n\n\t if (last === 4 || last === 0) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N2\n\t};\n\n\t/**\n\t * Find 1:1:3:1:1 ratio (dark:light:dark:light:dark) pattern in row/column,\n\t * preceded or followed by light area 4 modules wide\n\t *\n\t * Points: N3 * number of pattern found\n\t */\n\texports.getPenaltyN3 = function getPenaltyN3 (data) {\n\t var size = data.size;\n\t var points = 0;\n\t var bitsCol = 0;\n\t var bitsRow = 0;\n\n\t for (var row = 0; row < size; row++) {\n\t bitsCol = bitsRow = 0;\n\t for (var col = 0; col < size; col++) {\n\t bitsCol = ((bitsCol << 1) & 0x7FF) | data.get(row, col);\n\t if (col >= 10 && (bitsCol === 0x5D0 || bitsCol === 0x05D)) points++;\n\n\t bitsRow = ((bitsRow << 1) & 0x7FF) | data.get(col, row);\n\t if (col >= 10 && (bitsRow === 0x5D0 || bitsRow === 0x05D)) points++;\n\t }\n\t }\n\n\t return points * PenaltyScores.N3\n\t};\n\n\t/**\n\t * Calculate proportion of dark modules in entire symbol\n\t *\n\t * Points: N4 * k\n\t *\n\t * k is the rating of the deviation of the proportion of dark modules\n\t * in the symbol from 50% in steps of 5%\n\t */\n\texports.getPenaltyN4 = function getPenaltyN4 (data) {\n\t var darkCount = 0;\n\t var modulesCount = data.data.length;\n\n\t for (var i = 0; i < modulesCount; i++) darkCount += data.data[i];\n\n\t var k = Math.abs(Math.ceil((darkCount * 100 / modulesCount) / 5) - 10);\n\n\t return k * PenaltyScores.N4\n\t};\n\n\t/**\n\t * Return mask value at given position\n\t *\n\t * @param {Number} maskPattern Pattern reference value\n\t * @param {Number} i Row\n\t * @param {Number} j Column\n\t * @return {Boolean} Mask value\n\t */\n\tfunction getMaskAt (maskPattern, i, j) {\n\t switch (maskPattern) {\n\t case exports.Patterns.PATTERN000: return (i + j) % 2 === 0\n\t case exports.Patterns.PATTERN001: return i % 2 === 0\n\t case exports.Patterns.PATTERN010: return j % 3 === 0\n\t case exports.Patterns.PATTERN011: return (i + j) % 3 === 0\n\t case exports.Patterns.PATTERN100: return (Math.floor(i / 2) + Math.floor(j / 3)) % 2 === 0\n\t case exports.Patterns.PATTERN101: return (i * j) % 2 + (i * j) % 3 === 0\n\t case exports.Patterns.PATTERN110: return ((i * j) % 2 + (i * j) % 3) % 2 === 0\n\t case exports.Patterns.PATTERN111: return ((i * j) % 3 + (i + j) % 2) % 2 === 0\n\n\t default: throw new Error('bad maskPattern:' + maskPattern)\n\t }\n\t}\n\n\t/**\n\t * Apply a mask pattern to a BitMatrix\n\t *\n\t * @param {Number} pattern Pattern reference number\n\t * @param {BitMatrix} data BitMatrix data\n\t */\n\texports.applyMask = function applyMask (pattern, data) {\n\t var size = data.size;\n\n\t for (var col = 0; col < size; col++) {\n\t for (var row = 0; row < size; row++) {\n\t if (data.isReserved(row, col)) continue\n\t data.xor(row, col, getMaskAt(pattern, row, col));\n\t }\n\t }\n\t};\n\n\t/**\n\t * Returns the best mask pattern for data\n\t *\n\t * @param {BitMatrix} data\n\t * @return {Number} Mask pattern reference number\n\t */\n\texports.getBestMask = function getBestMask (data, setupFormatFunc) {\n\t var numPatterns = Object.keys(exports.Patterns).length;\n\t var bestPattern = 0;\n\t var lowerPenalty = Infinity;\n\n\t for (var p = 0; p < numPatterns; p++) {\n\t setupFormatFunc(p);\n\t exports.applyMask(p, data);\n\n\t // Calculate penalty\n\t var penalty =\n\t exports.getPenaltyN1(data) +\n\t exports.getPenaltyN2(data) +\n\t exports.getPenaltyN3(data) +\n\t exports.getPenaltyN4(data);\n\n\t // Undo previously applied mask\n\t exports.applyMask(p, data);\n\n\t if (penalty < lowerPenalty) {\n\t lowerPenalty = penalty;\n\t bestPattern = p;\n\t }\n\t }\n\n\t return bestPattern\n\t};\n\n\t},{}],14:[function(require,module,exports){\n\tvar VersionCheck = require('./version-check');\n\tvar Regex = require('./regex');\n\n\t/**\n\t * Numeric mode encodes data from the decimal digit set (0 - 9)\n\t * (byte values 30HEX to 39HEX).\n\t * Normally, 3 data characters are represented by 10 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.NUMERIC = {\n\t id: 'Numeric',\n\t bit: 1 << 0,\n\t ccBits: [10, 12, 14]\n\t};\n\n\t/**\n\t * Alphanumeric mode encodes data from a set of 45 characters,\n\t * i.e. 10 numeric digits (0 - 9),\n\t * 26 alphabetic characters (A - Z),\n\t * and 9 symbols (SP, $, %, *, +, -, ., /, :).\n\t * Normally, two input characters are represented by 11 bits.\n\t *\n\t * @type {Object}\n\t */\n\texports.ALPHANUMERIC = {\n\t id: 'Alphanumeric',\n\t bit: 1 << 1,\n\t ccBits: [9, 11, 13]\n\t};\n\n\t/**\n\t * In byte mode, data is encoded at 8 bits per character.\n\t *\n\t * @type {Object}\n\t */\n\texports.BYTE = {\n\t id: 'Byte',\n\t bit: 1 << 2,\n\t ccBits: [8, 16, 16]\n\t};\n\n\t/**\n\t * The Kanji mode efficiently encodes Kanji characters in accordance with\n\t * the Shift JIS system based on JIS X 0208.\n\t * The Shift JIS values are shifted from the JIS X 0208 values.\n\t * JIS X 0208 gives details of the shift coded representation.\n\t * Each two-byte character value is compacted to a 13-bit binary codeword.\n\t *\n\t * @type {Object}\n\t */\n\texports.KANJI = {\n\t id: 'Kanji',\n\t bit: 1 << 3,\n\t ccBits: [8, 10, 12]\n\t};\n\n\t/**\n\t * Mixed mode will contain a sequences of data in a combination of any of\n\t * the modes described above\n\t *\n\t * @type {Object}\n\t */\n\texports.MIXED = {\n\t bit: -1\n\t};\n\n\t/**\n\t * Returns the number of bits needed to store the data length\n\t * according to QR Code specifications.\n\t *\n\t * @param {Mode} mode Data mode\n\t * @param {Number} version QR Code version\n\t * @return {Number} Number of bits\n\t */\n\texports.getCharCountIndicator = function getCharCountIndicator (mode, version) {\n\t if (!mode.ccBits) throw new Error('Invalid mode: ' + mode)\n\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid version: ' + version)\n\t }\n\n\t if (version >= 1 && version < 10) return mode.ccBits[0]\n\t else if (version < 27) return mode.ccBits[1]\n\t return mode.ccBits[2]\n\t};\n\n\t/**\n\t * Returns the most efficient mode to store the specified data\n\t *\n\t * @param {String} dataStr Input data string\n\t * @return {Mode} Best mode\n\t */\n\texports.getBestModeForData = function getBestModeForData (dataStr) {\n\t if (Regex.testNumeric(dataStr)) return exports.NUMERIC\n\t else if (Regex.testAlphanumeric(dataStr)) return exports.ALPHANUMERIC\n\t else if (Regex.testKanji(dataStr)) return exports.KANJI\n\t else return exports.BYTE\n\t};\n\n\t/**\n\t * Return mode name as string\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {String} Mode name\n\t */\n\texports.toString = function toString (mode) {\n\t if (mode && mode.id) return mode.id\n\t throw new Error('Invalid mode')\n\t};\n\n\t/**\n\t * Check if input param is a valid mode object\n\t *\n\t * @param {Mode} mode Mode object\n\t * @returns {Boolean} True if valid mode, false otherwise\n\t */\n\texports.isValid = function isValid (mode) {\n\t return mode && mode.bit && mode.ccBits\n\t};\n\n\t/**\n\t * Get mode object from its name\n\t *\n\t * @param {String} string Mode name\n\t * @returns {Mode} Mode object\n\t */\n\tfunction fromString (string) {\n\t if (typeof string !== 'string') {\n\t throw new Error('Param is not a string')\n\t }\n\n\t var lcStr = string.toLowerCase();\n\n\t switch (lcStr) {\n\t case 'numeric':\n\t return exports.NUMERIC\n\t case 'alphanumeric':\n\t return exports.ALPHANUMERIC\n\t case 'kanji':\n\t return exports.KANJI\n\t case 'byte':\n\t return exports.BYTE\n\t default:\n\t throw new Error('Unknown mode: ' + string)\n\t }\n\t}\n\n\t/**\n\t * Returns mode from a value.\n\t * If value is not a valid mode, returns defaultValue\n\t *\n\t * @param {Mode|String} value Encoding mode\n\t * @param {Mode} defaultValue Fallback value\n\t * @return {Mode} Encoding mode\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (exports.isValid(value)) {\n\t return value\n\t }\n\n\t try {\n\t return fromString(value)\n\t } catch (e) {\n\t return defaultValue\n\t }\n\t};\n\n\t},{\"./regex\":19,\"./version-check\":22}],15:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\n\tfunction NumericData (data) {\n\t this.mode = Mode.NUMERIC;\n\t this.data = data.toString();\n\t}\n\n\tNumericData.getBitsLength = function getBitsLength (length) {\n\t return 10 * Math.floor(length / 3) + ((length % 3) ? ((length % 3) * 3 + 1) : 0)\n\t};\n\n\tNumericData.prototype.getLength = function getLength () {\n\t return this.data.length\n\t};\n\n\tNumericData.prototype.getBitsLength = function getBitsLength () {\n\t return NumericData.getBitsLength(this.data.length)\n\t};\n\n\tNumericData.prototype.write = function write (bitBuffer) {\n\t var i, group, value;\n\n\t // The input data string is divided into groups of three digits,\n\t // and each group is converted to its 10-bit binary equivalent.\n\t for (i = 0; i + 3 <= this.data.length; i += 3) {\n\t group = this.data.substr(i, 3);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, 10);\n\t }\n\n\t // If the number of input digits is not an exact multiple of three,\n\t // the final one or two digits are converted to 4 or 7 bits respectively.\n\t var remainingNum = this.data.length - i;\n\t if (remainingNum > 0) {\n\t group = this.data.substr(i);\n\t value = parseInt(group, 10);\n\n\t bitBuffer.put(value, remainingNum * 3 + 1);\n\t }\n\t};\n\n\tmodule.exports = NumericData;\n\n\t},{\"./mode\":14}],16:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar GF = require('./galois-field');\n\n\t/**\n\t * Multiplies two polynomials inside Galois Field\n\t *\n\t * @param {Buffer} p1 Polynomial\n\t * @param {Buffer} p2 Polynomial\n\t * @return {Buffer} Product of p1 and p2\n\t */\n\texports.mul = function mul (p1, p2) {\n\t var coeff = BufferUtil.alloc(p1.length + p2.length - 1);\n\n\t for (var i = 0; i < p1.length; i++) {\n\t for (var j = 0; j < p2.length; j++) {\n\t coeff[i + j] ^= GF.mul(p1[i], p2[j]);\n\t }\n\t }\n\n\t return coeff\n\t};\n\n\t/**\n\t * Calculate the remainder of polynomials division\n\t *\n\t * @param {Buffer} divident Polynomial\n\t * @param {Buffer} divisor Polynomial\n\t * @return {Buffer} Remainder\n\t */\n\texports.mod = function mod (divident, divisor) {\n\t var result = BufferUtil.from(divident);\n\n\t while ((result.length - divisor.length) >= 0) {\n\t var coeff = result[0];\n\n\t for (var i = 0; i < divisor.length; i++) {\n\t result[i] ^= GF.mul(divisor[i], coeff);\n\t }\n\n\t // remove all zeros from buffer head\n\t var offset = 0;\n\t while (offset < result.length && result[offset] === 0) offset++;\n\t result = result.slice(offset);\n\t }\n\n\t return result\n\t};\n\n\t/**\n\t * Generate an irreducible generator polynomial of specified degree\n\t * (used by Reed-Solomon encoder)\n\t *\n\t * @param {Number} degree Degree of the generator polynomial\n\t * @return {Buffer} Buffer containing polynomial coefficients\n\t */\n\texports.generateECPolynomial = function generateECPolynomial (degree) {\n\t var poly = BufferUtil.from([1]);\n\t for (var i = 0; i < degree; i++) {\n\t poly = exports.mul(poly, [1, GF.exp(i)]);\n\t }\n\n\t return poly\n\t};\n\n\t},{\"../utils/buffer\":28,\"./galois-field\":11}],17:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Utils = require('./utils');\n\tvar ECLevel = require('./error-correction-level');\n\tvar BitBuffer = require('./bit-buffer');\n\tvar BitMatrix = require('./bit-matrix');\n\tvar AlignmentPattern = require('./alignment-pattern');\n\tvar FinderPattern = require('./finder-pattern');\n\tvar MaskPattern = require('./mask-pattern');\n\tvar ECCode = require('./error-correction-code');\n\tvar ReedSolomonEncoder = require('./reed-solomon-encoder');\n\tvar Version = require('./version');\n\tvar FormatInfo = require('./format-info');\n\tvar Mode = require('./mode');\n\tvar Segments = require('./segments');\n\tvar isArray = require('isarray');\n\n\t/**\n\t * QRCode for JavaScript\n\t *\n\t * modified by Ryan Day for nodejs support\n\t * Copyright (c) 2011 Ryan Day\n\t *\n\t * Licensed under the MIT license:\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t//---------------------------------------------------------------------\n\t// QRCode for JavaScript\n\t//\n\t// Copyright (c) 2009 Kazuhiko Arase\n\t//\n\t// URL: http://www.d-project.com/\n\t//\n\t// Licensed under the MIT license:\n\t// http://www.opensource.org/licenses/mit-license.php\n\t//\n\t// The word \"QR Code\" is registered trademark of\n\t// DENSO WAVE INCORPORATED\n\t// http://www.denso-wave.com/qrcode/faqpatent-e.html\n\t//\n\t//---------------------------------------------------------------------\n\t*/\n\n\t/**\n\t * Add finder patterns bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupFinderPattern (matrix, version) {\n\t var size = matrix.size;\n\t var pos = FinderPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -1; r <= 7; r++) {\n\t if (row + r <= -1 || size <= row + r) continue\n\n\t for (var c = -1; c <= 7; c++) {\n\t if (col + c <= -1 || size <= col + c) continue\n\n\t if ((r >= 0 && r <= 6 && (c === 0 || c === 6)) ||\n\t (c >= 0 && c <= 6 && (r === 0 || r === 6)) ||\n\t (r >= 2 && r <= 4 && c >= 2 && c <= 4)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add timing pattern bits to matrix\n\t *\n\t * Note: this function must be called before {@link setupAlignmentPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t */\n\tfunction setupTimingPattern (matrix) {\n\t var size = matrix.size;\n\n\t for (var r = 8; r < size - 8; r++) {\n\t var value = r % 2 === 0;\n\t matrix.set(r, 6, value, true);\n\t matrix.set(6, r, value, true);\n\t }\n\t}\n\n\t/**\n\t * Add alignment patterns bits to matrix\n\t *\n\t * Note: this function must be called after {@link setupTimingPattern}\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupAlignmentPattern (matrix, version) {\n\t var pos = AlignmentPattern.getPositions(version);\n\n\t for (var i = 0; i < pos.length; i++) {\n\t var row = pos[i][0];\n\t var col = pos[i][1];\n\n\t for (var r = -2; r <= 2; r++) {\n\t for (var c = -2; c <= 2; c++) {\n\t if (r === -2 || r === 2 || c === -2 || c === 2 ||\n\t (r === 0 && c === 0)) {\n\t matrix.set(row + r, col + c, true, true);\n\t } else {\n\t matrix.set(row + r, col + c, false, true);\n\t }\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Add version info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Number} version QR Code version\n\t */\n\tfunction setupVersionInfo (matrix, version) {\n\t var size = matrix.size;\n\t var bits = Version.getEncodedBits(version);\n\t var row, col, mod;\n\n\t for (var i = 0; i < 18; i++) {\n\t row = Math.floor(i / 3);\n\t col = i % 3 + size - 8 - 3;\n\t mod = ((bits >> i) & 1) === 1;\n\n\t matrix.set(row, col, mod, true);\n\t matrix.set(col, row, mod, true);\n\t }\n\t}\n\n\t/**\n\t * Add format info bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {Number} maskPattern Mask pattern reference value\n\t */\n\tfunction setupFormatInfo (matrix, errorCorrectionLevel, maskPattern) {\n\t var size = matrix.size;\n\t var bits = FormatInfo.getEncodedBits(errorCorrectionLevel, maskPattern);\n\t var i, mod;\n\n\t for (i = 0; i < 15; i++) {\n\t mod = ((bits >> i) & 1) === 1;\n\n\t // vertical\n\t if (i < 6) {\n\t matrix.set(i, 8, mod, true);\n\t } else if (i < 8) {\n\t matrix.set(i + 1, 8, mod, true);\n\t } else {\n\t matrix.set(size - 15 + i, 8, mod, true);\n\t }\n\n\t // horizontal\n\t if (i < 8) {\n\t matrix.set(8, size - i - 1, mod, true);\n\t } else if (i < 9) {\n\t matrix.set(8, 15 - i - 1 + 1, mod, true);\n\t } else {\n\t matrix.set(8, 15 - i - 1, mod, true);\n\t }\n\t }\n\n\t // fixed module\n\t matrix.set(size - 8, 8, 1, true);\n\t}\n\n\t/**\n\t * Add encoded data bits to matrix\n\t *\n\t * @param {BitMatrix} matrix Modules matrix\n\t * @param {Buffer} data Data codewords\n\t */\n\tfunction setupData (matrix, data) {\n\t var size = matrix.size;\n\t var inc = -1;\n\t var row = size - 1;\n\t var bitIndex = 7;\n\t var byteIndex = 0;\n\n\t for (var col = size - 1; col > 0; col -= 2) {\n\t if (col === 6) col--;\n\n\t while (true) {\n\t for (var c = 0; c < 2; c++) {\n\t if (!matrix.isReserved(row, col - c)) {\n\t var dark = false;\n\n\t if (byteIndex < data.length) {\n\t dark = (((data[byteIndex] >>> bitIndex) & 1) === 1);\n\t }\n\n\t matrix.set(row, col - c, dark);\n\t bitIndex--;\n\n\t if (bitIndex === -1) {\n\t byteIndex++;\n\t bitIndex = 7;\n\t }\n\t }\n\t }\n\n\t row += inc;\n\n\t if (row < 0 || size <= row) {\n\t row -= inc;\n\t inc = -inc;\n\t break\n\t }\n\t }\n\t }\n\t}\n\n\t/**\n\t * Create encoded codewords from data input\n\t *\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @param {ByteData} data Data input\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createData (version, errorCorrectionLevel, segments) {\n\t // Prepare data buffer\n\t var buffer = new BitBuffer();\n\n\t segments.forEach(function (data) {\n\t // prefix data with mode indicator (4 bits)\n\t buffer.put(data.mode.bit, 4);\n\n\t // Prefix data with character count indicator.\n\t // The character count indicator is a string of bits that represents the\n\t // number of characters that are being encoded.\n\t // The character count indicator must be placed after the mode indicator\n\t // and must be a certain number of bits long, depending on the QR version\n\t // and data mode\n\t // @see {@link Mode.getCharCountIndicator}.\n\t buffer.put(data.getLength(), Mode.getCharCountIndicator(data.mode, version));\n\n\t // add binary data sequence to buffer\n\t data.write(buffer);\n\t });\n\n\t // Calculate required number of bits\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t // Add a terminator.\n\t // If the bit string is shorter than the total number of required bits,\n\t // a terminator of up to four 0s must be added to the right side of the string.\n\t // If the bit string is more than four bits shorter than the required number of bits,\n\t // add four 0s to the end.\n\t if (buffer.getLengthInBits() + 4 <= dataTotalCodewordsBits) {\n\t buffer.put(0, 4);\n\t }\n\n\t // If the bit string is fewer than four bits shorter, add only the number of 0s that\n\t // are needed to reach the required number of bits.\n\n\t // After adding the terminator, if the number of bits in the string is not a multiple of 8,\n\t // pad the string on the right with 0s to make the string's length a multiple of 8.\n\t while (buffer.getLengthInBits() % 8 !== 0) {\n\t buffer.putBit(0);\n\t }\n\n\t // Add pad bytes if the string is still shorter than the total number of required bits.\n\t // Extend the buffer to fill the data capacity of the symbol corresponding to\n\t // the Version and Error Correction Level by adding the Pad Codewords 11101100 (0xEC)\n\t // and 00010001 (0x11) alternately.\n\t var remainingByte = (dataTotalCodewordsBits - buffer.getLengthInBits()) / 8;\n\t for (var i = 0; i < remainingByte; i++) {\n\t buffer.put(i % 2 ? 0x11 : 0xEC, 8);\n\t }\n\n\t return createCodewords(buffer, version, errorCorrectionLevel)\n\t}\n\n\t/**\n\t * Encode input data with Reed-Solomon and return codewords with\n\t * relative error correction bits\n\t *\n\t * @param {BitBuffer} bitBuffer Data to encode\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorrectionLevel} errorCorrectionLevel Error correction level\n\t * @return {Buffer} Buffer containing encoded codewords\n\t */\n\tfunction createCodewords (bitBuffer, version, errorCorrectionLevel) {\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewords = totalCodewords - ecTotalCodewords;\n\n\t // Total number of blocks\n\t var ecTotalBlocks = ECCode.getBlocksCount(version, errorCorrectionLevel);\n\n\t // Calculate how many blocks each group should contain\n\t var blocksInGroup2 = totalCodewords % ecTotalBlocks;\n\t var blocksInGroup1 = ecTotalBlocks - blocksInGroup2;\n\n\t var totalCodewordsInGroup1 = Math.floor(totalCodewords / ecTotalBlocks);\n\n\t var dataCodewordsInGroup1 = Math.floor(dataTotalCodewords / ecTotalBlocks);\n\t var dataCodewordsInGroup2 = dataCodewordsInGroup1 + 1;\n\n\t // Number of EC codewords is the same for both groups\n\t var ecCount = totalCodewordsInGroup1 - dataCodewordsInGroup1;\n\n\t // Initialize a Reed-Solomon encoder with a generator polynomial of degree ecCount\n\t var rs = new ReedSolomonEncoder(ecCount);\n\n\t var offset = 0;\n\t var dcData = new Array(ecTotalBlocks);\n\t var ecData = new Array(ecTotalBlocks);\n\t var maxDataSize = 0;\n\t var buffer = BufferUtil.from(bitBuffer.buffer);\n\n\t // Divide the buffer into the required number of blocks\n\t for (var b = 0; b < ecTotalBlocks; b++) {\n\t var dataSize = b < blocksInGroup1 ? dataCodewordsInGroup1 : dataCodewordsInGroup2;\n\n\t // extract a block of data from buffer\n\t dcData[b] = buffer.slice(offset, offset + dataSize);\n\n\t // Calculate EC codewords for this data block\n\t ecData[b] = rs.encode(dcData[b]);\n\n\t offset += dataSize;\n\t maxDataSize = Math.max(maxDataSize, dataSize);\n\t }\n\n\t // Create final data\n\t // Interleave the data and error correction codewords from each block\n\t var data = BufferUtil.alloc(totalCodewords);\n\t var index = 0;\n\t var i, r;\n\n\t // Add data codewords\n\t for (i = 0; i < maxDataSize; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t if (i < dcData[r].length) {\n\t data[index++] = dcData[r][i];\n\t }\n\t }\n\t }\n\n\t // Apped EC codewords\n\t for (i = 0; i < ecCount; i++) {\n\t for (r = 0; r < ecTotalBlocks; r++) {\n\t data[index++] = ecData[r][i];\n\t }\n\t }\n\n\t return data\n\t}\n\n\t/**\n\t * Build QR Code symbol\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @param {ErrorCorretionLevel} errorCorrectionLevel Error level\n\t * @param {MaskPattern} maskPattern Mask pattern\n\t * @return {Object} Object containing symbol data\n\t */\n\tfunction createSymbol (data, version, errorCorrectionLevel, maskPattern) {\n\t var segments;\n\n\t if (isArray(data)) {\n\t segments = Segments.fromArray(data);\n\t } else if (typeof data === 'string') {\n\t var estimatedVersion = version;\n\n\t if (!estimatedVersion) {\n\t var rawSegments = Segments.rawSplit(data);\n\n\t // Estimate best version that can contain raw splitted segments\n\t estimatedVersion = Version.getBestVersionForData(rawSegments,\n\t errorCorrectionLevel);\n\t }\n\n\t // Build optimized segments\n\t // If estimated version is undefined, try with the highest version\n\t segments = Segments.fromString(data, estimatedVersion || 40);\n\t } else {\n\t throw new Error('Invalid data')\n\t }\n\n\t // Get the min version that can contain data\n\t var bestVersion = Version.getBestVersionForData(segments,\n\t errorCorrectionLevel);\n\n\t // If no version is found, data cannot be stored\n\t if (!bestVersion) {\n\t throw new Error('The amount of data is too big to be stored in a QR Code')\n\t }\n\n\t // If not specified, use min version as default\n\t if (!version) {\n\t version = bestVersion;\n\n\t // Check if the specified version can contain the data\n\t } else if (version < bestVersion) {\n\t throw new Error('\\n' +\n\t 'The chosen QR Code version cannot contain this amount of data.\\n' +\n\t 'Minimum version required to store current data is: ' + bestVersion + '.\\n'\n\t )\n\t }\n\n\t var dataBits = createData(version, errorCorrectionLevel, segments);\n\n\t // Allocate matrix buffer\n\t var moduleCount = Utils.getSymbolSize(version);\n\t var modules = new BitMatrix(moduleCount);\n\n\t // Add function modules\n\t setupFinderPattern(modules, version);\n\t setupTimingPattern(modules);\n\t setupAlignmentPattern(modules, version);\n\n\t // Add temporary dummy bits for format info just to set them as reserved.\n\t // This is needed to prevent these bits from being masked by {@link MaskPattern.applyMask}\n\t // since the masking operation must be performed only on the encoding region.\n\t // These blocks will be replaced with correct values later in code.\n\t setupFormatInfo(modules, errorCorrectionLevel, 0);\n\n\t if (version >= 7) {\n\t setupVersionInfo(modules, version);\n\t }\n\n\t // Add data codewords\n\t setupData(modules, dataBits);\n\n\t if (isNaN(maskPattern)) {\n\t // Find best mask pattern\n\t maskPattern = MaskPattern.getBestMask(modules,\n\t setupFormatInfo.bind(null, modules, errorCorrectionLevel));\n\t }\n\n\t // Apply mask pattern\n\t MaskPattern.applyMask(maskPattern, modules);\n\n\t // Replace format info bits with correct values\n\t setupFormatInfo(modules, errorCorrectionLevel, maskPattern);\n\n\t return {\n\t modules: modules,\n\t version: version,\n\t errorCorrectionLevel: errorCorrectionLevel,\n\t maskPattern: maskPattern,\n\t segments: segments\n\t }\n\t}\n\n\t/**\n\t * QR Code\n\t *\n\t * @param {String | Array} data Input data\n\t * @param {Object} options Optional configurations\n\t * @param {Number} options.version QR Code version\n\t * @param {String} options.errorCorrectionLevel Error correction level\n\t * @param {Function} options.toSJISFunc Helper func to convert utf8 to sjis\n\t */\n\texports.create = function create (data, options) {\n\t if (typeof data === 'undefined' || data === '') {\n\t throw new Error('No input text')\n\t }\n\n\t var errorCorrectionLevel = ECLevel.M;\n\t var version;\n\t var mask;\n\n\t if (typeof options !== 'undefined') {\n\t // Use higher error correction level as default\n\t errorCorrectionLevel = ECLevel.from(options.errorCorrectionLevel, ECLevel.M);\n\t version = Version.from(options.version);\n\t mask = MaskPattern.from(options.maskPattern);\n\n\t if (options.toSJISFunc) {\n\t Utils.setToSJISFunction(options.toSJISFunc);\n\t }\n\t }\n\n\t return createSymbol(data, version, errorCorrectionLevel, mask)\n\t};\n\n\t},{\"../utils/buffer\":28,\"./alignment-pattern\":2,\"./bit-buffer\":4,\"./bit-matrix\":5,\"./error-correction-code\":7,\"./error-correction-level\":8,\"./finder-pattern\":9,\"./format-info\":10,\"./mask-pattern\":13,\"./mode\":14,\"./reed-solomon-encoder\":18,\"./segments\":20,\"./utils\":21,\"./version\":23,\"isarray\":33}],18:[function(require,module,exports){\n\tvar BufferUtil = require('../utils/buffer');\n\tvar Polynomial = require('./polynomial');\n\tvar Buffer = require('buffer').Buffer;\n\n\tfunction ReedSolomonEncoder (degree) {\n\t this.genPoly = undefined;\n\t this.degree = degree;\n\n\t if (this.degree) this.initialize(this.degree);\n\t}\n\n\t/**\n\t * Initialize the encoder.\n\t * The input param should correspond to the number of error correction codewords.\n\t *\n\t * @param {Number} degree\n\t */\n\tReedSolomonEncoder.prototype.initialize = function initialize (degree) {\n\t // create an irreducible generator polynomial\n\t this.degree = degree;\n\t this.genPoly = Polynomial.generateECPolynomial(this.degree);\n\t};\n\n\t/**\n\t * Encodes a chunk of data\n\t *\n\t * @param {Buffer} data Buffer containing input data\n\t * @return {Buffer} Buffer containing encoded data\n\t */\n\tReedSolomonEncoder.prototype.encode = function encode (data) {\n\t if (!this.genPoly) {\n\t throw new Error('Encoder not initialized')\n\t }\n\n\t // Calculate EC for this data block\n\t // extends data size to data+genPoly size\n\t var pad = BufferUtil.alloc(this.degree);\n\t var paddedData = Buffer.concat([data, pad], data.length + this.degree);\n\n\t // The error correction codewords are the remainder after dividing the data codewords\n\t // by a generator polynomial\n\t var remainder = Polynomial.mod(paddedData, this.genPoly);\n\n\t // return EC data blocks (last n byte, where n is the degree of genPoly)\n\t // If coefficients number in remainder are less than genPoly degree,\n\t // pad with 0s to the left to reach the needed number of coefficients\n\t var start = this.degree - remainder.length;\n\t if (start > 0) {\n\t var buff = BufferUtil.alloc(this.degree);\n\t remainder.copy(buff, start);\n\n\t return buff\n\t }\n\n\t return remainder\n\t};\n\n\tmodule.exports = ReedSolomonEncoder;\n\n\t},{\"../utils/buffer\":28,\"./polynomial\":16,\"buffer\":30}],19:[function(require,module,exports){\n\tvar numeric = '[0-9]+';\n\tvar alphanumeric = '[A-Z $%*+\\\\-./:]+';\n\tvar kanji = '(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|' +\n\t '[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|' +\n\t '[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|' +\n\t '[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+';\n\tkanji = kanji.replace(/u/g, '\\\\u');\n\n\tvar byte = '(?:(?![A-Z0-9 $%*+\\\\-./:]|' + kanji + ')(?:.|[\\r\\n]))+';\n\n\texports.KANJI = new RegExp(kanji, 'g');\n\texports.BYTE_KANJI = new RegExp('[^A-Z0-9 $%*+\\\\-./:]+', 'g');\n\texports.BYTE = new RegExp(byte, 'g');\n\texports.NUMERIC = new RegExp(numeric, 'g');\n\texports.ALPHANUMERIC = new RegExp(alphanumeric, 'g');\n\n\tvar TEST_KANJI = new RegExp('^' + kanji + '$');\n\tvar TEST_NUMERIC = new RegExp('^' + numeric + '$');\n\tvar TEST_ALPHANUMERIC = new RegExp('^[A-Z0-9 $%*+\\\\-./:]+$');\n\n\texports.testKanji = function testKanji (str) {\n\t return TEST_KANJI.test(str)\n\t};\n\n\texports.testNumeric = function testNumeric (str) {\n\t return TEST_NUMERIC.test(str)\n\t};\n\n\texports.testAlphanumeric = function testAlphanumeric (str) {\n\t return TEST_ALPHANUMERIC.test(str)\n\t};\n\n\t},{}],20:[function(require,module,exports){\n\tvar Mode = require('./mode');\n\tvar NumericData = require('./numeric-data');\n\tvar AlphanumericData = require('./alphanumeric-data');\n\tvar ByteData = require('./byte-data');\n\tvar KanjiData = require('./kanji-data');\n\tvar Regex = require('./regex');\n\tvar Utils = require('./utils');\n\tvar dijkstra = require('dijkstrajs');\n\n\t/**\n\t * Returns UTF8 byte length\n\t *\n\t * @param {String} str Input string\n\t * @return {Number} Number of byte\n\t */\n\tfunction getStringByteLength (str) {\n\t return unescape(encodeURIComponent(str)).length\n\t}\n\n\t/**\n\t * Get a list of segments of the specified mode\n\t * from a string\n\t *\n\t * @param {Mode} mode Segment mode\n\t * @param {String} str String to process\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegments (regex, mode, str) {\n\t var segments = [];\n\t var result;\n\n\t while ((result = regex.exec(str)) !== null) {\n\t segments.push({\n\t data: result[0],\n\t index: result.index,\n\t mode: mode,\n\t length: result[0].length\n\t });\n\t }\n\n\t return segments\n\t}\n\n\t/**\n\t * Extracts a series of segments with the appropriate\n\t * modes from a string\n\t *\n\t * @param {String} dataStr Input string\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction getSegmentsFromString (dataStr) {\n\t var numSegs = getSegments(Regex.NUMERIC, Mode.NUMERIC, dataStr);\n\t var alphaNumSegs = getSegments(Regex.ALPHANUMERIC, Mode.ALPHANUMERIC, dataStr);\n\t var byteSegs;\n\t var kanjiSegs;\n\n\t if (Utils.isKanjiModeEnabled()) {\n\t byteSegs = getSegments(Regex.BYTE, Mode.BYTE, dataStr);\n\t kanjiSegs = getSegments(Regex.KANJI, Mode.KANJI, dataStr);\n\t } else {\n\t byteSegs = getSegments(Regex.BYTE_KANJI, Mode.BYTE, dataStr);\n\t kanjiSegs = [];\n\t }\n\n\t var segs = numSegs.concat(alphaNumSegs, byteSegs, kanjiSegs);\n\n\t return segs\n\t .sort(function (s1, s2) {\n\t return s1.index - s2.index\n\t })\n\t .map(function (obj) {\n\t return {\n\t data: obj.data,\n\t mode: obj.mode,\n\t length: obj.length\n\t }\n\t })\n\t}\n\n\t/**\n\t * Returns how many bits are needed to encode a string of\n\t * specified length with the specified mode\n\t *\n\t * @param {Number} length String length\n\t * @param {Mode} mode Segment mode\n\t * @return {Number} Bit length\n\t */\n\tfunction getSegmentBitsLength (length, mode) {\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return NumericData.getBitsLength(length)\n\t case Mode.ALPHANUMERIC:\n\t return AlphanumericData.getBitsLength(length)\n\t case Mode.KANJI:\n\t return KanjiData.getBitsLength(length)\n\t case Mode.BYTE:\n\t return ByteData.getBitsLength(length)\n\t }\n\t}\n\n\t/**\n\t * Merges adjacent segments which have the same mode\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction mergeSegments (segs) {\n\t return segs.reduce(function (acc, curr) {\n\t var prevSeg = acc.length - 1 >= 0 ? acc[acc.length - 1] : null;\n\t if (prevSeg && prevSeg.mode === curr.mode) {\n\t acc[acc.length - 1].data += curr.data;\n\t return acc\n\t }\n\n\t acc.push(curr);\n\t return acc\n\t }, [])\n\t}\n\n\t/**\n\t * Generates a list of all possible nodes combination which\n\t * will be used to build a segments graph.\n\t *\n\t * Nodes are divided by groups. Each group will contain a list of all the modes\n\t * in which is possible to encode the given text.\n\t *\n\t * For example the text '12345' can be encoded as Numeric, Alphanumeric or Byte.\n\t * The group for '12345' will contain then 3 objects, one for each\n\t * possible encoding mode.\n\t *\n\t * Each node represents a possible segment.\n\t *\n\t * @param {Array} segs Array of object with segments data\n\t * @return {Array} Array of object with segments data\n\t */\n\tfunction buildNodes (segs) {\n\t var nodes = [];\n\t for (var i = 0; i < segs.length; i++) {\n\t var seg = segs[i];\n\n\t switch (seg.mode) {\n\t case Mode.NUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.ALPHANUMERIC, length: seg.length },\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.ALPHANUMERIC:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: seg.length }\n\t ]);\n\t break\n\t case Mode.KANJI:\n\t nodes.push([seg,\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t break\n\t case Mode.BYTE:\n\t nodes.push([\n\t { data: seg.data, mode: Mode.BYTE, length: getStringByteLength(seg.data) }\n\t ]);\n\t }\n\t }\n\n\t return nodes\n\t}\n\n\t/**\n\t * Builds a graph from a list of nodes.\n\t * All segments in each node group will be connected with all the segments of\n\t * the next group and so on.\n\t *\n\t * At each connection will be assigned a weight depending on the\n\t * segment's byte length.\n\t *\n\t * @param {Array} nodes Array of object with segments data\n\t * @param {Number} version QR Code version\n\t * @return {Object} Graph of all possible segments\n\t */\n\tfunction buildGraph (nodes, version) {\n\t var table = {};\n\t var graph = {'start': {}};\n\t var prevNodeIds = ['start'];\n\n\t for (var i = 0; i < nodes.length; i++) {\n\t var nodeGroup = nodes[i];\n\t var currentNodeIds = [];\n\n\t for (var j = 0; j < nodeGroup.length; j++) {\n\t var node = nodeGroup[j];\n\t var key = '' + i + j;\n\n\t currentNodeIds.push(key);\n\t table[key] = { node: node, lastCount: 0 };\n\t graph[key] = {};\n\n\t for (var n = 0; n < prevNodeIds.length; n++) {\n\t var prevNodeId = prevNodeIds[n];\n\n\t if (table[prevNodeId] && table[prevNodeId].node.mode === node.mode) {\n\t graph[prevNodeId][key] =\n\t getSegmentBitsLength(table[prevNodeId].lastCount + node.length, node.mode) -\n\t getSegmentBitsLength(table[prevNodeId].lastCount, node.mode);\n\n\t table[prevNodeId].lastCount += node.length;\n\t } else {\n\t if (table[prevNodeId]) table[prevNodeId].lastCount = node.length;\n\n\t graph[prevNodeId][key] = getSegmentBitsLength(node.length, node.mode) +\n\t 4 + Mode.getCharCountIndicator(node.mode, version); // switch cost\n\t }\n\t }\n\t }\n\n\t prevNodeIds = currentNodeIds;\n\t }\n\n\t for (n = 0; n < prevNodeIds.length; n++) {\n\t graph[prevNodeIds[n]]['end'] = 0;\n\t }\n\n\t return { map: graph, table: table }\n\t}\n\n\t/**\n\t * Builds a segment from a specified data and mode.\n\t * If a mode is not specified, the more suitable will be used.\n\t *\n\t * @param {String} data Input data\n\t * @param {Mode | String} modesHint Data mode\n\t * @return {Segment} Segment\n\t */\n\tfunction buildSingleSegment (data, modesHint) {\n\t var mode;\n\t var bestMode = Mode.getBestModeForData(data);\n\n\t mode = Mode.from(modesHint, bestMode);\n\n\t // Make sure data can be encoded\n\t if (mode !== Mode.BYTE && mode.bit < bestMode.bit) {\n\t throw new Error('\"' + data + '\"' +\n\t ' cannot be encoded with mode ' + Mode.toString(mode) +\n\t '.\\n Suggested mode is: ' + Mode.toString(bestMode))\n\t }\n\n\t // Use Mode.BYTE if Kanji support is disabled\n\t if (mode === Mode.KANJI && !Utils.isKanjiModeEnabled()) {\n\t mode = Mode.BYTE;\n\t }\n\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return new NumericData(data)\n\n\t case Mode.ALPHANUMERIC:\n\t return new AlphanumericData(data)\n\n\t case Mode.KANJI:\n\t return new KanjiData(data)\n\n\t case Mode.BYTE:\n\t return new ByteData(data)\n\t }\n\t}\n\n\t/**\n\t * Builds a list of segments from an array.\n\t * Array can contain Strings or Objects with segment's info.\n\t *\n\t * For each item which is a string, will be generated a segment with the given\n\t * string and the more appropriate encoding mode.\n\t *\n\t * For each item which is an object, will be generated a segment with the given\n\t * data and mode.\n\t * Objects must contain at least the property \"data\".\n\t * If property \"mode\" is not present, the more suitable mode will be used.\n\t *\n\t * @param {Array} array Array of objects with segments data\n\t * @return {Array} Array of Segments\n\t */\n\texports.fromArray = function fromArray (array) {\n\t return array.reduce(function (acc, seg) {\n\t if (typeof seg === 'string') {\n\t acc.push(buildSingleSegment(seg, null));\n\t } else if (seg.data) {\n\t acc.push(buildSingleSegment(seg.data, seg.mode));\n\t }\n\n\t return acc\n\t }, [])\n\t};\n\n\t/**\n\t * Builds an optimized sequence of segments from a string,\n\t * which will produce the shortest possible bitstream.\n\t *\n\t * @param {String} data Input string\n\t * @param {Number} version QR Code version\n\t * @return {Array} Array of segments\n\t */\n\texports.fromString = function fromString (data, version) {\n\t var segs = getSegmentsFromString(data, Utils.isKanjiModeEnabled());\n\n\t var nodes = buildNodes(segs);\n\t var graph = buildGraph(nodes, version);\n\t var path = dijkstra.find_path(graph.map, 'start', 'end');\n\n\t var optimizedSegs = [];\n\t for (var i = 1; i < path.length - 1; i++) {\n\t optimizedSegs.push(graph.table[path[i]].node);\n\t }\n\n\t return exports.fromArray(mergeSegments(optimizedSegs))\n\t};\n\n\t/**\n\t * Splits a string in various segments with the modes which\n\t * best represent their content.\n\t * The produced segments are far from being optimized.\n\t * The output of this function is only used to estimate a QR Code version\n\t * which may contain the data.\n\t *\n\t * @param {string} data Input string\n\t * @return {Array} Array of segments\n\t */\n\texports.rawSplit = function rawSplit (data) {\n\t return exports.fromArray(\n\t getSegmentsFromString(data, Utils.isKanjiModeEnabled())\n\t )\n\t};\n\n\t},{\"./alphanumeric-data\":3,\"./byte-data\":6,\"./kanji-data\":12,\"./mode\":14,\"./numeric-data\":15,\"./regex\":19,\"./utils\":21,\"dijkstrajs\":31}],21:[function(require,module,exports){\n\tvar toSJISFunction;\n\tvar CODEWORDS_COUNT = [\n\t 0, // Not used\n\t 26, 44, 70, 100, 134, 172, 196, 242, 292, 346,\n\t 404, 466, 532, 581, 655, 733, 815, 901, 991, 1085,\n\t 1156, 1258, 1364, 1474, 1588, 1706, 1828, 1921, 2051, 2185,\n\t 2323, 2465, 2611, 2761, 2876, 3034, 3196, 3362, 3532, 3706\n\t];\n\n\t/**\n\t * Returns the QR Code size for the specified version\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} size of QR code\n\t */\n\texports.getSymbolSize = function getSymbolSize (version) {\n\t if (!version) throw new Error('\"version\" cannot be null or undefined')\n\t if (version < 1 || version > 40) throw new Error('\"version\" should be in range from 1 to 40')\n\t return version * 4 + 17\n\t};\n\n\t/**\n\t * Returns the total number of codewords used to store data and EC information.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Data length in bits\n\t */\n\texports.getSymbolTotalCodewords = function getSymbolTotalCodewords (version) {\n\t return CODEWORDS_COUNT[version]\n\t};\n\n\t/**\n\t * Encode data with Bose-Chaudhuri-Hocquenghem\n\t *\n\t * @param {Number} data Value to encode\n\t * @return {Number} Encoded value\n\t */\n\texports.getBCHDigit = function (data) {\n\t var digit = 0;\n\n\t while (data !== 0) {\n\t digit++;\n\t data >>>= 1;\n\t }\n\n\t return digit\n\t};\n\n\texports.setToSJISFunction = function setToSJISFunction (f) {\n\t if (typeof f !== 'function') {\n\t throw new Error('\"toSJISFunc\" is not a valid function.')\n\t }\n\n\t toSJISFunction = f;\n\t};\n\n\texports.isKanjiModeEnabled = function () {\n\t return typeof toSJISFunction !== 'undefined'\n\t};\n\n\texports.toSJIS = function toSJIS (kanji) {\n\t return toSJISFunction(kanji)\n\t};\n\n\t},{}],22:[function(require,module,exports){\n\t/**\n\t * Check if QR Code version is valid\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Boolean} true if valid version, false otherwise\n\t */\n\texports.isValid = function isValid (version) {\n\t return !isNaN(version) && version >= 1 && version <= 40\n\t};\n\n\t},{}],23:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\tvar ECCode = require('./error-correction-code');\n\tvar ECLevel = require('./error-correction-level');\n\tvar Mode = require('./mode');\n\tvar VersionCheck = require('./version-check');\n\tvar isArray = require('isarray');\n\n\t// Generator polynomial used to encode version information\n\tvar G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n\tvar G18_BCH = Utils.getBCHDigit(G18);\n\n\tfunction getBestVersionForDataLength (mode, length, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, mode)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\tfunction getReservedBitsCount (mode, version) {\n\t // Character count indicator + mode indicator bits\n\t return Mode.getCharCountIndicator(mode, version) + 4\n\t}\n\n\tfunction getTotalBitsFromDataArray (segments, version) {\n\t var totalBits = 0;\n\n\t segments.forEach(function (data) {\n\t var reservedBits = getReservedBitsCount(data.mode, version);\n\t totalBits += reservedBits + data.getBitsLength();\n\t });\n\n\t return totalBits\n\t}\n\n\tfunction getBestVersionForMixedData (segments, errorCorrectionLevel) {\n\t for (var currentVersion = 1; currentVersion <= 40; currentVersion++) {\n\t var length = getTotalBitsFromDataArray(segments, currentVersion);\n\t if (length <= exports.getCapacity(currentVersion, errorCorrectionLevel, Mode.MIXED)) {\n\t return currentVersion\n\t }\n\t }\n\n\t return undefined\n\t}\n\n\t/**\n\t * Returns version number from a value.\n\t * If value is not a valid version, returns defaultValue\n\t *\n\t * @param {Number|String} value QR Code version\n\t * @param {Number} defaultValue Fallback value\n\t * @return {Number} QR Code version number\n\t */\n\texports.from = function from (value, defaultValue) {\n\t if (VersionCheck.isValid(value)) {\n\t return parseInt(value, 10)\n\t }\n\n\t return defaultValue\n\t};\n\n\t/**\n\t * Returns how much data can be stored with the specified QR code version\n\t * and error correction level\n\t *\n\t * @param {Number} version QR Code version (1-40)\n\t * @param {Number} errorCorrectionLevel Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} Quantity of storable data\n\t */\n\texports.getCapacity = function getCapacity (version, errorCorrectionLevel, mode) {\n\t if (!VersionCheck.isValid(version)) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t // Use Byte mode as default\n\t if (typeof mode === 'undefined') mode = Mode.BYTE;\n\n\t // Total codewords for this QR code version (Data + Error correction)\n\t var totalCodewords = Utils.getSymbolTotalCodewords(version);\n\n\t // Total number of error correction codewords\n\t var ecTotalCodewords = ECCode.getTotalCodewordsCount(version, errorCorrectionLevel);\n\n\t // Total number of data codewords\n\t var dataTotalCodewordsBits = (totalCodewords - ecTotalCodewords) * 8;\n\n\t if (mode === Mode.MIXED) return dataTotalCodewordsBits\n\n\t var usableBits = dataTotalCodewordsBits - getReservedBitsCount(mode, version);\n\n\t // Return max number of storable codewords\n\t switch (mode) {\n\t case Mode.NUMERIC:\n\t return Math.floor((usableBits / 10) * 3)\n\n\t case Mode.ALPHANUMERIC:\n\t return Math.floor((usableBits / 11) * 2)\n\n\t case Mode.KANJI:\n\t return Math.floor(usableBits / 13)\n\n\t case Mode.BYTE:\n\t default:\n\t return Math.floor(usableBits / 8)\n\t }\n\t};\n\n\t/**\n\t * Returns the minimum version needed to contain the amount of data\n\t *\n\t * @param {Segment} data Segment of data\n\t * @param {Number} [errorCorrectionLevel=H] Error correction level\n\t * @param {Mode} mode Data mode\n\t * @return {Number} QR Code version\n\t */\n\texports.getBestVersionForData = function getBestVersionForData (data, errorCorrectionLevel) {\n\t var seg;\n\n\t var ecl = ECLevel.from(errorCorrectionLevel, ECLevel.M);\n\n\t if (isArray(data)) {\n\t if (data.length > 1) {\n\t return getBestVersionForMixedData(data, ecl)\n\t }\n\n\t if (data.length === 0) {\n\t return 1\n\t }\n\n\t seg = data[0];\n\t } else {\n\t seg = data;\n\t }\n\n\t return getBestVersionForDataLength(seg.mode, seg.getLength(), ecl)\n\t};\n\n\t/**\n\t * Returns version information with relative error correction bits\n\t *\n\t * The version information is included in QR Code symbols of version 7 or larger.\n\t * It consists of an 18-bit sequence containing 6 data bits,\n\t * with 12 error correction bits calculated using the (18, 6) Golay code.\n\t *\n\t * @param {Number} version QR Code version\n\t * @return {Number} Encoded version info bits\n\t */\n\texports.getEncodedBits = function getEncodedBits (version) {\n\t if (!VersionCheck.isValid(version) || version < 7) {\n\t throw new Error('Invalid QR Code version')\n\t }\n\n\t var d = version << 12;\n\n\t while (Utils.getBCHDigit(d) - G18_BCH >= 0) {\n\t d ^= (G18 << (Utils.getBCHDigit(d) - G18_BCH));\n\t }\n\n\t return (version << 12) | d\n\t};\n\n\t},{\"./error-correction-code\":7,\"./error-correction-level\":8,\"./mode\":14,\"./utils\":21,\"./version-check\":22,\"isarray\":33}],24:[function(require,module,exports){\n\n\tvar canPromise = require('./can-promise');\n\n\tvar QRCode = require('./core/qrcode');\n\tvar CanvasRenderer = require('./renderer/canvas');\n\tvar SvgRenderer = require('./renderer/svg-tag.js');\n\n\tfunction renderCanvas (renderFunc, canvas, text, opts, cb) {\n\t var args = [].slice.call(arguments, 1);\n\t var argsNum = args.length;\n\t var isLastArgCb = typeof args[argsNum - 1] === 'function';\n\n\t if (!isLastArgCb && !canPromise()) {\n\t throw new Error('Callback required as last argument')\n\t }\n\n\t if (isLastArgCb) {\n\t if (argsNum < 2) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 2) {\n\t cb = text;\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 3) {\n\t if (canvas.getContext && typeof cb === 'undefined') {\n\t cb = opts;\n\t opts = undefined;\n\t } else {\n\t cb = opts;\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\t }\n\t } else {\n\t if (argsNum < 1) {\n\t throw new Error('Too few arguments provided')\n\t }\n\n\t if (argsNum === 1) {\n\t text = canvas;\n\t canvas = opts = undefined;\n\t } else if (argsNum === 2 && !canvas.getContext) {\n\t opts = text;\n\t text = canvas;\n\t canvas = undefined;\n\t }\n\n\t return new Promise(function (resolve, reject) {\n\t try {\n\t var data = QRCode.create(text, opts);\n\t resolve(renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t reject(e);\n\t }\n\t })\n\t }\n\n\t try {\n\t var data = QRCode.create(text, opts);\n\t cb(null, renderFunc(data, canvas, opts));\n\t } catch (e) {\n\t cb(e);\n\t }\n\t}\n\n\texports.create = QRCode.create;\n\texports.toCanvas = renderCanvas.bind(null, CanvasRenderer.render);\n\texports.toDataURL = renderCanvas.bind(null, CanvasRenderer.renderToDataURL);\n\n\t// only svg for now.\n\texports.toString = renderCanvas.bind(null, function (data, _, opts) {\n\t return SvgRenderer.render(data, opts)\n\t});\n\n\t},{\"./can-promise\":1,\"./core/qrcode\":17,\"./renderer/canvas\":25,\"./renderer/svg-tag.js\":26}],25:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction clearCanvas (ctx, canvas, size) {\n\t ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n\t if (!canvas.style) canvas.style = {};\n\t canvas.height = size;\n\t canvas.width = size;\n\t canvas.style.height = size + 'px';\n\t canvas.style.width = size + 'px';\n\t}\n\n\tfunction getCanvasElement () {\n\t try {\n\t return document.createElement('canvas')\n\t } catch (e) {\n\t throw new Error('You need to specify a canvas element')\n\t }\n\t}\n\n\texports.render = function render (qrData, canvas, options) {\n\t var opts = options;\n\t var canvasEl = canvas;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!canvas) {\n\t canvasEl = getCanvasElement();\n\t }\n\n\t opts = Utils.getOptions(opts);\n\t var size = Utils.getImageWidth(qrData.modules.size, opts);\n\n\t var ctx = canvasEl.getContext('2d');\n\t var image = ctx.createImageData(size, size);\n\t Utils.qrToImageData(image.data, qrData, opts);\n\n\t clearCanvas(ctx, canvasEl, size);\n\t ctx.putImageData(image, 0, 0);\n\n\t return canvasEl\n\t};\n\n\texports.renderToDataURL = function renderToDataURL (qrData, canvas, options) {\n\t var opts = options;\n\n\t if (typeof opts === 'undefined' && (!canvas || !canvas.getContext)) {\n\t opts = canvas;\n\t canvas = undefined;\n\t }\n\n\t if (!opts) opts = {};\n\n\t var canvasEl = exports.render(qrData, canvas, opts);\n\n\t var type = opts.type || 'image/png';\n\t var rendererOpts = opts.rendererOpts || {};\n\n\t return canvasEl.toDataURL(type, rendererOpts.quality)\n\t};\n\n\t},{\"./utils\":27}],26:[function(require,module,exports){\n\tvar Utils = require('./utils');\n\n\tfunction getColorAttrib (color, attrib) {\n\t var alpha = color.a / 255;\n\t var str = attrib + '=\"' + color.hex + '\"';\n\n\t return alpha < 1\n\t ? str + ' ' + attrib + '-opacity=\"' + alpha.toFixed(2).slice(1) + '\"'\n\t : str\n\t}\n\n\tfunction svgCmd (cmd, x, y) {\n\t var str = cmd + x;\n\t if (typeof y !== 'undefined') str += ' ' + y;\n\n\t return str\n\t}\n\n\tfunction qrToPath (data, size, margin) {\n\t var path = '';\n\t var moveBy = 0;\n\t var newRow = false;\n\t var lineLength = 0;\n\n\t for (var i = 0; i < data.length; i++) {\n\t var col = Math.floor(i % size);\n\t var row = Math.floor(i / size);\n\n\t if (!col && !newRow) newRow = true;\n\n\t if (data[i]) {\n\t lineLength++;\n\n\t if (!(i > 0 && col > 0 && data[i - 1])) {\n\t path += newRow\n\t ? svgCmd('M', col + margin, 0.5 + row + margin)\n\t : svgCmd('m', moveBy, 0);\n\n\t moveBy = 0;\n\t newRow = false;\n\t }\n\n\t if (!(col + 1 < size && data[i + 1])) {\n\t path += svgCmd('h', lineLength);\n\t lineLength = 0;\n\t }\n\t } else {\n\t moveBy++;\n\t }\n\t }\n\n\t return path\n\t}\n\n\texports.render = function render (qrData, options, cb) {\n\t var opts = Utils.getOptions(options);\n\t var size = qrData.modules.size;\n\t var data = qrData.modules.data;\n\t var qrcodesize = size + opts.margin * 2;\n\n\t var bg = !opts.color.light.a\n\t ? ''\n\t : '';\n\n\t var path =\n\t '';\n\n\t var viewBox = 'viewBox=\"' + '0 0 ' + qrcodesize + ' ' + qrcodesize + '\"';\n\n\t var width = !opts.width ? '' : 'width=\"' + opts.width + '\" height=\"' + opts.width + '\" ';\n\n\t var svgTag = '' + bg + path + '\\n';\n\n\t if (typeof cb === 'function') {\n\t cb(null, svgTag);\n\t }\n\n\t return svgTag\n\t};\n\n\t},{\"./utils\":27}],27:[function(require,module,exports){\n\tfunction hex2rgba (hex) {\n\t if (typeof hex === 'number') {\n\t hex = hex.toString();\n\t }\n\n\t if (typeof hex !== 'string') {\n\t throw new Error('Color should be defined as hex string')\n\t }\n\n\t var hexCode = hex.slice().replace('#', '').split('');\n\t if (hexCode.length < 3 || hexCode.length === 5 || hexCode.length > 8) {\n\t throw new Error('Invalid hex color: ' + hex)\n\t }\n\n\t // Convert from short to long form (fff -> ffffff)\n\t if (hexCode.length === 3 || hexCode.length === 4) {\n\t hexCode = Array.prototype.concat.apply([], hexCode.map(function (c) {\n\t return [c, c]\n\t }));\n\t }\n\n\t // Add default alpha value\n\t if (hexCode.length === 6) hexCode.push('F', 'F');\n\n\t var hexValue = parseInt(hexCode.join(''), 16);\n\n\t return {\n\t r: (hexValue >> 24) & 255,\n\t g: (hexValue >> 16) & 255,\n\t b: (hexValue >> 8) & 255,\n\t a: hexValue & 255,\n\t hex: '#' + hexCode.slice(0, 6).join('')\n\t }\n\t}\n\n\texports.getOptions = function getOptions (options) {\n\t if (!options) options = {};\n\t if (!options.color) options.color = {};\n\n\t var margin = typeof options.margin === 'undefined' ||\n\t options.margin === null ||\n\t options.margin < 0 ? 4 : options.margin;\n\n\t var width = options.width && options.width >= 21 ? options.width : undefined;\n\t var scale = options.scale || 4;\n\n\t return {\n\t width: width,\n\t scale: width ? 4 : scale,\n\t margin: margin,\n\t color: {\n\t dark: hex2rgba(options.color.dark || '#000000ff'),\n\t light: hex2rgba(options.color.light || '#ffffffff')\n\t },\n\t type: options.type,\n\t rendererOpts: options.rendererOpts || {}\n\t }\n\t};\n\n\texports.getScale = function getScale (qrSize, opts) {\n\t return opts.width && opts.width >= qrSize + opts.margin * 2\n\t ? opts.width / (qrSize + opts.margin * 2)\n\t : opts.scale\n\t};\n\n\texports.getImageWidth = function getImageWidth (qrSize, opts) {\n\t var scale = exports.getScale(qrSize, opts);\n\t return Math.floor((qrSize + opts.margin * 2) * scale)\n\t};\n\n\texports.qrToImageData = function qrToImageData (imgData, qr, opts) {\n\t var size = qr.modules.size;\n\t var data = qr.modules.data;\n\t var scale = exports.getScale(size, opts);\n\t var symbolSize = Math.floor((size + opts.margin * 2) * scale);\n\t var scaledMargin = opts.margin * scale;\n\t var palette = [opts.color.light, opts.color.dark];\n\n\t for (var i = 0; i < symbolSize; i++) {\n\t for (var j = 0; j < symbolSize; j++) {\n\t var posDst = (i * symbolSize + j) * 4;\n\t var pxColor = opts.color.light;\n\n\t if (i >= scaledMargin && j >= scaledMargin &&\n\t i < symbolSize - scaledMargin && j < symbolSize - scaledMargin) {\n\t var iSrc = Math.floor((i - scaledMargin) / scale);\n\t var jSrc = Math.floor((j - scaledMargin) / scale);\n\t pxColor = palette[data[iSrc * size + jSrc] ? 1 : 0];\n\t }\n\n\t imgData[posDst++] = pxColor.r;\n\t imgData[posDst++] = pxColor.g;\n\t imgData[posDst++] = pxColor.b;\n\t imgData[posDst] = pxColor.a;\n\t }\n\t }\n\t};\n\n\t},{}],28:[function(require,module,exports){\n\n\tvar isArray = require('isarray');\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }};\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tvar K_MAX_LENGTH = Buffer.TYPED_ARRAY_SUPPORT\n\t ? 0x7fffffff\n\t : 0x3fffffff;\n\n\tfunction Buffer (arg, offset, length) {\n\t if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n\t return new Buffer(arg, offset, length)\n\t }\n\n\t if (typeof arg === 'number') {\n\t return allocUnsafe(this, arg)\n\t }\n\n\t return from(this, arg, offset, length)\n\t}\n\n\tif (Buffer.TYPED_ARRAY_SUPPORT) {\n\t Buffer.prototype.__proto__ = Uint8Array.prototype;\n\t Buffer.__proto__ = Uint8Array;\n\n\t // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\t if (typeof Symbol !== 'undefined' && Symbol.species &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction isnan (val) {\n\t return val !== val // eslint-disable-line no-self-compare\n\t}\n\n\tfunction createBuffer (that, length) {\n\t var buf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t buf = new Uint8Array(length);\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = that;\n\t if (buf === null) {\n\t buf = new Buffer(length);\n\t }\n\t buf.length = length;\n\t }\n\n\t return buf\n\t}\n\n\tfunction allocUnsafe (that, size) {\n\t var buf = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n\t if (!Buffer.TYPED_ARRAY_SUPPORT) {\n\t for (var i = 0; i < size; ++i) {\n\t buf[i] = 0;\n\t }\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromString (that, string) {\n\t var length = byteLength(string) | 0;\n\t var buf = createBuffer(that, length);\n\n\t var actual = buf.write(string);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (that, array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(that, length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (that, array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\\'offset\\' is out of bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\\'length\\' is out of bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t // Return an augmented `Uint8Array` instance, for best performance\n\t buf.__proto__ = Buffer.prototype;\n\t } else {\n\t // Fallback: Return an object instance of the Buffer class\n\t buf = fromArrayLike(that, buf);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromObject (that, obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(that, len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj) {\n\t if ((typeof ArrayBuffer !== 'undefined' &&\n\t obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n\t if (typeof obj.length !== 'number' || isnan(obj.length)) {\n\t return createBuffer(that, 0)\n\t }\n\t return fromArrayLike(that, obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(that, obj.data)\n\t }\n\t }\n\n\t throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction byteLength (string) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n\t (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t string = '' + string;\n\t }\n\n\t var len = string.length;\n\t if (len === 0) return 0\n\n\t return utf8ToBytes(string).length\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction from (that, value, offset, length) {\n\t if (typeof value === 'number') {\n\t throw new TypeError('\"value\" argument must not be a number')\n\t }\n\n\t if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n\t return fromArrayBuffer(that, value, offset, length)\n\t }\n\n\t if (typeof value === 'string') {\n\t return fromString(that, value)\n\t }\n\n\t return fromObject(that, value)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length])\n\t } else if (isFinite(offset)) {\n\t offset = offset | 0;\n\t if (isFinite(length)) {\n\t length = length | 0;\n\t } else {\n\t length = undefined;\n\t }\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t return utf8Write(this, string, offset, length)\n\t};\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf;\n\t if (Buffer.TYPED_ARRAY_SUPPORT) {\n\t newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t newBuf.__proto__ = Buffer.prototype;\n\t } else {\n\t var sliceLen = end - start;\n\t newBuf = new Buffer(sliceLen, undefined);\n\t for (var i = 0; i < sliceLen; ++i) {\n\t newBuf[i] = this[i + start];\n\t }\n\t }\n\n\t return newBuf\n\t};\n\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\t var i;\n\n\t if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n\t // ascending copy from start\n\t for (i = 0; i < len; ++i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, start + len),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\tBuffer.prototype.fill = function fill (val, start, end) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t end = this.length;\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if (code < 256) {\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : new Buffer(val);\n\t var len = bytes.length;\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return createBuffer(null, 0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = allocUnsafe(null, length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tBuffer.byteLength = byteLength;\n\n\tBuffer.prototype._isBuffer = true;\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return !!(b != null && b._isBuffer)\n\t};\n\n\tmodule.exports.alloc = function (size) {\n\t var buffer = new Buffer(size);\n\t buffer.fill(0);\n\t return buffer\n\t};\n\n\tmodule.exports.from = function (data) {\n\t return new Buffer(data)\n\t};\n\n\t},{\"isarray\":33}],29:[function(require,module,exports){\n\n\texports.byteLength = byteLength;\n\texports.toByteArray = toByteArray;\n\texports.fromByteArray = fromByteArray;\n\n\tvar lookup = [];\n\tvar revLookup = [];\n\tvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\n\tvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\tfor (var i = 0, len = code.length; i < len; ++i) {\n\t lookup[i] = code[i];\n\t revLookup[code.charCodeAt(i)] = i;\n\t}\n\n\t// Support decoding URL-safe base64 strings, as Node.js does.\n\t// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\trevLookup['-'.charCodeAt(0)] = 62;\n\trevLookup['_'.charCodeAt(0)] = 63;\n\n\tfunction getLens (b64) {\n\t var len = b64.length;\n\n\t if (len % 4 > 0) {\n\t throw new Error('Invalid string. Length must be a multiple of 4')\n\t }\n\n\t // Trim off extra bytes after placeholder bytes are found\n\t // See: https://github.com/beatgammit/base64-js/issues/42\n\t var validLen = b64.indexOf('=');\n\t if (validLen === -1) validLen = len;\n\n\t var placeHoldersLen = validLen === len\n\t ? 0\n\t : 4 - (validLen % 4);\n\n\t return [validLen, placeHoldersLen]\n\t}\n\n\t// base64 is 4/3 + up to two characters of the original data\n\tfunction byteLength (b64) {\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction _byteLength (b64, validLen, placeHoldersLen) {\n\t return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n\t}\n\n\tfunction toByteArray (b64) {\n\t var tmp;\n\t var lens = getLens(b64);\n\t var validLen = lens[0];\n\t var placeHoldersLen = lens[1];\n\n\t var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n\t var curByte = 0;\n\n\t // if there are placeholders, only get up to the last complete 4 chars\n\t var len = placeHoldersLen > 0\n\t ? validLen - 4\n\t : validLen;\n\n\t var i;\n\t for (i = 0; i < len; i += 4) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 18) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 12) |\n\t (revLookup[b64.charCodeAt(i + 2)] << 6) |\n\t revLookup[b64.charCodeAt(i + 3)];\n\t arr[curByte++] = (tmp >> 16) & 0xFF;\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 2) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 2) |\n\t (revLookup[b64.charCodeAt(i + 1)] >> 4);\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t if (placeHoldersLen === 1) {\n\t tmp =\n\t (revLookup[b64.charCodeAt(i)] << 10) |\n\t (revLookup[b64.charCodeAt(i + 1)] << 4) |\n\t (revLookup[b64.charCodeAt(i + 2)] >> 2);\n\t arr[curByte++] = (tmp >> 8) & 0xFF;\n\t arr[curByte++] = tmp & 0xFF;\n\t }\n\n\t return arr\n\t}\n\n\tfunction tripletToBase64 (num) {\n\t return lookup[num >> 18 & 0x3F] +\n\t lookup[num >> 12 & 0x3F] +\n\t lookup[num >> 6 & 0x3F] +\n\t lookup[num & 0x3F]\n\t}\n\n\tfunction encodeChunk (uint8, start, end) {\n\t var tmp;\n\t var output = [];\n\t for (var i = start; i < end; i += 3) {\n\t tmp =\n\t ((uint8[i] << 16) & 0xFF0000) +\n\t ((uint8[i + 1] << 8) & 0xFF00) +\n\t (uint8[i + 2] & 0xFF);\n\t output.push(tripletToBase64(tmp));\n\t }\n\t return output.join('')\n\t}\n\n\tfunction fromByteArray (uint8) {\n\t var tmp;\n\t var len = uint8.length;\n\t var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\t var parts = [];\n\t var maxChunkLength = 16383; // must be multiple of 3\n\n\t // go through the array every three bytes, we'll deal with trailing stuff later\n\t for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n\t parts.push(encodeChunk(\n\t uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n\t ));\n\t }\n\n\t // pad the end with zeros, but make sure to not forget the extra bytes\n\t if (extraBytes === 1) {\n\t tmp = uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 2] +\n\t lookup[(tmp << 4) & 0x3F] +\n\t '=='\n\t );\n\t } else if (extraBytes === 2) {\n\t tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n\t parts.push(\n\t lookup[tmp >> 10] +\n\t lookup[(tmp >> 4) & 0x3F] +\n\t lookup[(tmp << 2) & 0x3F] +\n\t '='\n\t );\n\t }\n\n\t return parts.join('')\n\t}\n\n\t},{}],30:[function(require,module,exports){\n\n\tvar base64 = require('base64-js');\n\tvar ieee754 = require('ieee754');\n\tvar customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n\t ? Symbol.for('nodejs.util.inspect.custom')\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tvar K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t var arr = new Uint8Array(1);\n\t var proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, Uint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t var buf = new Uint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\t// Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n\tif (typeof Symbol !== 'undefined' && Symbol.species != null &&\n\t Buffer[Symbol.species] === Buffer) {\n\t Object.defineProperty(Buffer, Symbol.species, {\n\t value: null,\n\t configurable: true,\n\t enumerable: false,\n\t writable: false\n\t });\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (ArrayBuffer.isView(value)) {\n\t return fromArrayLike(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, ArrayBuffer) ||\n\t (value && isInstance(value.buffer, ArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t var valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t var b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(\n\t value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n\t )\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, Uint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpretted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t var length = byteLength(string, encoding) | 0;\n\t var buf = createBuffer(length);\n\n\t var actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t var length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t var buf = createBuffer(length);\n\t for (var i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t var buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new Uint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new Uint8Array(array, byteOffset);\n\t } else {\n\t buf = new Uint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t var len = checked(obj.length) | 0;\n\t var buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t var x = a.length;\n\t var y = b.length;\n\n\t for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t var i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t var buffer = Buffer.allocUnsafe(length);\n\t var pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t var buf = list[i];\n\t if (isInstance(buf, Uint8Array)) {\n\t buf = Buffer.from(buf);\n\t }\n\t if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\t buf.copy(buffer, pos);\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t var len = string.length;\n\t var mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t var loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t var i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t var len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (var i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t var len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (var i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t var len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (var i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t var length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t var str = '';\n\t var max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return ''\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, Uint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t var x = thisEnd - thisStart;\n\t var y = end - start;\n\t var len = Math.min(x, y);\n\n\t var thisCopy = this.slice(thisStart, thisEnd);\n\t var targetCopy = target.slice(start, end);\n\n\t for (var i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof Uint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t var indexSize = 1;\n\t var arrLength = arr.length;\n\t var valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t var i;\n\t if (dir) {\n\t var foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t var found = true;\n\t for (var j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t var remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t var strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t for (var i = 0; i < length; ++i) {\n\t var parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction latin1Write (buf, string, offset, length) {\n\t return asciiWrite(buf, string, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t var remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t var loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Write(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t var res = [];\n\n\t var i = start;\n\t while (i < end) {\n\t var firstByte = buf[i];\n\t var codePoint = null;\n\t var bytesPerSequence = (firstByte > 0xEF) ? 4\n\t : (firstByte > 0xDF) ? 3\n\t : (firstByte > 0xBF) ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t var len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t var res = '';\n\t var i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t var ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (var i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t var len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t var out = '';\n\t for (var i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t var bytes = buf.slice(start, end);\n\t var res = '';\n\t for (var i = 0; i < bytes.length; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t var len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t var newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t var val = this[offset + --byteLength];\n\t var mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var val = this[offset];\n\t var mul = 1;\n\t var i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t var i = byteLength;\n\t var mul = 1;\n\t var val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t var val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var mul = 1;\n\t var i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = 0;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t var limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t var i = byteLength - 1;\n\t var mul = 1;\n\t var sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t var len = end - start;\n\n\t if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else if (this === target && start < targetStart && targetStart < end) {\n\t // descending copy from end\n\t for (var i = len - 1; i >= 0; --i) {\n\t target[i + targetStart] = this[i + start];\n\t }\n\t } else {\n\t Uint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t var code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t var i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t var bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t var len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t var codePoint;\n\t var length = string.length;\n\t var leadSurrogate = null;\n\t var bytes = [];\n\n\t for (var i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t var c, hi, lo;\n\t var byteArray = [];\n\t for (var i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t for (var i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tvar hexSliceLookupTable = (function () {\n\t var alphabet = '0123456789abcdef';\n\t var table = new Array(256);\n\t for (var i = 0; i < 16; ++i) {\n\t var i16 = i * 16;\n\t for (var j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t},{\"base64-js\":29,\"ieee754\":32}],31:[function(require,module,exports){\n\n\t/******************************************************************************\n\t * Created 2008-08-19.\n\t *\n\t * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n\t *\n\t * Copyright (C) 2008\n\t * Wyatt Baldwin \n\t * All rights reserved\n\t *\n\t * Licensed under the MIT license.\n\t *\n\t * http://www.opensource.org/licenses/mit-license.php\n\t *\n\t * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n\t * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n\t * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n\t * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n\t * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n\t * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n\t * THE SOFTWARE.\n\t *****************************************************************************/\n\tvar dijkstra = {\n\t single_source_shortest_paths: function(graph, s, d) {\n\t // Predecessor map for each node that has been encountered.\n\t // node ID => predecessor node ID\n\t var predecessors = {};\n\n\t // Costs of shortest paths from s to all nodes encountered.\n\t // node ID => cost\n\t var costs = {};\n\t costs[s] = 0;\n\n\t // Costs of shortest paths from s to all nodes encountered; differs from\n\t // `costs` in that it provides easy access to the node that currently has\n\t // the known shortest path from s.\n\t // XXX: Do we actually need both `costs` and `open`?\n\t var open = dijkstra.PriorityQueue.make();\n\t open.push(s, 0);\n\n\t var closest,\n\t u, v,\n\t cost_of_s_to_u,\n\t adjacent_nodes,\n\t cost_of_e,\n\t cost_of_s_to_u_plus_cost_of_e,\n\t cost_of_s_to_v,\n\t first_visit;\n\t while (!open.empty()) {\n\t // In the nodes remaining in graph that have a known cost from s,\n\t // find the node, u, that currently has the shortest path from s.\n\t closest = open.pop();\n\t u = closest.value;\n\t cost_of_s_to_u = closest.cost;\n\n\t // Get nodes adjacent to u...\n\t adjacent_nodes = graph[u] || {};\n\n\t // ...and explore the edges that connect u to those nodes, updating\n\t // the cost of the shortest paths to any or all of those nodes as\n\t // necessary. v is the node across the current edge from u.\n\t for (v in adjacent_nodes) {\n\t if (adjacent_nodes.hasOwnProperty(v)) {\n\t // Get the cost of the edge running from u to v.\n\t cost_of_e = adjacent_nodes[v];\n\n\t // Cost of s to u plus the cost of u to v across e--this is *a*\n\t // cost from s to v that may or may not be less than the current\n\t // known cost to v.\n\t cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n\t // If we haven't visited v yet OR if the current known cost from s to\n\t // v is greater than the new cost we just found (cost of s to u plus\n\t // cost of u to v across e), update v's cost in the cost list and\n\t // update v's predecessor in the predecessor list (it's now u).\n\t cost_of_s_to_v = costs[v];\n\t first_visit = (typeof costs[v] === 'undefined');\n\t if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n\t costs[v] = cost_of_s_to_u_plus_cost_of_e;\n\t open.push(v, cost_of_s_to_u_plus_cost_of_e);\n\t predecessors[v] = u;\n\t }\n\t }\n\t }\n\t }\n\n\t if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n\t var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n\t throw new Error(msg);\n\t }\n\n\t return predecessors;\n\t },\n\n\t extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n\t var nodes = [];\n\t var u = d;\n\t var predecessor;\n\t while (u) {\n\t nodes.push(u);\n\t predecessor = predecessors[u];\n\t u = predecessors[u];\n\t }\n\t nodes.reverse();\n\t return nodes;\n\t },\n\n\t find_path: function(graph, s, d) {\n\t var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n\t return dijkstra.extract_shortest_path_from_predecessor_list(\n\t predecessors, d);\n\t },\n\n\t /**\n\t * A very naive priority queue implementation.\n\t */\n\t PriorityQueue: {\n\t make: function (opts) {\n\t var T = dijkstra.PriorityQueue,\n\t t = {},\n\t key;\n\t opts = opts || {};\n\t for (key in T) {\n\t if (T.hasOwnProperty(key)) {\n\t t[key] = T[key];\n\t }\n\t }\n\t t.queue = [];\n\t t.sorter = opts.sorter || T.default_sorter;\n\t return t;\n\t },\n\n\t default_sorter: function (a, b) {\n\t return a.cost - b.cost;\n\t },\n\n\t /**\n\t * Add a new item to the queue and ensure the highest priority element\n\t * is at the front of the queue.\n\t */\n\t push: function (value, cost) {\n\t var item = {value: value, cost: cost};\n\t this.queue.push(item);\n\t this.queue.sort(this.sorter);\n\t },\n\n\t /**\n\t * Return the highest priority element in the queue.\n\t */\n\t pop: function () {\n\t return this.queue.shift();\n\t },\n\n\t empty: function () {\n\t return this.queue.length === 0;\n\t }\n\t }\n\t};\n\n\n\t// node.js module exports\n\tif (typeof module !== 'undefined') {\n\t module.exports = dijkstra;\n\t}\n\n\t},{}],32:[function(require,module,exports){\n\texports.read = function (buffer, offset, isLE, mLen, nBytes) {\n\t var e, m;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var nBits = -7;\n\t var i = isLE ? (nBytes - 1) : 0;\n\t var d = isLE ? -1 : 1;\n\t var s = buffer[offset + i];\n\n\t i += d;\n\n\t e = s & ((1 << (-nBits)) - 1);\n\t s >>= (-nBits);\n\t nBits += eLen;\n\t for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t m = e & ((1 << (-nBits)) - 1);\n\t e >>= (-nBits);\n\t nBits += mLen;\n\t for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n\t if (e === 0) {\n\t e = 1 - eBias;\n\t } else if (e === eMax) {\n\t return m ? NaN : ((s ? -1 : 1) * Infinity)\n\t } else {\n\t m = m + Math.pow(2, mLen);\n\t e = e - eBias;\n\t }\n\t return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n\t};\n\n\texports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n\t var e, m, c;\n\t var eLen = (nBytes * 8) - mLen - 1;\n\t var eMax = (1 << eLen) - 1;\n\t var eBias = eMax >> 1;\n\t var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n\t var i = isLE ? 0 : (nBytes - 1);\n\t var d = isLE ? 1 : -1;\n\t var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n\t value = Math.abs(value);\n\n\t if (isNaN(value) || value === Infinity) {\n\t m = isNaN(value) ? 1 : 0;\n\t e = eMax;\n\t } else {\n\t e = Math.floor(Math.log(value) / Math.LN2);\n\t if (value * (c = Math.pow(2, -e)) < 1) {\n\t e--;\n\t c *= 2;\n\t }\n\t if (e + eBias >= 1) {\n\t value += rt / c;\n\t } else {\n\t value += rt * Math.pow(2, 1 - eBias);\n\t }\n\t if (value * c >= 2) {\n\t e++;\n\t c /= 2;\n\t }\n\n\t if (e + eBias >= eMax) {\n\t m = 0;\n\t e = eMax;\n\t } else if (e + eBias >= 1) {\n\t m = ((value * c) - 1) * Math.pow(2, mLen);\n\t e = e + eBias;\n\t } else {\n\t m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n\t e = 0;\n\t }\n\t }\n\n\t for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n\t e = (e << mLen) | m;\n\t eLen += mLen;\n\t for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n\t buffer[offset + i - d] |= s * 128;\n\t};\n\n\t},{}],33:[function(require,module,exports){\n\tvar toString = {}.toString;\n\n\tmodule.exports = Array.isArray || function (arr) {\n\t return toString.call(arr) == '[object Array]';\n\t};\n\n\t},{}]},{},[24])(24)\n\t});\n\n\n\t});\n\n\tvar index = {\n\t name: 'qrcode',\n\t props: {\n\t /**\n\t * The value of the QR code.\n\t */\n\t value: null,\n\n\t /**\n\t * The options for the QR code generator.\n\t * {@link https://github.com/soldair/node-qrcode#qr-code-options}\n\t */\n\t options: Object,\n\n\t /**\n\t * The tag name of the component's root element.\n\t */\n\t tag: {\n\t type: String,\n\t default: 'canvas'\n\t }\n\t },\n\t render: function render(createElement) {\n\t return createElement(this.tag, this.$slots.default);\n\t },\n\t watch: {\n\t $props: {\n\t deep: true,\n\t immediate: true,\n\n\t /**\n\t * Update the QR code when props changed.\n\t */\n\t handler: function handler() {\n\t if (this.$el) {\n\t this.generate();\n\t }\n\t }\n\t }\n\t },\n\t methods: {\n\t /**\n\t * Generate QR code.\n\t */\n\t generate: function generate() {\n\t var _this = this;\n\n\t var options = this.options,\n\t tag = this.tag;\n\t var value = String(this.value);\n\n\t if (tag === 'canvas') {\n\t qrcode.toCanvas(this.$el, value, options, function (error) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\t });\n\t } else if (tag === 'img') {\n\t qrcode.toDataURL(value, options, function (error, url) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.src = url;\n\t });\n\t } else {\n\t qrcode.toString(value, options, function (error, string) {\n\t /* istanbul ignore if */\n\t if (error) {\n\t throw error;\n\t }\n\n\t _this.$el.innerHTML = string;\n\t });\n\t }\n\t }\n\t },\n\t mounted: function mounted() {\n\t this.generate();\n\t }\n\t};\n\n\treturn index;\n\n})));\n","/**\n * @copyright 2022 Louis Chmn \n *\n * @author Louis Chmn \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nexport const ATOMIC_PERMISSIONS = {\n NONE: 0,\n READ: 1,\n UPDATE: 2,\n CREATE: 4,\n DELETE: 8,\n SHARE: 16\n};\nexport const BUNDLED_PERMISSIONS = {\n READ_ONLY: ATOMIC_PERMISSIONS.READ,\n UPLOAD_AND_UPDATE: ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.DELETE,\n FILE_DROP: ATOMIC_PERMISSIONS.CREATE,\n ALL: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.CREATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.DELETE | ATOMIC_PERMISSIONS.SHARE,\n ALL_FILE: ATOMIC_PERMISSIONS.UPDATE | ATOMIC_PERMISSIONS.READ | ATOMIC_PERMISSIONS.SHARE\n};\n\n/**\n * Return whether a given permissions set contains some permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToCheck - the permissions to check.\n * @return {boolean}\n */\nexport function hasPermissions(initialPermissionSet, permissionsToCheck) {\n return initialPermissionSet !== ATOMIC_PERMISSIONS.NONE && (initialPermissionSet & permissionsToCheck) === permissionsToCheck;\n}\n\n/**\n * Return whether a given permissions set is valid.\n *\n * @param {number} permissionsSet - the permissions set.\n *\n * @return {boolean}\n */\nexport function permissionsSetIsValid(permissionsSet) {\n // Must have at least READ or CREATE permission.\n if (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && !hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.CREATE)) {\n return false;\n }\n\n // Must have READ permission if have UPDATE or DELETE.\n if (!hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.READ) && (hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.UPDATE) || hasPermissions(permissionsSet, ATOMIC_PERMISSIONS.DELETE))) {\n return false;\n }\n return true;\n}\n\n/**\n * Add some permissions to an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToAdd - the permissions to add.\n *\n * @return {number}\n */\nexport function addPermissions(initialPermissionSet, permissionsToAdd) {\n return initialPermissionSet | permissionsToAdd;\n}\n\n/**\n * Remove some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the initial permissions.\n * @param {number} permissionsToSubtract - the permissions to remove.\n *\n * @return {number}\n */\nexport function subtractPermissions(initialPermissionSet, permissionsToSubtract) {\n return initialPermissionSet & ~permissionsToSubtract;\n}\n\n/**\n * Toggle some permissions from an initial set of permissions.\n *\n * @param {number} initialPermissionSet - the permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {number}\n */\nexport function togglePermissions(initialPermissionSet, permissionsToToggle) {\n if (hasPermissions(initialPermissionSet, permissionsToToggle)) {\n return subtractPermissions(initialPermissionSet, permissionsToToggle);\n } else {\n return addPermissions(initialPermissionSet, permissionsToToggle);\n }\n}\n\n/**\n * Return whether some given permissions can be toggled from a permission set.\n *\n * @param {number} permissionSet - the initial permissions set.\n * @param {number} permissionsToToggle - the permissions to toggle.\n *\n * @return {boolean}\n */\nexport function canTogglePermissions(permissionSet, permissionsToToggle) {\n return permissionsSetIsValid(togglePermissions(permissionSet, permissionsToToggle));\n}","import Share from '../models/Share.js';\nexport default {\n methods: {\n async openSharingDetails(shareRequestObject) {\n let share = {};\n // handle externalResults from OCA.Sharing.ShareSearch\n // TODO : Better name/interface for handler required\n // For example `externalAppCreateShareHook` with proper documentation\n if (shareRequestObject.handler) {\n if (this.suggestions) {\n shareRequestObject.suggestions = this.suggestions;\n shareRequestObject.fileInfo = this.fileInfo;\n shareRequestObject.query = this.query;\n }\n share = await shareRequestObject.handler(shareRequestObject);\n share = new Share(share);\n } else {\n share = this.mapShareRequestToShareObject(shareRequestObject);\n }\n const shareDetails = {\n fileInfo: this.fileInfo,\n share\n };\n this.$emit('open-sharing-details', shareDetails);\n },\n openShareDetailsForCustomSettings(share) {\n share.setCustomPermissions = true;\n this.openSharingDetails(share);\n },\n mapShareRequestToShareObject(shareRequestObject) {\n if (shareRequestObject.id) {\n return shareRequestObject;\n }\n const share = {\n attributes: [{\n enabled: true,\n key: 'download',\n scope: 'permissions'\n }],\n share_type: shareRequestObject.shareType,\n share_with: shareRequestObject.shareWith,\n is_no_user: shareRequestObject.isNoUser,\n user: shareRequestObject.shareWith,\n share_with_displayname: shareRequestObject.displayName,\n subtitle: shareRequestObject.subtitle,\n permissions: shareRequestObject.permissions,\n expiration: ''\n };\n return new Share(share);\n }\n }\n};","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author Christoph Wurst \n * @author Joas Schilling \n * @author John Molakvoæ \n * @author Julius Härtl \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\n// TODO: remove when ie not supported\nimport 'url-search-params-polyfill';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport axios from '@nextcloud/axios';\nimport Share from '../models/Share.js';\nimport { emit } from '@nextcloud/event-bus';\nconst shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares');\nexport default {\n methods: {\n /**\n * Create a new share\n *\n * @param {object} data destructuring object\n * @param {string} data.path path to the file/folder which should be shared\n * @param {number} data.shareType 0 = user; 1 = group; 3 = public link; 6 = federated cloud share\n * @param {string} data.shareWith user/group id with which the file should be shared (optional for shareType > 1)\n * @param {boolean} [data.publicUpload] allow public upload to a public shared folder\n * @param {string} [data.password] password to protect public link Share with\n * @param {number} [data.permissions] 1 = read; 2 = update; 4 = create; 8 = delete; 16 = share; 31 = all (default: 31, for public shares: 1)\n * @param {boolean} [data.sendPasswordByTalk] send the password via a talk conversation\n * @param {string} [data.expireDate] expire the shareautomatically after\n * @param {string} [data.label] custom label\n * @param {string} [data.attributes] Share attributes encoded as json\n * @param data.note\n * @return {Share} the new share\n * @throws {Error}\n */\n async createShare(_ref) {\n let {\n path,\n permissions,\n shareType,\n shareWith,\n publicUpload,\n password,\n sendPasswordByTalk,\n expireDate,\n label,\n note,\n attributes\n } = _ref;\n try {\n var _request$data;\n const request = await axios.post(shareUrl, {\n path,\n permissions,\n shareType,\n shareWith,\n publicUpload,\n password,\n sendPasswordByTalk,\n expireDate,\n label,\n note,\n attributes\n });\n if (!(request !== null && request !== void 0 && (_request$data = request.data) !== null && _request$data !== void 0 && _request$data.ocs)) {\n throw request;\n }\n const share = new Share(request.data.ocs.data);\n emit('files_sharing:share:created', {\n share\n });\n return share;\n } catch (error) {\n var _error$response;\n console.error('Error while creating share', error);\n const errorMessage = error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 || (_error$response = _error$response.data) === null || _error$response === void 0 || (_error$response = _error$response.ocs) === null || _error$response === void 0 || (_error$response = _error$response.meta) === null || _error$response === void 0 ? void 0 : _error$response.message;\n OC.Notification.showTemporary(errorMessage ? t('files_sharing', 'Error creating the share: {errorMessage}', {\n errorMessage\n }) : t('files_sharing', 'Error creating the share'), {\n type: 'error'\n });\n throw error;\n }\n },\n /**\n * Delete a share\n *\n * @param {number} id share id\n * @throws {Error}\n */\n async deleteShare(id) {\n try {\n var _request$data2;\n const request = await axios.delete(shareUrl + \"/\".concat(id));\n if (!(request !== null && request !== void 0 && (_request$data2 = request.data) !== null && _request$data2 !== void 0 && _request$data2.ocs)) {\n throw request;\n }\n emit('files_sharing:share:deleted', {\n id\n });\n return true;\n } catch (error) {\n var _error$response2;\n console.error('Error while deleting share', error);\n const errorMessage = error === null || error === void 0 || (_error$response2 = error.response) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.data) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.ocs) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.meta) === null || _error$response2 === void 0 ? void 0 : _error$response2.message;\n OC.Notification.showTemporary(errorMessage ? t('files_sharing', 'Error deleting the share: {errorMessage}', {\n errorMessage\n }) : t('files_sharing', 'Error deleting the share'), {\n type: 'error'\n });\n throw error;\n }\n },\n /**\n * Update a share\n *\n * @param {number} id share id\n * @param {object} properties key-value object of the properties to update\n */\n async updateShare(id, properties) {\n try {\n var _request$data3;\n const request = await axios.put(shareUrl + \"/\".concat(id), properties);\n emit('files_sharing:share:updated', {\n id\n });\n if (!(request !== null && request !== void 0 && (_request$data3 = request.data) !== null && _request$data3 !== void 0 && _request$data3.ocs)) {\n throw request;\n } else {\n return request.data.ocs.data;\n }\n } catch (error) {\n console.error('Error while updating share', error);\n if (error.response.status !== 400) {\n var _error$response3;\n const errorMessage = error === null || error === void 0 || (_error$response3 = error.response) === null || _error$response3 === void 0 || (_error$response3 = _error$response3.data) === null || _error$response3 === void 0 || (_error$response3 = _error$response3.ocs) === null || _error$response3 === void 0 || (_error$response3 = _error$response3.meta) === null || _error$response3 === void 0 ? void 0 : _error$response3.message;\n OC.Notification.showTemporary(errorMessage ? t('files_sharing', 'Error updating the share: {errorMessage}', {\n errorMessage\n }) : t('files_sharing', 'Error updating the share'), {\n type: 'error'\n });\n }\n const message = error.response.data.ocs.meta.message;\n throw new Error(message);\n }\n }\n }\n};","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n * @author Julius Härtl \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { Type as ShareTypes } from '@nextcloud/sharing';\nexport default {\n data() {\n return {\n SHARE_TYPES: ShareTypes\n };\n }\n};","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author Christoph Wurst \n * @author Daniel Calviño Sánchez \n * @author Gary Kim \n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Vincent Petry \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { getCurrentUser } from '@nextcloud/auth';\n// eslint-disable-next-line import/no-unresolved, n/no-missing-import\nimport PQueue from 'p-queue';\nimport debounce from 'debounce';\nimport Share from '../models/Share.js';\nimport SharesRequests from './ShareRequests.js';\nimport ShareTypes from './ShareTypes.js';\nimport Config from '../services/ConfigService.js';\nimport { BUNDLED_PERMISSIONS } from '../lib/SharePermissionsToolBox.js';\nexport default {\n mixins: [SharesRequests, ShareTypes],\n props: {\n fileInfo: {\n type: Object,\n default: () => {},\n required: true\n },\n share: {\n type: Share,\n default: null\n },\n isUnique: {\n type: Boolean,\n default: true\n }\n },\n data() {\n var _this$share;\n return {\n config: new Config(),\n // errors helpers\n errors: {},\n // component status toggles\n loading: false,\n saving: false,\n open: false,\n // concurrency management queue\n // we want one queue per share\n updateQueue: new PQueue({\n concurrency: 1\n }),\n /**\n * ! This allow vue to make the Share class state reactive\n * ! do not remove it ot you'll lose all reactivity here\n */\n reactiveState: (_this$share = this.share) === null || _this$share === void 0 ? void 0 : _this$share.state\n };\n },\n computed: {\n /**\n * Does the current share have a note\n *\n * @return {boolean}\n */\n hasNote: {\n get() {\n return this.share.note !== '';\n },\n set(enabled) {\n this.share.note = enabled ? null // enabled but user did not changed the content yet\n : ''; // empty = no note = disabled\n }\n },\n dateTomorrow() {\n return new Date(new Date().setDate(new Date().getDate() + 1));\n },\n // Datepicker language\n lang() {\n const weekdaysShort = window.dayNamesShort ? window.dayNamesShort // provided by nextcloud\n : ['Sun.', 'Mon.', 'Tue.', 'Wed.', 'Thu.', 'Fri.', 'Sat.'];\n const monthsShort = window.monthNamesShort ? window.monthNamesShort // provided by nextcloud\n : ['Jan.', 'Feb.', 'Mar.', 'Apr.', 'May.', 'Jun.', 'Jul.', 'Aug.', 'Sep.', 'Oct.', 'Nov.', 'Dec.'];\n const firstDayOfWeek = window.firstDay ? window.firstDay : 0;\n return {\n formatLocale: {\n firstDayOfWeek,\n monthsShort,\n weekdaysMin: weekdaysShort,\n weekdaysShort\n },\n monthFormat: 'MMM'\n };\n },\n isFolder() {\n return this.fileInfo.type === 'dir';\n },\n isPublicShare() {\n var _this$share$shareType;\n const shareType = (_this$share$shareType = this.share.shareType) !== null && _this$share$shareType !== void 0 ? _this$share$shareType : this.share.type;\n return [this.SHARE_TYPES.SHARE_TYPE_LINK, this.SHARE_TYPES.SHARE_TYPE_EMAIL].includes(shareType);\n },\n isRemoteShare() {\n return this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP || this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE;\n },\n isShareOwner() {\n return this.share && this.share.owner === getCurrentUser().uid;\n },\n isExpiryDateEnforced() {\n if (this.isPublicShare) {\n return this.config.isDefaultExpireDateEnforced;\n }\n if (this.isRemoteShare) {\n return this.config.isDefaultRemoteExpireDateEnforced;\n }\n return this.config.isDefaultInternalExpireDateEnforced;\n },\n hasCustomPermissions() {\n const bundledPermissions = [BUNDLED_PERMISSIONS.ALL, BUNDLED_PERMISSIONS.READ_ONLY, BUNDLED_PERMISSIONS.FILE_DROP];\n return !bundledPermissions.includes(this.share.permissions);\n },\n maxExpirationDateEnforced() {\n if (this.isExpiryDateEnforced) {\n if (this.isPublicShare) {\n return this.config.defaultExpirationDate;\n }\n if (this.isRemoteShare) {\n return this.config.defaultRemoteExpirationDateString;\n }\n // If it get's here then it must be an internal share\n return this.config.defaultInternalExpirationDate;\n }\n return null;\n }\n },\n methods: {\n /**\n * Check if a share is valid before\n * firing the request\n *\n * @param {Share} share the share to check\n * @return {boolean}\n */\n checkShare(share) {\n if (share.password) {\n if (typeof share.password !== 'string' || share.password.trim() === '') {\n return false;\n }\n }\n if (share.expirationDate) {\n const date = share.expirationDate;\n if (!date.isValid()) {\n return false;\n }\n }\n return true;\n },\n /**\n * @param {string} date a date with YYYY-MM-DD format\n * @return {Date} date\n */\n parseDateString(date) {\n var _date$match;\n if (!date) {\n return;\n }\n const regex = /([0-9]{4}-[0-9]{2}-[0-9]{2})/i;\n return new Date((_date$match = date.match(regex)) === null || _date$match === void 0 ? void 0 : _date$match.pop());\n },\n /**\n * @param {Date} date\n * @return {string} date a date with YYYY-MM-DD format\n */\n formatDateToString(date) {\n // Force utc time. Drop time information to be timezone-less\n const utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));\n // Format to YYYY-MM-DD\n return utcDate.toISOString().split('T')[0];\n },\n /**\n * Save given value to expireDate and trigger queueUpdate\n *\n * @param {Date} date\n */\n onExpirationChange: debounce(function (date) {\n this.share.expireDate = this.formatDateToString(new Date(date));\n }, 500),\n /**\n * Uncheck expire date\n * We need this method because @update:checked\n * is ran simultaneously as @uncheck, so\n * so we cannot ensure data is up-to-date\n */\n onExpirationDisable() {\n this.share.expireDate = '';\n },\n /**\n * Note changed, let's save it to a different key\n *\n * @param {string} note the share note\n */\n onNoteChange(note) {\n this.$set(this.share, 'newNote', note.trim());\n },\n /**\n * When the note change, we trim, save and dispatch\n *\n */\n onNoteSubmit() {\n if (this.share.newNote) {\n this.share.note = this.share.newNote;\n this.$delete(this.share, 'newNote');\n this.queueUpdate('note');\n }\n },\n /**\n * Delete share button handler\n */\n async onDelete() {\n try {\n this.loading = true;\n this.open = false;\n await this.deleteShare(this.share.id);\n console.debug('Share deleted', this.share.id);\n const message = this.share.itemType === 'file' ? t('files_sharing', 'File \"{path}\" has been unshared', {\n path: this.share.path\n }) : t('files_sharing', 'Folder \"{path}\" has been unshared', {\n path: this.share.path\n });\n showSuccess(message);\n this.$emit('remove:share', this.share);\n } catch (error) {\n // re-open menu if error\n this.open = true;\n } finally {\n this.loading = false;\n }\n },\n /**\n * Send an update of the share to the queue\n *\n * @param {Array} propertyNames the properties to sync\n */\n queueUpdate() {\n for (var _len = arguments.length, propertyNames = new Array(_len), _key = 0; _key < _len; _key++) {\n propertyNames[_key] = arguments[_key];\n }\n if (propertyNames.length === 0) {\n // Nothing to update\n return;\n }\n if (this.share.id) {\n const properties = {};\n // force value to string because that is what our\n // share api controller accepts\n propertyNames.forEach(name => {\n if (typeof this.share[name] === 'object') {\n properties[name] = JSON.stringify(this.share[name]);\n } else {\n properties[name] = this.share[name].toString();\n }\n });\n this.updateQueue.add(async () => {\n this.saving = true;\n this.errors = {};\n try {\n const updatedShare = await this.updateShare(this.share.id, properties);\n if (propertyNames.indexOf('password') >= 0) {\n // reset password state after sync\n this.$delete(this.share, 'newPassword');\n\n // updates password expiration time after sync\n this.share.passwordExpirationTime = updatedShare.password_expiration_time;\n }\n\n // clear any previous errors\n this.$delete(this.errors, propertyNames[0]);\n showSuccess(t('files_sharing', 'Share {propertyName} saved', {\n propertyName: propertyNames[0]\n }));\n } catch ({\n message\n }) {\n if (message && message !== '') {\n this.onSyncError(propertyNames[0], message);\n showError(t('files_sharing', message));\n }\n } finally {\n this.saving = false;\n }\n });\n return;\n }\n\n // This share does not exists on the server yet\n console.debug('Updated local share', this.share);\n },\n /**\n * Manage sync errors\n *\n * @param {string} property the errored property, e.g. 'password'\n * @param {string} message the error message\n */\n onSyncError(property, message) {\n // re-open menu if closed\n this.open = true;\n switch (property) {\n case 'password':\n case 'pending':\n case 'expireDate':\n case 'label':\n case 'note':\n {\n // show error\n this.$set(this.errors, property, message);\n let propertyEl = this.$refs[property];\n if (propertyEl) {\n if (propertyEl.$el) {\n propertyEl = propertyEl.$el;\n }\n // focus if there is a focusable action element\n const focusable = propertyEl.querySelector('.focusable');\n if (focusable) {\n focusable.focus();\n }\n }\n break;\n }\n case 'sendPasswordByTalk':\n {\n // show error\n this.$set(this.errors, property, message);\n\n // Restore previous state\n this.share.sendPasswordByTalk = !this.share.sendPasswordByTalk;\n break;\n }\n }\n },\n /**\n * Debounce queueUpdate to avoid requests spamming\n * more importantly for text data\n *\n * @param {string} property the property to sync\n */\n debounceQueueUpdate: debounce(function (property) {\n this.queueUpdate(property);\n }, 500)\n }\n};","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : String(i); }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author Daniel Calviño Sánchez \n * @author Gary Kim \n * @author Georg Ehrke \n * @author John Molakvoæ \n * @author Julius Härtl \n * @author Roeland Jago Douma \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nexport default class Share {\n /**\n * Create the share object\n *\n * @param {object} ocsData ocs request response\n */\n constructor(ocsData) {\n var _ocsData$attributes;\n _defineProperty(this, \"_share\", void 0);\n if (ocsData.ocs && ocsData.ocs.data && ocsData.ocs.data[0]) {\n ocsData = ocsData.ocs.data[0];\n }\n\n // convert int into boolean\n ocsData.hide_download = !!ocsData.hide_download;\n ocsData.mail_send = !!ocsData.mail_send;\n if (ocsData.attributes && typeof ocsData.attributes === 'string') {\n try {\n ocsData.attributes = JSON.parse(ocsData.attributes);\n } catch (e) {\n console.warn('Could not parse share attributes returned by server', ocsData.attributes);\n }\n }\n ocsData.attributes = (_ocsData$attributes = ocsData.attributes) !== null && _ocsData$attributes !== void 0 ? _ocsData$attributes : [];\n\n // store state\n this._share = ocsData;\n }\n\n /**\n * Get the share state\n * ! used for reactivity purpose\n * Do not remove. It allow vuejs to\n * inject its watchers into the #share\n * state and make the whole class reactive\n *\n * @return {object} the share raw state\n * @readonly\n * @memberof Sidebar\n */\n get state() {\n return this._share;\n }\n\n /**\n * get the share id\n *\n * @return {number}\n * @readonly\n * @memberof Share\n */\n get id() {\n return this._share.id;\n }\n\n /**\n * Get the share type\n *\n * @return {number}\n * @readonly\n * @memberof Share\n */\n get type() {\n return this._share.share_type;\n }\n\n /**\n * Get the share permissions\n * See OC.PERMISSION_* variables\n *\n * @return {number}\n * @readonly\n * @memberof Share\n */\n get permissions() {\n return this._share.permissions;\n }\n\n /**\n * Get the share attributes\n *\n * @return {Array}\n * @readonly\n * @memberof Share\n */\n get attributes() {\n return this._share.attributes;\n }\n\n /**\n * Set the share permissions\n * See OC.PERMISSION_* variables\n *\n * @param {number} permissions valid permission, See OC.PERMISSION_* variables\n * @memberof Share\n */\n set permissions(permissions) {\n this._share.permissions = permissions;\n }\n\n // SHARE OWNER --------------------------------------------------\n /**\n * Get the share owner uid\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get owner() {\n return this._share.uid_owner;\n }\n\n /**\n * Get the share owner's display name\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get ownerDisplayName() {\n return this._share.displayname_owner;\n }\n\n // SHARED WITH --------------------------------------------------\n /**\n * Get the share with entity uid\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get shareWith() {\n return this._share.share_with;\n }\n\n /**\n * Get the share with entity display name\n * fallback to its uid if none\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get shareWithDisplayName() {\n return this._share.share_with_displayname || this._share.share_with;\n }\n\n /**\n * Unique display name in case of multiple\n * duplicates results with the same name.\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get shareWithDisplayNameUnique() {\n return this._share.share_with_displayname_unique || this._share.share_with;\n }\n\n /**\n * Get the share with entity link\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get shareWithLink() {\n return this._share.share_with_link;\n }\n\n /**\n * Get the share with avatar if any\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get shareWithAvatar() {\n return this._share.share_with_avatar;\n }\n\n // SHARED FILE OR FOLDER OWNER ----------------------------------\n /**\n * Get the shared item owner uid\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get uidFileOwner() {\n return this._share.uid_file_owner;\n }\n\n /**\n * Get the shared item display name\n * fallback to its uid if none\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get displaynameFileOwner() {\n return this._share.displayname_file_owner || this._share.uid_file_owner;\n }\n\n // TIME DATA ----------------------------------------------------\n /**\n * Get the share creation timestamp\n *\n * @return {number}\n * @readonly\n * @memberof Share\n */\n get createdTime() {\n return this._share.stime;\n }\n\n /**\n * Get the expiration date\n *\n * @return {string} date with YYYY-MM-DD format\n * @readonly\n * @memberof Share\n */\n get expireDate() {\n return this._share.expiration;\n }\n\n /**\n * Set the expiration date\n *\n * @param {string} date the share expiration date with YYYY-MM-DD format\n * @memberof Share\n */\n set expireDate(date) {\n this._share.expiration = date;\n }\n\n // EXTRA DATA ---------------------------------------------------\n /**\n * Get the public share token\n *\n * @return {string} the token\n * @readonly\n * @memberof Share\n */\n get token() {\n return this._share.token;\n }\n\n /**\n * Get the share note if any\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get note() {\n return this._share.note;\n }\n\n /**\n * Set the share note if any\n *\n * @param {string} note the note\n * @memberof Share\n */\n set note(note) {\n this._share.note = note;\n }\n\n /**\n * Get the share label if any\n * Should only exist on link shares\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get label() {\n var _this$_share$label;\n return (_this$_share$label = this._share.label) !== null && _this$_share$label !== void 0 ? _this$_share$label : '';\n }\n\n /**\n * Set the share label if any\n * Should only be set on link shares\n *\n * @param {string} label the label\n * @memberof Share\n */\n set label(label) {\n this._share.label = label;\n }\n\n /**\n * Have a mail been sent\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get mailSend() {\n return this._share.mail_send === true;\n }\n\n /**\n * Hide the download button on public page\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get hideDownload() {\n return this._share.hide_download === true;\n }\n\n /**\n * Hide the download button on public page\n *\n * @param {boolean} state hide the button ?\n * @memberof Share\n */\n set hideDownload(state) {\n this._share.hide_download = state === true;\n }\n\n /**\n * Password protection of the share\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get password() {\n return this._share.password;\n }\n\n /**\n * Password protection of the share\n *\n * @param {string} password the share password\n * @memberof Share\n */\n set password(password) {\n this._share.password = password;\n }\n\n /**\n * Password expiration time\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get passwordExpirationTime() {\n return this._share.password_expiration_time;\n }\n\n /**\n * Password expiration time\n *\n * @param {string} password expiration time\n * @memberof Share\n */\n set passwordExpirationTime(passwordExpirationTime) {\n this._share.password_expiration_time = passwordExpirationTime;\n }\n\n /**\n * Password protection by Talk of the share\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get sendPasswordByTalk() {\n return this._share.send_password_by_talk;\n }\n\n /**\n * Password protection by Talk of the share\n *\n * @param {boolean} sendPasswordByTalk whether to send the password by Talk\n * or not\n * @memberof Share\n */\n set sendPasswordByTalk(sendPasswordByTalk) {\n this._share.send_password_by_talk = sendPasswordByTalk;\n }\n\n // SHARED ITEM DATA ---------------------------------------------\n /**\n * Get the shared item absolute full path\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get path() {\n return this._share.path;\n }\n\n /**\n * Return the item type: file or folder\n *\n * @return {string} 'folder' or 'file'\n * @readonly\n * @memberof Share\n */\n get itemType() {\n return this._share.item_type;\n }\n\n /**\n * Get the shared item mimetype\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get mimetype() {\n return this._share.mimetype;\n }\n\n /**\n * Get the shared item id\n *\n * @return {number}\n * @readonly\n * @memberof Share\n */\n get fileSource() {\n return this._share.file_source;\n }\n\n /**\n * Get the target path on the receiving end\n * e.g the file /xxx/aaa will be shared in\n * the receiving root as /aaa, the fileTarget is /aaa\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get fileTarget() {\n return this._share.file_target;\n }\n\n /**\n * Get the parent folder id if any\n *\n * @return {number}\n * @readonly\n * @memberof Share\n */\n get fileParent() {\n return this._share.file_parent;\n }\n\n // PERMISSIONS Shortcuts\n\n /**\n * Does this share have READ permissions\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get hasReadPermission() {\n return !!(this.permissions & OC.PERMISSION_READ);\n }\n\n /**\n * Does this share have CREATE permissions\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get hasCreatePermission() {\n return !!(this.permissions & OC.PERMISSION_CREATE);\n }\n\n /**\n * Does this share have DELETE permissions\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get hasDeletePermission() {\n return !!(this.permissions & OC.PERMISSION_DELETE);\n }\n\n /**\n * Does this share have UPDATE permissions\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get hasUpdatePermission() {\n return !!(this.permissions & OC.PERMISSION_UPDATE);\n }\n\n /**\n * Does this share have SHARE permissions\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get hasSharePermission() {\n return !!(this.permissions & OC.PERMISSION_SHARE);\n }\n\n /**\n * Does this share have download permissions\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get hasDownloadPermission() {\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === 'permissions' && attr.key === 'download') {\n return attr.enabled;\n }\n }\n return true;\n }\n set hasDownloadPermission(enabled) {\n this.setAttribute('permissions', 'download', !!enabled);\n }\n setAttribute(scope, key, enabled) {\n const attrUpdate = {\n scope,\n key,\n enabled\n };\n\n // try and replace existing\n for (const i in this._share.attributes) {\n const attr = this._share.attributes[i];\n if (attr.scope === attrUpdate.scope && attr.key === attrUpdate.key) {\n this._share.attributes.splice(i, 1, attrUpdate);\n return;\n }\n }\n this._share.attributes.push(attrUpdate);\n }\n\n // PERMISSIONS Shortcuts for the CURRENT USER\n // ! the permissions above are the share settings,\n // ! meaning the permissions for the recipient\n /**\n * Can the current user EDIT this share ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get canEdit() {\n return this._share.can_edit === true;\n }\n\n /**\n * Can the current user DELETE this share ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Share\n */\n get canDelete() {\n return this._share.can_delete === true;\n }\n\n /**\n * Top level accessible shared folder fileid for the current user\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get viaFileid() {\n return this._share.via_fileid;\n }\n\n /**\n * Top level accessible shared folder path for the current user\n *\n * @return {string}\n * @readonly\n * @memberof Share\n */\n get viaPath() {\n return this._share.via_path;\n }\n\n // TODO: SORT THOSE PROPERTIES\n\n get parent() {\n return this._share.parent;\n }\n get storageId() {\n return this._share.storage_id;\n }\n get storage() {\n return this._share.storage;\n }\n get itemSource() {\n return this._share.item_source;\n }\n get status() {\n return this._share.status;\n }\n}","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author Arthur Schiwon \n * @author John Molakvoæ \n * @author Julius Härtl \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport { getCapabilities } from '@nextcloud/capabilities';\nexport default class Config {\n constructor() {\n this._capabilities = getCapabilities();\n }\n\n /**\n * Get default share permissions, if any\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get defaultPermissions() {\n var _this$_capabilities$f;\n return (_this$_capabilities$f = this._capabilities.files_sharing) === null || _this$_capabilities$f === void 0 ? void 0 : _this$_capabilities$f.default_permissions;\n }\n\n /**\n * Is public upload allowed on link shares ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isPublicUploadEnabled() {\n var _this$_capabilities$f2;\n return (_this$_capabilities$f2 = this._capabilities.files_sharing) === null || _this$_capabilities$f2 === void 0 ? void 0 : _this$_capabilities$f2.public.upload;\n }\n\n /**\n * Are link share allowed ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isShareWithLinkAllowed() {\n return document.getElementById('allowShareWithLink') && document.getElementById('allowShareWithLink').value === 'yes';\n }\n\n /**\n * Get the federated sharing documentation link\n *\n * @return {string}\n * @readonly\n * @memberof Config\n */\n get federatedShareDocLink() {\n return OC.appConfig.core.federatedCloudShareDoc;\n }\n\n /**\n * Get the default link share expiration date\n *\n * @return {Date|null}\n * @readonly\n * @memberof Config\n */\n get defaultExpirationDate() {\n if (this.isDefaultExpireDateEnabled) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultExpireDate));\n }\n return null;\n }\n\n /**\n * Get the default internal expiration date\n *\n * @return {Date|null}\n * @readonly\n * @memberof Config\n */\n get defaultInternalExpirationDate() {\n if (this.isDefaultInternalExpireDateEnabled) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultInternalExpireDate));\n }\n return null;\n }\n\n /**\n * Get the default remote expiration date\n *\n * @return {Date|null}\n * @readonly\n * @memberof Config\n */\n get defaultRemoteExpirationDateString() {\n if (this.isDefaultRemoteExpireDateEnabled) {\n return new Date(new Date().setDate(new Date().getDate() + this.defaultRemoteExpireDate));\n }\n return null;\n }\n\n /**\n * Are link shares password-enforced ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get enforcePasswordForPublicLink() {\n return OC.appConfig.core.enforcePasswordForPublicLink === true;\n }\n\n /**\n * Is password asked by default on link shares ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get enableLinkPasswordByDefault() {\n return OC.appConfig.core.enableLinkPasswordByDefault === true;\n }\n\n /**\n * Is link shares expiration enforced ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isDefaultExpireDateEnforced() {\n return OC.appConfig.core.defaultExpireDateEnforced === true;\n }\n\n /**\n * Is there a default expiration date for new link shares ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isDefaultExpireDateEnabled() {\n return OC.appConfig.core.defaultExpireDateEnabled === true;\n }\n\n /**\n * Is internal shares expiration enforced ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isDefaultInternalExpireDateEnforced() {\n return OC.appConfig.core.defaultInternalExpireDateEnforced === true;\n }\n\n /**\n * Is remote shares expiration enforced ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isDefaultRemoteExpireDateEnforced() {\n return OC.appConfig.core.defaultRemoteExpireDateEnforced === true;\n }\n\n /**\n * Is there a default expiration date for new internal shares ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isDefaultInternalExpireDateEnabled() {\n return OC.appConfig.core.defaultInternalExpireDateEnabled === true;\n }\n\n /**\n * Is there a default expiration date for new remote shares ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isDefaultRemoteExpireDateEnabled() {\n return OC.appConfig.core.defaultRemoteExpireDateEnabled === true;\n }\n\n /**\n * Are users on this server allowed to send shares to other servers ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isRemoteShareAllowed() {\n return OC.appConfig.core.remoteShareAllowed === true;\n }\n\n /**\n * Is sharing my mail (link share) enabled ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isMailShareAllowed() {\n var _this$_capabilities, _this$_capabilities2;\n // eslint-disable-next-line camelcase\n return ((_this$_capabilities = this._capabilities) === null || _this$_capabilities === void 0 || (_this$_capabilities = _this$_capabilities.files_sharing) === null || _this$_capabilities === void 0 ? void 0 : _this$_capabilities.sharebymail) !== undefined\n // eslint-disable-next-line camelcase\n && ((_this$_capabilities2 = this._capabilities) === null || _this$_capabilities2 === void 0 || (_this$_capabilities2 = _this$_capabilities2.files_sharing) === null || _this$_capabilities2 === void 0 || (_this$_capabilities2 = _this$_capabilities2.public) === null || _this$_capabilities2 === void 0 ? void 0 : _this$_capabilities2.enabled) === true;\n }\n\n /**\n * Get the default days to link shares expiration\n *\n * @return {number}\n * @readonly\n * @memberof Config\n */\n get defaultExpireDate() {\n return OC.appConfig.core.defaultExpireDate;\n }\n\n /**\n * Get the default days to internal shares expiration\n *\n * @return {number}\n * @readonly\n * @memberof Config\n */\n get defaultInternalExpireDate() {\n return OC.appConfig.core.defaultInternalExpireDate;\n }\n\n /**\n * Get the default days to remote shares expiration\n *\n * @return {number}\n * @readonly\n * @memberof Config\n */\n get defaultRemoteExpireDate() {\n return OC.appConfig.core.defaultRemoteExpireDate;\n }\n\n /**\n * Is resharing allowed ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isResharingAllowed() {\n return OC.appConfig.core.resharingAllowed === true;\n }\n\n /**\n * Is password enforced for mail shares ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get isPasswordForMailSharesRequired() {\n return this._capabilities.files_sharing.sharebymail === undefined ? false : this._capabilities.files_sharing.sharebymail.password.enforced;\n }\n\n /**\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get shouldAlwaysShowUnique() {\n var _this$_capabilities$f3;\n return ((_this$_capabilities$f3 = this._capabilities.files_sharing) === null || _this$_capabilities$f3 === void 0 || (_this$_capabilities$f3 = _this$_capabilities$f3.sharee) === null || _this$_capabilities$f3 === void 0 ? void 0 : _this$_capabilities$f3.always_show_unique) === true;\n }\n\n /**\n * Is sharing with groups allowed ?\n *\n * @return {boolean}\n * @readonly\n * @memberof Config\n */\n get allowGroupSharing() {\n return OC.appConfig.core.allowGroupSharing === true;\n }\n\n /**\n * Get the maximum results of a share search\n *\n * @return {number}\n * @readonly\n * @memberof Config\n */\n get maxAutocompleteResults() {\n return parseInt(OC.config['sharing.maxAutocompleteResults'], 10) || 25;\n }\n\n /**\n * Get the minimal string length\n * to initiate a share search\n *\n * @return {number}\n * @readonly\n * @memberof Config\n */\n get minSearchStringLength() {\n return parseInt(OC.config['sharing.minSearchStringLength'], 10) || 0;\n }\n\n /**\n * Get the password policy config\n *\n * @return {object}\n * @readonly\n * @memberof Config\n */\n get passwordPolicy() {\n return this._capabilities.password_policy ? this._capabilities.password_policy : {};\n }\n}","/**\n * @copyright Copyright (c) 2020 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport axios from '@nextcloud/axios';\nimport Config from '../services/ConfigService.js';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nconst config = new Config();\n// note: some chars removed on purpose to make them human friendly when read out\nconst passwordSet = 'abcdefgijkmnopqrstwxyzABCDEFGHJKLMNPQRSTWXYZ23456789';\n\n/**\n * Generate a valid policy password or\n * request a valid password if password_policy\n * is enabled\n *\n * @return {string} a valid password\n */\nexport default async function () {\n // password policy is enabled, let's request a pass\n if (config.passwordPolicy.api && config.passwordPolicy.api.generate) {\n try {\n const request = await axios.get(config.passwordPolicy.api.generate);\n if (request.data.ocs.data.password) {\n showSuccess(t('files_sharing', 'Password created successfully'));\n return request.data.ocs.data.password;\n }\n } catch (error) {\n console.info('Error generating password from password_policy', error);\n showError(t('files_sharing', 'Error generating password from password policy'));\n }\n }\n const array = new Uint8Array(10);\n const ratio = passwordSet.length / 255;\n self.crypto.getRandomValues(array);\n let password = '';\n for (let i = 0; i < array.length; i++) {\n password += passwordSet.charAt(array[i] * ratio);\n }\n return password;\n}","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author Joas Schilling \n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { Type as ShareTypes } from '@nextcloud/sharing';\nconst shareWithTitle = function (share) {\n if (share.type === ShareTypes.SHARE_TYPE_GROUP) {\n return t('files_sharing', 'Shared with you and the group {group} by {owner}', {\n group: share.shareWithDisplayName,\n owner: share.ownerDisplayName\n }, undefined, {\n escape: false\n });\n } else if (share.type === ShareTypes.SHARE_TYPE_CIRCLE) {\n return t('files_sharing', 'Shared with you and {circle} by {owner}', {\n circle: share.shareWithDisplayName,\n owner: share.ownerDisplayName\n }, undefined, {\n escape: false\n });\n } else if (share.type === ShareTypes.SHARE_TYPE_ROOM) {\n if (share.shareWithDisplayName) {\n return t('files_sharing', 'Shared with you and the conversation {conversation} by {owner}', {\n conversation: share.shareWithDisplayName,\n owner: share.ownerDisplayName\n }, undefined, {\n escape: false\n });\n } else {\n return t('files_sharing', 'Shared with you in a conversation by {owner}', {\n owner: share.ownerDisplayName\n }, undefined, {\n escape: false\n });\n }\n } else {\n return t('files_sharing', 'Shared with you by {owner}', {\n owner: share.ownerDisplayName\n }, undefined, {\n escape: false\n });\n }\n};\nexport { shareWithTitle };","import Share from '../models/Share.js';\nexport default {\n name: 'ExternalShareAction',\n props: {\n id: {\n type: String,\n required: true\n },\n action: {\n type: Object,\n default: () => ({})\n },\n fileInfo: {\n type: Object,\n default: () => {},\n required: true\n },\n share: {\n type: Share,\n default: null\n }\n },\n computed: {\n data() {\n return this.action.data(this);\n }\n }\n};","import NcButton from '@nextcloud/vue/dist/Components/NcButton.js';\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js';\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js';\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue';\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue';\nimport SharesMixin from '../mixins/SharesMixin.js';\nimport ShareDetails from '../mixins/ShareDetails.js';\nexport default {\n name: 'SharingEntry',\n components: {\n NcButton,\n NcAvatar,\n DotsHorizontalIcon,\n NcSelect,\n SharingEntryQuickShareSelect\n },\n mixins: [SharesMixin, ShareDetails],\n computed: {\n title() {\n let title = this.share.shareWithDisplayName;\n if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP) {\n title += \" (\".concat(t('files_sharing', 'group'), \")\");\n } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_ROOM) {\n title += \" (\".concat(t('files_sharing', 'conversation'), \")\");\n } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE) {\n title += \" (\".concat(t('files_sharing', 'remote'), \")\");\n } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP) {\n title += \" (\".concat(t('files_sharing', 'remote group'), \")\");\n } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GUEST) {\n title += \" (\".concat(t('files_sharing', 'guest'), \")\");\n }\n return title;\n },\n tooltip() {\n if (this.share.owner !== this.share.uidFileOwner) {\n const data = {\n // todo: strong or italic?\n // but the t function escape any html from the data :/\n user: this.share.shareWithDisplayName,\n owner: this.share.ownerDisplayName\n };\n if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP) {\n return t('files_sharing', 'Shared with the group {user} by {owner}', data);\n } else if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_ROOM) {\n return t('files_sharing', 'Shared with the conversation {user} by {owner}', data);\n }\n return t('files_sharing', 'Shared with {user} by {owner}', data);\n }\n return null;\n },\n /**\n * @return {boolean}\n */\n hasStatus() {\n if (this.share.type !== this.SHARE_TYPES.SHARE_TYPE_USER) {\n return false;\n }\n return typeof this.share.status === 'object' && !Array.isArray(this.share.status);\n }\n },\n methods: {\n /**\n * Save potential changed data on menu close\n */\n onMenuClose() {\n this.onNoteSubmit();\n }\n }\n};","import { generateUrl } from '@nextcloud/router';\nimport { basename } from '@nextcloud/paths';\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js';\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js';\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js';\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js';\n\n// eslint-disable-next-line no-unused-vars\nimport Share from '../models/Share.js';\nimport SharesMixin from '../mixins/SharesMixin.js';\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue';\nexport default {\n name: 'SharingEntryInherited',\n components: {\n NcActionButton,\n NcActionLink,\n NcActionText,\n NcAvatar,\n SharingEntrySimple\n },\n mixins: [SharesMixin],\n props: {\n share: {\n type: Share,\n required: true\n }\n },\n computed: {\n viaFileTargetUrl() {\n return generateUrl('/f/{fileid}', {\n fileid: this.share.viaFileid\n });\n },\n viaFolderName() {\n return basename(this.share.viaPath);\n }\n }\n};","import { generateUrl } from '@nextcloud/router';\nimport { showSuccess } from '@nextcloud/dialogs';\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js';\nimport CheckIcon from 'vue-material-design-icons/CheckBold.vue';\nimport ClipboardIcon from 'vue-material-design-icons/ClipboardFlow.vue';\nimport SharingEntrySimple from './SharingEntrySimple.vue';\nexport default {\n name: 'SharingEntryInternal',\n components: {\n NcActionButton,\n SharingEntrySimple,\n CheckIcon,\n ClipboardIcon\n },\n props: {\n fileInfo: {\n type: Object,\n default: () => {},\n required: true\n }\n },\n data() {\n return {\n copied: false,\n copySuccess: false\n };\n },\n computed: {\n /**\n * Get the internal link to this file id\n *\n * @return {string}\n */\n internalLink() {\n return window.location.protocol + '//' + window.location.host + generateUrl('/f/') + this.fileInfo.id;\n },\n /**\n * Tooltip message\n *\n * @return {string}\n */\n copyLinkTooltip() {\n if (this.copied) {\n if (this.copySuccess) {\n return '';\n }\n return t('files_sharing', 'Cannot copy, please copy the link manually');\n }\n return t('files_sharing', 'Copy internal link to clipboard');\n },\n internalLinkSubtitle() {\n if (this.fileInfo.type === 'dir') {\n return t('files_sharing', 'Only works for people with access to this folder');\n }\n return t('files_sharing', 'Only works for people with access to this file');\n }\n },\n methods: {\n async copyLink() {\n try {\n await navigator.clipboard.writeText(this.internalLink);\n showSuccess(t('files_sharing', 'Link copied'));\n this.$refs.shareEntrySimple.$refs.actionsComponent.$el.focus();\n this.copySuccess = true;\n this.copied = true;\n } catch (error) {\n this.copySuccess = false;\n this.copied = true;\n console.error(error);\n } finally {\n setTimeout(() => {\n this.copySuccess = false;\n this.copied = false;\n }, 4000);\n }\n }\n }\n};","import { generateUrl } from '@nextcloud/router';\nimport { showError, showSuccess } from '@nextcloud/dialogs';\nimport { Type as ShareTypes } from '@nextcloud/sharing';\nimport Vue from 'vue';\nimport VueQrcode from '@chenfengyuan/vue-qrcode';\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js';\nimport NcActionInput from '@nextcloud/vue/dist/Components/NcActionInput.js';\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js';\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js';\nimport NcActionSeparator from '@nextcloud/vue/dist/Components/NcActionSeparator.js';\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js';\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js';\nimport NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js';\nimport Tune from 'vue-material-design-icons/Tune.vue';\nimport IconQr from 'vue-material-design-icons/Qrcode.vue';\nimport ErrorIcon from 'vue-material-design-icons/Exclamation.vue';\nimport LockIcon from 'vue-material-design-icons/Lock.vue';\nimport CheckIcon from 'vue-material-design-icons/CheckBold.vue';\nimport ClipboardIcon from 'vue-material-design-icons/ClipboardFlow.vue';\nimport CloseIcon from 'vue-material-design-icons/Close.vue';\nimport PlusIcon from 'vue-material-design-icons/Plus.vue';\nimport SharingEntryQuickShareSelect from './SharingEntryQuickShareSelect.vue';\nimport ExternalShareAction from './ExternalShareAction.vue';\nimport GeneratePassword from '../utils/GeneratePassword.js';\nimport Share from '../models/Share.js';\nimport SharesMixin from '../mixins/SharesMixin.js';\nimport ShareDetails from '../mixins/ShareDetails.js';\nexport default {\n name: 'SharingEntryLink',\n components: {\n ExternalShareAction,\n NcActions,\n NcActionButton,\n NcActionInput,\n NcActionLink,\n NcActionText,\n NcActionSeparator,\n NcAvatar,\n NcDialog,\n VueQrcode,\n Tune,\n IconQr,\n ErrorIcon,\n LockIcon,\n CheckIcon,\n ClipboardIcon,\n CloseIcon,\n PlusIcon,\n SharingEntryQuickShareSelect\n },\n mixins: [SharesMixin, ShareDetails],\n props: {\n canReshare: {\n type: Boolean,\n default: true\n },\n index: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n copySuccess: true,\n copied: false,\n // Are we waiting for password/expiration date\n pending: false,\n ExternalLegacyLinkActions: OCA.Sharing.ExternalLinkActions.state,\n ExternalShareActions: OCA.Sharing.ExternalShareActions.state,\n // tracks whether modal should be opened or not\n showQRCode: false\n };\n },\n computed: {\n /**\n * Link share label\n *\n * @return {string}\n */\n title() {\n // if we have a valid existing share (not pending)\n if (this.share && this.share.id) {\n if (!this.isShareOwner && this.share.ownerDisplayName) {\n if (this.isEmailShareType) {\n return t('files_sharing', '{shareWith} by {initiator}', {\n shareWith: this.share.shareWith,\n initiator: this.share.ownerDisplayName\n });\n }\n return t('files_sharing', 'Shared via link by {initiator}', {\n initiator: this.share.ownerDisplayName\n });\n }\n if (this.share.label && this.share.label.trim() !== '') {\n if (this.isEmailShareType) {\n return t('files_sharing', 'Mail share ({label})', {\n label: this.share.label.trim()\n });\n }\n return t('files_sharing', 'Share link ({label})', {\n label: this.share.label.trim()\n });\n }\n if (this.isEmailShareType) {\n return this.share.shareWith;\n }\n }\n if (this.index > 1) {\n return t('files_sharing', 'Share link ({index})', {\n index: this.index\n });\n }\n return t('files_sharing', 'Share link');\n },\n /**\n * Show the email on a second line if a label is set for mail shares\n *\n * @return {string}\n */\n subtitle() {\n if (this.isEmailShareType && this.title !== this.share.shareWith) {\n return this.share.shareWith;\n }\n return null;\n },\n /**\n * Is the current share password protected ?\n *\n * @return {boolean}\n */\n isPasswordProtected: {\n get() {\n return this.config.enforcePasswordForPublicLink || !!this.share.password;\n },\n async set(enabled) {\n // TODO: directly save after generation to make sure the share is always protected\n Vue.set(this.share, 'password', enabled ? await GeneratePassword() : '');\n Vue.set(this.share, 'newPassword', this.share.password);\n }\n },\n passwordExpirationTime() {\n if (this.share.passwordExpirationTime === null) {\n return null;\n }\n const expirationTime = moment(this.share.passwordExpirationTime);\n if (expirationTime.diff(moment()) < 0) {\n return false;\n }\n return expirationTime.fromNow();\n },\n /**\n * Is Talk enabled?\n *\n * @return {boolean}\n */\n isTalkEnabled() {\n return OC.appswebroots.spreed !== undefined;\n },\n /**\n * Is it possible to protect the password by Talk?\n *\n * @return {boolean}\n */\n isPasswordProtectedByTalkAvailable() {\n return this.isPasswordProtected && this.isTalkEnabled;\n },\n /**\n * Is the current share password protected by Talk?\n *\n * @return {boolean}\n */\n isPasswordProtectedByTalk: {\n get() {\n return this.share.sendPasswordByTalk;\n },\n async set(enabled) {\n this.share.sendPasswordByTalk = enabled;\n }\n },\n /**\n * Is the current share an email share ?\n *\n * @return {boolean}\n */\n isEmailShareType() {\n return this.share ? this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL : false;\n },\n canTogglePasswordProtectedByTalkAvailable() {\n if (!this.isPasswordProtected) {\n // Makes no sense\n return false;\n } else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n // For email shares we need a new password in order to enable or\n // disable\n return false;\n }\n\n // Anything else should be fine\n return true;\n },\n /**\n * Pending data.\n * If the share still doesn't have an id, it is not synced\n * Therefore this is still not valid and requires user input\n *\n * @return {boolean}\n */\n pendingPassword() {\n return this.config.enableLinkPasswordByDefault && this.share && !this.share.id;\n },\n pendingEnforcedPassword() {\n return this.config.enforcePasswordForPublicLink && this.share && !this.share.id;\n },\n pendingExpirationDate() {\n return this.config.isDefaultExpireDateEnforced && this.share && !this.share.id;\n },\n // if newPassword exists, but is empty, it means\n // the user deleted the original password\n hasUnsavedPassword() {\n return this.share.newPassword !== undefined;\n },\n /**\n * Return the public share link\n *\n * @return {string}\n */\n shareLink() {\n return window.location.protocol + '//' + window.location.host + generateUrl('/s/') + this.share.token;\n },\n /**\n * Tooltip message for actions button\n *\n * @return {string}\n */\n actionsTooltip() {\n return t('files_sharing', 'Actions for \"{title}\"', {\n title: this.title\n });\n },\n /**\n * Tooltip message for copy button\n *\n * @return {string}\n */\n copyLinkTooltip() {\n if (this.copied) {\n if (this.copySuccess) {\n return '';\n }\n return t('files_sharing', 'Cannot copy, please copy the link manually');\n }\n return t('files_sharing', 'Copy public link of \"{title}\" to clipboard', {\n title: this.title\n });\n },\n /**\n * External additionnai actions for the menu\n *\n * @deprecated use OCA.Sharing.ExternalShareActions\n * @return {Array}\n */\n externalLegacyLinkActions() {\n return this.ExternalLegacyLinkActions.actions;\n },\n /**\n * Additional actions for the menu\n *\n * @return {Array}\n */\n externalLinkActions() {\n const filterValidAction = action => (action.shareType.includes(ShareTypes.SHARE_TYPE_LINK) || action.shareType.includes(ShareTypes.SHARE_TYPE_EMAIL)) && !action.advanced;\n // filter only the registered actions for said link\n return this.ExternalShareActions.actions.filter(filterValidAction);\n },\n isPasswordPolicyEnabled() {\n return typeof this.config.passwordPolicy === 'object';\n },\n canChangeHideDownload() {\n const hasDisabledDownload = shareAttribute => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.enabled === false;\n return this.fileInfo.shareAttributes.some(hasDisabledDownload);\n }\n },\n methods: {\n /**\n * Create a new share link and append it to the list\n */\n async onNewLinkShare() {\n // do not run again if already loading\n if (this.loading) {\n return;\n }\n const shareDefaults = {\n share_type: ShareTypes.SHARE_TYPE_LINK\n };\n if (this.config.isDefaultExpireDateEnforced) {\n // default is empty string if not set\n // expiration is the share object key, not expireDate\n shareDefaults.expiration = this.formatDateToString(this.config.defaultExpirationDate);\n }\n\n // do not push yet if we need a password or an expiration date: show pending menu\n if (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink || this.config.isDefaultExpireDateEnforced) {\n this.pending = true;\n\n // if a share already exists, pushing it\n if (this.share && !this.share.id) {\n // if the share is valid, create it on the server\n if (this.checkShare(this.share)) {\n try {\n await this.pushNewLinkShare(this.share, true);\n } catch (e) {\n this.pending = false;\n console.error(e);\n return false;\n }\n return true;\n } else {\n this.open = true;\n OC.Notification.showTemporary(t('files_sharing', 'Error, please enter proper password and/or expiration date'));\n return false;\n }\n }\n\n // ELSE, show the pending popovermenu\n // if password default or enforced, pre-fill with random one\n if (this.config.enableLinkPasswordByDefault || this.config.enforcePasswordForPublicLink) {\n shareDefaults.password = await GeneratePassword();\n }\n\n // create share & close menu\n const share = new Share(shareDefaults);\n const component = await new Promise(resolve => {\n this.$emit('add:share', share, resolve);\n });\n\n // open the menu on the\n // freshly created share component\n this.open = false;\n this.pending = false;\n component.open = true;\n\n // Nothing is enforced, creating share directly\n } else {\n const share = new Share(shareDefaults);\n await this.pushNewLinkShare(share);\n }\n },\n /**\n * Push a new link share to the server\n * And update or append to the list\n * accordingly\n *\n * @param {Share} share the new share\n * @param {boolean} [update] do we update the current share ?\n */\n async pushNewLinkShare(share, update) {\n try {\n // do nothing if we're already pending creation\n if (this.loading) {\n return true;\n }\n this.loading = true;\n this.errors = {};\n const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/');\n const options = {\n path,\n shareType: ShareTypes.SHARE_TYPE_LINK,\n password: share.password,\n expireDate: share.expireDate,\n attributes: JSON.stringify(this.fileInfo.shareAttributes)\n // we do not allow setting the publicUpload\n // before the share creation.\n // Todo: We also need to fix the createShare method in\n // lib/Controller/ShareAPIController.php to allow file drop\n // (currently not supported on create, only update)\n };\n console.debug('Creating link share with options', options);\n const newShare = await this.createShare(options);\n this.open = false;\n console.debug('Link share created', newShare);\n\n // if share already exists, copy link directly on next tick\n let component;\n if (update) {\n component = await new Promise(resolve => {\n this.$emit('update:share', newShare, resolve);\n });\n } else {\n // adding new share to the array and copying link to clipboard\n // using promise so that we can copy link in the same click function\n // and avoid firefox copy permissions issue\n component = await new Promise(resolve => {\n this.$emit('add:share', newShare, resolve);\n });\n }\n\n // Execute the copy link method\n // freshly created share component\n // ! somehow does not works on firefox !\n if (!this.config.enforcePasswordForPublicLink) {\n // Only copy the link when the password was not forced,\n // otherwise the user needs to copy/paste the password before finishing the share.\n component.copyLink();\n }\n showSuccess(t('files_sharing', 'Link share created'));\n } catch (data) {\n var _data$response;\n const message = data === null || data === void 0 || (_data$response = data.response) === null || _data$response === void 0 || (_data$response = _data$response.data) === null || _data$response === void 0 || (_data$response = _data$response.ocs) === null || _data$response === void 0 || (_data$response = _data$response.meta) === null || _data$response === void 0 ? void 0 : _data$response.message;\n if (!message) {\n showError(t('files_sharing', 'Error while creating the share'));\n console.error(data);\n return;\n }\n if (message.match(/password/i)) {\n this.onSyncError('password', message);\n } else if (message.match(/date/i)) {\n this.onSyncError('expireDate', message);\n } else {\n this.onSyncError('pending', message);\n }\n throw data;\n } finally {\n this.loading = false;\n }\n },\n async copyLink() {\n try {\n await navigator.clipboard.writeText(this.shareLink);\n showSuccess(t('files_sharing', 'Link copied'));\n // focus and show the tooltip\n this.$refs.copyButton.$el.focus();\n this.copySuccess = true;\n this.copied = true;\n } catch (error) {\n this.copySuccess = false;\n this.copied = true;\n console.error(error);\n } finally {\n setTimeout(() => {\n this.copySuccess = false;\n this.copied = false;\n }, 4000);\n }\n },\n /**\n * Update newPassword values\n * of share. If password is set but not newPassword\n * then the user did not changed the password\n * If both co-exists, the password have changed and\n * we show it in plain text.\n * Then on submit (or menu close), we sync it.\n *\n * @param {string} password the changed password\n */\n onPasswordChange(password) {\n this.$set(this.share, 'newPassword', password);\n },\n /**\n * Uncheck password protection\n * We need this method because @update:checked\n * is ran simultaneously as @uncheck, so we\n * cannot ensure data is up-to-date\n */\n onPasswordDisable() {\n this.share.password = '';\n\n // reset password state after sync\n this.$delete(this.share, 'newPassword');\n\n // only update if valid share.\n if (this.share.id) {\n this.queueUpdate('password');\n }\n },\n /**\n * Menu have been closed or password has been submitted.\n * The only property that does not get\n * synced automatically is the password\n * So let's check if we have an unsaved\n * password.\n * expireDate is saved on datepicker pick\n * or close.\n */\n onPasswordSubmit() {\n if (this.hasUnsavedPassword) {\n this.share.password = this.share.newPassword.trim();\n this.queueUpdate('password');\n }\n },\n /**\n * Update the password along with \"sendPasswordByTalk\".\n *\n * If the password was modified the new password is sent; otherwise\n * updating a mail share would fail, as in that case it is required that\n * a new password is set when enabling or disabling\n * \"sendPasswordByTalk\".\n */\n onPasswordProtectedByTalkChange() {\n if (this.hasUnsavedPassword) {\n this.share.password = this.share.newPassword.trim();\n }\n this.queueUpdate('sendPasswordByTalk', 'password');\n },\n /**\n * Save potential changed data on menu close\n */\n onMenuClose() {\n this.onPasswordSubmit();\n this.onNoteSubmit();\n },\n /**\n * Cancel the share creation\n * Used in the pending popover\n */\n onCancel() {\n // this.share already exists at this point,\n // but is incomplete as not pushed to server\n // YET. We can safely delete the share :)\n this.$emit('remove:share', this.share);\n }\n }\n};","import DropdownIcon from 'vue-material-design-icons/TriangleSmallDown.vue';\nimport SharesMixin from '../mixins/SharesMixin.js';\nimport ShareDetails from '../mixins/ShareDetails.js';\nimport ShareTypes from '../mixins/ShareTypes.js';\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js';\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js';\nimport IconEyeOutline from 'vue-material-design-icons/EyeOutline.vue';\nimport IconPencil from 'vue-material-design-icons/Pencil.vue';\nimport IconFileUpload from 'vue-material-design-icons/FileUpload.vue';\nimport IconTune from 'vue-material-design-icons/Tune.vue';\nimport { BUNDLED_PERMISSIONS, ATOMIC_PERMISSIONS } from '../lib/SharePermissionsToolBox.js';\nexport default {\n name: 'SharingEntryQuickShareSelect',\n components: {\n DropdownIcon,\n NcActions,\n NcActionButton\n },\n mixins: [SharesMixin, ShareDetails, ShareTypes],\n props: {\n share: {\n type: Object,\n required: true\n }\n },\n emits: ['open-sharing-details'],\n data() {\n return {\n selectedOption: ''\n };\n },\n computed: {\n ariaLabel() {\n return t('files_sharing', 'Quick share options, the current selected is \"{selectedOption}\"', {\n selectedOption: this.selectedOption\n });\n },\n canViewText() {\n return t('files_sharing', 'View only');\n },\n canEditText() {\n return t('files_sharing', 'Can edit');\n },\n fileDropText() {\n return t('files_sharing', 'File drop');\n },\n customPermissionsText() {\n return t('files_sharing', 'Custom permissions');\n },\n preSelectedOption() {\n // We remove the share permission for the comparison as it is not relevant for bundled permissions.\n if ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.READ_ONLY) {\n return this.canViewText;\n } else if (this.share.permissions === BUNDLED_PERMISSIONS.ALL || this.share.permissions === BUNDLED_PERMISSIONS.ALL_FILE) {\n return this.canEditText;\n } else if ((this.share.permissions & ~ATOMIC_PERMISSIONS.SHARE) === BUNDLED_PERMISSIONS.FILE_DROP) {\n return this.fileDropText;\n }\n return this.customPermissionsText;\n },\n options() {\n const options = [{\n label: this.canViewText,\n icon: IconEyeOutline\n }, {\n label: this.canEditText,\n icon: IconPencil\n }];\n if (this.supportsFileDrop) {\n options.push({\n label: this.fileDropText,\n icon: IconFileUpload\n });\n }\n options.push({\n label: this.customPermissionsText,\n icon: IconTune\n });\n return options;\n },\n supportsFileDrop() {\n if (this.isFolder && this.config.isPublicUploadEnabled) {\n var _this$share$type;\n const shareType = (_this$share$type = this.share.type) !== null && _this$share$type !== void 0 ? _this$share$type : this.share.shareType;\n return [this.SHARE_TYPES.SHARE_TYPE_LINK, this.SHARE_TYPES.SHARE_TYPE_EMAIL].includes(shareType);\n }\n return false;\n },\n dropDownPermissionValue() {\n switch (this.selectedOption) {\n case this.canEditText:\n return this.isFolder ? BUNDLED_PERMISSIONS.ALL : BUNDLED_PERMISSIONS.ALL_FILE;\n case this.fileDropText:\n return BUNDLED_PERMISSIONS.FILE_DROP;\n case this.customPermissionsText:\n return 'custom';\n case this.canViewText:\n default:\n return BUNDLED_PERMISSIONS.READ_ONLY;\n }\n }\n },\n created() {\n this.selectedOption = this.preSelectedOption;\n },\n methods: {\n selectOption(optionLabel) {\n this.selectedOption = optionLabel;\n if (optionLabel === this.customPermissionsText) {\n this.$emit('open-sharing-details');\n } else {\n this.share.permissions = this.dropDownPermissionValue;\n this.queueUpdate('permissions');\n // TODO: Add a focus method to NcActions or configurable returnFocus enabling to NcActionButton with closeAfterClick\n this.$refs.quickShareActions.$refs.menuButton.$el.focus();\n }\n }\n }\n};","import NcActions from '@nextcloud/vue/dist/Components/NcActions.js';\nexport default {\n name: 'SharingEntrySimple',\n components: {\n NcActions\n },\n props: {\n title: {\n type: String,\n default: '',\n required: true\n },\n subtitle: {\n type: String,\n default: ''\n },\n isUnique: {\n type: Boolean,\n default: true\n },\n ariaExpanded: {\n type: Boolean,\n default: null\n }\n },\n computed: {\n ariaExpandedValue() {\n if (this.ariaExpanded === null) {\n return this.ariaExpanded;\n }\n return this.ariaExpanded ? 'true' : 'false';\n }\n }\n};","import { generateOcsUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getCapabilities } from '@nextcloud/capabilities';\nimport axios from '@nextcloud/axios';\nimport debounce from 'debounce';\nimport NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js';\nimport Config from '../services/ConfigService.js';\nimport GeneratePassword from '../utils/GeneratePassword.js';\nimport Share from '../models/Share.js';\nimport ShareRequests from '../mixins/ShareRequests.js';\nimport ShareTypes from '../mixins/ShareTypes.js';\nimport ShareDetails from '../mixins/ShareDetails.js';\nexport default {\n name: 'SharingInput',\n components: {\n NcSelect\n },\n mixins: [ShareTypes, ShareRequests, ShareDetails],\n props: {\n shares: {\n type: Array,\n default: () => [],\n required: true\n },\n linkShares: {\n type: Array,\n default: () => [],\n required: true\n },\n fileInfo: {\n type: Object,\n default: () => {},\n required: true\n },\n reshare: {\n type: Share,\n default: null\n },\n canReshare: {\n type: Boolean,\n required: true\n }\n },\n data() {\n return {\n config: new Config(),\n loading: false,\n query: '',\n recommendations: [],\n ShareSearch: OCA.Sharing.ShareSearch.state,\n suggestions: [],\n value: null\n };\n },\n computed: {\n /**\n * Implement ShareSearch\n * allows external appas to inject new\n * results into the autocomplete dropdown\n * Used for the guests app\n *\n * @return {Array}\n */\n externalResults() {\n return this.ShareSearch.results;\n },\n inputPlaceholder() {\n const allowRemoteSharing = this.config.isRemoteShareAllowed;\n if (!this.canReshare) {\n return t('files_sharing', 'Resharing is not allowed');\n }\n // We can always search with email addresses for users too\n if (!allowRemoteSharing) {\n return t('files_sharing', 'Name or email …');\n }\n return t('files_sharing', 'Name, email, or Federated Cloud ID …');\n },\n isValidQuery() {\n return this.query && this.query.trim() !== '' && this.query.length > this.config.minSearchStringLength;\n },\n options() {\n if (this.isValidQuery) {\n return this.suggestions;\n }\n return this.recommendations;\n },\n noResultText() {\n if (this.loading) {\n return t('files_sharing', 'Searching …');\n }\n return t('files_sharing', 'No elements found.');\n }\n },\n mounted() {\n this.getRecommendations();\n },\n methods: {\n onSelected(option) {\n this.value = null; // Reset selected option\n this.openSharingDetails(option);\n },\n async asyncFind(query) {\n // save current query to check if we display\n // recommendations or search results\n this.query = query.trim();\n if (this.isValidQuery) {\n // start loading now to have proper ux feedback\n // during the debounce\n this.loading = true;\n await this.debounceGetSuggestions(query);\n }\n },\n /**\n * Get suggestions\n *\n * @param {string} search the search query\n * @param {boolean} [lookup] search on lookup server\n */\n async getSuggestions(search) {\n let lookup = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n this.loading = true;\n if (getCapabilities().files_sharing.sharee.query_lookup_default === true) {\n lookup = true;\n }\n const shareType = [this.SHARE_TYPES.SHARE_TYPE_USER, this.SHARE_TYPES.SHARE_TYPE_GROUP, this.SHARE_TYPES.SHARE_TYPE_REMOTE, this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP, this.SHARE_TYPES.SHARE_TYPE_CIRCLE, this.SHARE_TYPES.SHARE_TYPE_ROOM, this.SHARE_TYPES.SHARE_TYPE_GUEST, this.SHARE_TYPES.SHARE_TYPE_DECK, this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH];\n if (getCapabilities().files_sharing.public.enabled === true) {\n shareType.push(this.SHARE_TYPES.SHARE_TYPE_EMAIL);\n }\n let request = null;\n try {\n request = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees'), {\n params: {\n format: 'json',\n itemType: this.fileInfo.type === 'dir' ? 'folder' : 'file',\n search,\n lookup,\n perPage: this.config.maxAutocompleteResults,\n shareType\n }\n });\n } catch (error) {\n console.error('Error fetching suggestions', error);\n return;\n }\n const data = request.data.ocs.data;\n const exact = request.data.ocs.data.exact;\n data.exact = []; // removing exact from general results\n\n // flatten array of arrays\n const rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), []);\n const rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), []);\n\n // remove invalid data and format to user-select layout\n const exactSuggestions = this.filterOutExistingShares(rawExactSuggestions).map(share => this.formatForMultiselect(share))\n // sort by type so we can get user&groups first...\n .sort((a, b) => a.shareType - b.shareType);\n const suggestions = this.filterOutExistingShares(rawSuggestions).map(share => this.formatForMultiselect(share))\n // sort by type so we can get user&groups first...\n .sort((a, b) => a.shareType - b.shareType);\n\n // lookup clickable entry\n // show if enabled and not already requested\n const lookupEntry = [];\n if (data.lookupEnabled && !lookup) {\n lookupEntry.push({\n id: 'global-lookup',\n isNoUser: true,\n displayName: t('files_sharing', 'Search globally'),\n lookup: true\n });\n }\n\n // if there is a condition specified, filter it\n const externalResults = this.externalResults.filter(result => !result.condition || result.condition(this));\n const allSuggestions = exactSuggestions.concat(suggestions).concat(externalResults).concat(lookupEntry);\n\n // Count occurrences of display names in order to provide a distinguishable description if needed\n const nameCounts = allSuggestions.reduce((nameCounts, result) => {\n if (!result.displayName) {\n return nameCounts;\n }\n if (!nameCounts[result.displayName]) {\n nameCounts[result.displayName] = 0;\n }\n nameCounts[result.displayName]++;\n return nameCounts;\n }, {});\n this.suggestions = allSuggestions.map(item => {\n // Make sure that items with duplicate displayName get the shareWith applied as a description\n if (nameCounts[item.displayName] > 1 && !item.desc) {\n return {\n ...item,\n desc: item.shareWithDisplayNameUnique\n };\n }\n return item;\n });\n this.loading = false;\n console.info('suggestions', this.suggestions);\n },\n /**\n * Debounce getSuggestions\n *\n * @param {...*} args the arguments\n */\n debounceGetSuggestions: debounce(function () {\n this.getSuggestions(...arguments);\n }, 300),\n /**\n * Get the sharing recommendations\n */\n async getRecommendations() {\n this.loading = true;\n let request = null;\n try {\n request = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees_recommended'), {\n params: {\n format: 'json',\n itemType: this.fileInfo.type\n }\n });\n } catch (error) {\n console.error('Error fetching recommendations', error);\n return;\n }\n\n // Add external results from the OCA.Sharing.ShareSearch api\n const externalResults = this.externalResults.filter(result => !result.condition || result.condition(this));\n\n // flatten array of arrays\n const rawRecommendations = Object.values(request.data.ocs.data.exact).reduce((arr, elem) => arr.concat(elem), []);\n\n // remove invalid data and format to user-select layout\n this.recommendations = this.filterOutExistingShares(rawRecommendations).map(share => this.formatForMultiselect(share)).concat(externalResults);\n this.loading = false;\n console.info('recommendations', this.recommendations);\n },\n /**\n * Filter out existing shares from\n * the provided shares search results\n *\n * @param {object[]} shares the array of shares object\n * @return {object[]}\n */\n filterOutExistingShares(shares) {\n return shares.reduce((arr, share) => {\n // only check proper objects\n if (typeof share !== 'object') {\n return arr;\n }\n try {\n if (share.value.shareType === this.SHARE_TYPES.SHARE_TYPE_USER) {\n // filter out current user\n if (share.value.shareWith === getCurrentUser().uid) {\n return arr;\n }\n\n // filter out the owner of the share\n if (this.reshare && share.value.shareWith === this.reshare.owner) {\n return arr;\n }\n }\n\n // filter out existing mail shares\n if (share.value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n const emails = this.linkShares.map(elem => elem.shareWith);\n if (emails.indexOf(share.value.shareWith.trim()) !== -1) {\n return arr;\n }\n } else {\n // filter out existing shares\n // creating an object of uid => type\n const sharesObj = this.shares.reduce((obj, elem) => {\n obj[elem.shareWith] = elem.type;\n return obj;\n }, {});\n\n // if shareWith is the same and the share type too, ignore it\n const key = share.value.shareWith.trim();\n if (key in sharesObj && sharesObj[key] === share.value.shareType) {\n return arr;\n }\n }\n\n // ALL GOOD\n // let's add the suggestion\n arr.push(share);\n } catch {\n return arr;\n }\n return arr;\n }, []);\n },\n /**\n * Get the icon based on the share type\n *\n * @param {number} type the share type\n * @return {string} the icon class\n */\n shareTypeToIcon(type) {\n switch (type) {\n case this.SHARE_TYPES.SHARE_TYPE_GUEST:\n // default is a user, other icons are here to differentiate\n // themselves from it, so let's not display the user icon\n // case this.SHARE_TYPES.SHARE_TYPE_REMOTE:\n // case this.SHARE_TYPES.SHARE_TYPE_USER:\n return {\n icon: 'icon-user',\n iconTitle: t('files_sharing', 'Guest')\n };\n case this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP:\n case this.SHARE_TYPES.SHARE_TYPE_GROUP:\n return {\n icon: 'icon-group',\n iconTitle: t('files_sharing', 'Group')\n };\n case this.SHARE_TYPES.SHARE_TYPE_EMAIL:\n return {\n icon: 'icon-mail',\n iconTitle: t('files_sharing', 'Email')\n };\n case this.SHARE_TYPES.SHARE_TYPE_CIRCLE:\n return {\n icon: 'icon-teams',\n iconTitle: t('files_sharing', 'Team')\n };\n case this.SHARE_TYPES.SHARE_TYPE_ROOM:\n return {\n icon: 'icon-room',\n iconTitle: t('files_sharing', 'Talk conversation')\n };\n case this.SHARE_TYPES.SHARE_TYPE_DECK:\n return {\n icon: 'icon-deck',\n iconTitle: t('files_sharing', 'Deck board')\n };\n case this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH:\n return {\n icon: 'icon-sciencemesh',\n iconTitle: t('files_sharing', 'ScienceMesh')\n };\n default:\n return {};\n }\n },\n /**\n * Format shares for the multiselect options\n *\n * @param {object} result select entry item\n * @return {object}\n */\n formatForMultiselect(result) {\n let subtitle;\n if (result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_USER && this.config.shouldAlwaysShowUnique) {\n var _result$shareWithDisp;\n subtitle = (_result$shareWithDisp = result.shareWithDisplayNameUnique) !== null && _result$shareWithDisp !== void 0 ? _result$shareWithDisp : '';\n } else if ((result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_REMOTE || result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP) && result.value.server) {\n subtitle = t('files_sharing', 'on {server}', {\n server: result.value.server\n });\n } else if (result.value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n subtitle = result.value.shareWith;\n } else {\n var _result$shareWithDesc;\n subtitle = (_result$shareWithDesc = result.shareWithDescription) !== null && _result$shareWithDesc !== void 0 ? _result$shareWithDesc : '';\n }\n return {\n shareWith: result.value.shareWith,\n shareType: result.value.shareType,\n user: result.uuid || result.value.shareWith,\n isNoUser: result.value.shareType !== this.SHARE_TYPES.SHARE_TYPE_USER,\n displayName: result.name || result.label,\n subtitle,\n shareWithDisplayNameUnique: result.shareWithDisplayNameUnique || '',\n ...this.shareTypeToIcon(result.value.shareType)\n };\n },\n /**\n * Process the new share request\n *\n * @param {object} value the multiselect option\n */\n async addShare(value) {\n // Clear the displayed selection\n this.value = null;\n if (value.lookup) {\n await this.getSuggestions(this.query, true);\n this.$nextTick(() => {\n // open the dropdown again\n this.$refs.select.$children[0].open = true;\n });\n return true;\n }\n\n // handle externalResults from OCA.Sharing.ShareSearch\n if (value.handler) {\n const share = await value.handler(this);\n this.$emit('add:share', new Share(share));\n return true;\n }\n this.loading = true;\n console.debug('Adding a new share from the input for', value);\n try {\n let password = null;\n if (this.config.enforcePasswordForPublicLink && value.shareType === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n password = await GeneratePassword();\n }\n const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/');\n const share = await this.createShare({\n path,\n shareType: value.shareType,\n shareWith: value.shareWith,\n password,\n permissions: this.fileInfo.sharePermissions & getCapabilities().files_sharing.default_permissions,\n attributes: JSON.stringify(this.fileInfo.shareAttributes)\n });\n\n // If we had a password, we need to show it to the user as it was generated\n if (password) {\n share.newPassword = password;\n // Wait for the newly added share\n const component = await new Promise(resolve => {\n this.$emit('add:share', share, resolve);\n });\n\n // open the menu on the\n // freshly created share component\n component.open = true;\n } else {\n // Else we just add it normally\n this.$emit('add:share', share);\n }\n await this.getRecommendations();\n } catch (error) {\n this.$nextTick(() => {\n // open the dropdown again on error\n this.$refs.select.$children[0].open = true;\n });\n this.query = value.shareWith;\n console.error('Error while adding new share', error);\n } finally {\n this.loading = false;\n }\n }\n }\n};","import { getLanguage } from '@nextcloud/l10n';\nimport { Type as ShareType } from '@nextcloud/sharing';\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js';\nimport NcInputField from '@nextcloud/vue/dist/Components/NcInputField.js';\nimport NcPasswordField from '@nextcloud/vue/dist/Components/NcPasswordField.js';\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js';\nimport NcDateTimePickerNative from '@nextcloud/vue/dist/Components/NcDateTimePickerNative.js';\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js';\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js';\nimport CircleIcon from 'vue-material-design-icons/CircleOutline.vue';\nimport CloseIcon from 'vue-material-design-icons/Close.vue';\nimport EditIcon from 'vue-material-design-icons/Pencil.vue';\nimport EmailIcon from 'vue-material-design-icons/Email.vue';\nimport LinkIcon from 'vue-material-design-icons/Link.vue';\nimport GroupIcon from 'vue-material-design-icons/AccountGroup.vue';\nimport ShareIcon from 'vue-material-design-icons/ShareCircle.vue';\nimport UserIcon from 'vue-material-design-icons/AccountCircleOutline.vue';\nimport ViewIcon from 'vue-material-design-icons/Eye.vue';\nimport UploadIcon from 'vue-material-design-icons/Upload.vue';\nimport MenuDownIcon from 'vue-material-design-icons/MenuDown.vue';\nimport MenuUpIcon from 'vue-material-design-icons/MenuUp.vue';\nimport DotsHorizontalIcon from 'vue-material-design-icons/DotsHorizontal.vue';\nimport ExternalShareAction from '../components/ExternalShareAction.vue';\nimport GeneratePassword from '../utils/GeneratePassword.js';\nimport Share from '../models/Share.js';\nimport ShareRequests from '../mixins/ShareRequests.js';\nimport ShareTypes from '../mixins/ShareTypes.js';\nimport SharesMixin from '../mixins/SharesMixin.js';\nimport { ATOMIC_PERMISSIONS, BUNDLED_PERMISSIONS, hasPermissions } from '../lib/SharePermissionsToolBox.js';\nexport default {\n name: 'SharingDetailsTab',\n components: {\n NcAvatar,\n NcButton,\n NcInputField,\n NcPasswordField,\n NcDateTimePickerNative,\n NcCheckboxRadioSwitch,\n NcLoadingIcon,\n CloseIcon,\n CircleIcon,\n EditIcon,\n ExternalShareAction,\n LinkIcon,\n GroupIcon,\n ShareIcon,\n UserIcon,\n UploadIcon,\n ViewIcon,\n MenuDownIcon,\n MenuUpIcon,\n DotsHorizontalIcon\n },\n mixins: [ShareTypes, ShareRequests, SharesMixin],\n props: {\n shareRequestValue: {\n type: Object,\n required: false\n },\n fileInfo: {\n type: Object,\n required: true\n },\n share: {\n type: Object,\n required: true\n }\n },\n data() {\n return {\n writeNoteToRecipientIsChecked: false,\n sharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n revertSharingPermission: BUNDLED_PERMISSIONS.ALL.toString(),\n setCustomPermissions: false,\n passwordError: false,\n advancedSectionAccordionExpanded: false,\n bundledPermissions: BUNDLED_PERMISSIONS,\n isFirstComponentLoad: true,\n test: false,\n creating: false,\n ExternalShareActions: OCA.Sharing.ExternalShareActions.state\n };\n },\n computed: {\n title() {\n switch (this.share.type) {\n case this.SHARE_TYPES.SHARE_TYPE_USER:\n return t('files_sharing', 'Share with {userName}', {\n userName: this.share.shareWithDisplayName\n });\n case this.SHARE_TYPES.SHARE_TYPE_EMAIL:\n return t('files_sharing', 'Share with email {email}', {\n email: this.share.shareWith\n });\n case this.SHARE_TYPES.SHARE_TYPE_LINK:\n return t('files_sharing', 'Share link');\n case this.SHARE_TYPES.SHARE_TYPE_GROUP:\n return t('files_sharing', 'Share with group');\n case this.SHARE_TYPES.SHARE_TYPE_ROOM:\n return t('files_sharing', 'Share in conversation');\n case this.SHARE_TYPES.SHARE_TYPE_REMOTE:\n {\n const [user, server] = this.share.shareWith.split('@');\n return t('files_sharing', 'Share with {user} on remote server {server}', {\n user,\n server\n });\n }\n case this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP:\n return t('files_sharing', 'Share with remote group');\n case this.SHARE_TYPES.SHARE_TYPE_GUEST:\n return t('files_sharing', 'Share with guest');\n default:\n {\n if (this.share.id) {\n // Share already exists\n return t('files_sharing', 'Update share');\n } else {\n return t('files_sharing', 'Create share');\n }\n }\n }\n },\n /**\n * Can the sharee edit the shared file ?\n */\n canEdit: {\n get() {\n return this.share.hasUpdatePermission;\n },\n set(checked) {\n this.updateAtomicPermissions({\n isEditChecked: checked\n });\n }\n },\n /**\n * Can the sharee create the shared file ?\n */\n canCreate: {\n get() {\n return this.share.hasCreatePermission;\n },\n set(checked) {\n this.updateAtomicPermissions({\n isCreateChecked: checked\n });\n }\n },\n /**\n * Can the sharee delete the shared file ?\n */\n canDelete: {\n get() {\n return this.share.hasDeletePermission;\n },\n set(checked) {\n this.updateAtomicPermissions({\n isDeleteChecked: checked\n });\n }\n },\n /**\n * Can the sharee reshare the file ?\n */\n canReshare: {\n get() {\n return this.share.hasSharePermission;\n },\n set(checked) {\n this.updateAtomicPermissions({\n isReshareChecked: checked\n });\n }\n },\n /**\n * Can the sharee download files or only view them ?\n */\n canDownload: {\n get() {\n var _this$share$attribute;\n return ((_this$share$attribute = this.share.attributes.find(attr => attr.key === 'download')) === null || _this$share$attribute === void 0 ? void 0 : _this$share$attribute.enabled) || false;\n },\n set(checked) {\n // Find the 'download' attribute and update its value\n const downloadAttr = this.share.attributes.find(attr => attr.key === 'download');\n if (downloadAttr) {\n downloadAttr.enabled = checked;\n }\n }\n },\n /**\n * Is this share readable\n * Needed for some federated shares that might have been added from file drop links\n */\n hasRead: {\n get() {\n return this.share.hasReadPermission;\n },\n set(checked) {\n this.updateAtomicPermissions({\n isReadChecked: checked\n });\n }\n },\n /**\n * Does the current share have an expiration date\n *\n * @return {boolean}\n */\n hasExpirationDate: {\n get() {\n return this.isValidShareAttribute(this.share.expireDate);\n },\n set(enabled) {\n this.share.expireDate = enabled ? this.formatDateToString(this.defaultExpiryDate) : '';\n }\n },\n /**\n * Is the current share password protected ?\n *\n * @return {boolean}\n */\n isPasswordProtected: {\n get() {\n return this.config.enforcePasswordForPublicLink || !!this.share.password;\n },\n async set(enabled) {\n if (enabled) {\n this.share.password = await GeneratePassword();\n this.$set(this.share, 'newPassword', this.share.password);\n } else {\n this.share.password = '';\n this.$delete(this.share, 'newPassword');\n }\n }\n },\n /**\n * Is the current share a folder ?\n *\n * @return {boolean}\n */\n isFolder() {\n return this.fileInfo.type === 'dir';\n },\n /**\n * @return {boolean}\n */\n isSetDownloadButtonVisible() {\n const allowedMimetypes = [\n // Office documents\n 'application/msword', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/vnd.ms-powerpoint', 'application/vnd.openxmlformats-officedocument.presentationml.presentation', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.oasis.opendocument.text', 'application/vnd.oasis.opendocument.spreadsheet', 'application/vnd.oasis.opendocument.presentation'];\n return this.isFolder || allowedMimetypes.includes(this.fileInfo.mimetype);\n },\n isPasswordEnforced() {\n return this.isPublicShare && this.config.enforcePasswordForPublicLink;\n },\n defaultExpiryDate() {\n if ((this.isGroupShare || this.isUserShare) && this.config.isDefaultInternalExpireDateEnabled) {\n return new Date(this.config.defaultInternalExpirationDate);\n } else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n return new Date(this.config.defaultRemoteExpireDateEnabled);\n } else if (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n return new Date(this.config.defaultExpirationDate);\n }\n return new Date(new Date().setDate(new Date().getDate() + 1));\n },\n isUserShare() {\n return this.share.type === this.SHARE_TYPES.SHARE_TYPE_USER;\n },\n isGroupShare() {\n return this.share.type === this.SHARE_TYPES.SHARE_TYPE_GROUP;\n },\n isNewShare() {\n return !this.share.id;\n },\n allowsFileDrop() {\n if (this.isFolder && this.config.isPublicUploadEnabled) {\n if (this.share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n return true;\n }\n }\n return false;\n },\n hasFileDropPermissions() {\n return this.share.permissions === this.bundledPermissions.FILE_DROP;\n },\n shareButtonText() {\n if (this.isNewShare) {\n return t('files_sharing', 'Save share');\n }\n return t('files_sharing', 'Update share');\n },\n /**\n * Can the sharer set whether the sharee can edit the file ?\n *\n * @return {boolean}\n */\n canSetEdit() {\n // If the owner revoked the permission after the resharer granted it\n // the share still has the permission, and the resharer is still\n // allowed to revoke it too (but not to grant it again).\n return this.fileInfo.sharePermissions & OC.PERMISSION_UPDATE || this.canEdit;\n },\n /**\n * Can the sharer set whether the sharee can create the file ?\n *\n * @return {boolean}\n */\n canSetCreate() {\n // If the owner revoked the permission after the resharer granted it\n // the share still has the permission, and the resharer is still\n // allowed to revoke it too (but not to grant it again).\n return this.fileInfo.sharePermissions & OC.PERMISSION_CREATE || this.canCreate;\n },\n /**\n * Can the sharer set whether the sharee can delete the file ?\n *\n * @return {boolean}\n */\n canSetDelete() {\n // If the owner revoked the permission after the resharer granted it\n // the share still has the permission, and the resharer is still\n // allowed to revoke it too (but not to grant it again).\n return this.fileInfo.sharePermissions & OC.PERMISSION_DELETE || this.canDelete;\n },\n /**\n * Can the sharer set whether the sharee can reshare the file ?\n *\n * @return {boolean}\n */\n canSetReshare() {\n // If the owner revoked the permission after the resharer granted it\n // the share still has the permission, and the resharer is still\n // allowed to revoke it too (but not to grant it again).\n return this.fileInfo.sharePermissions & OC.PERMISSION_SHARE || this.canReshare;\n },\n /**\n * Can the sharer set whether the sharee can download the file ?\n *\n * @return {boolean}\n */\n canSetDownload() {\n // If the owner revoked the permission after the resharer granted it\n // the share still has the permission, and the resharer is still\n // allowed to revoke it too (but not to grant it again).\n return this.fileInfo.canDownload() || this.canDownload;\n },\n // if newPassword exists, but is empty, it means\n // the user deleted the original password\n hasUnsavedPassword() {\n return this.share.newPassword !== undefined;\n },\n passwordExpirationTime() {\n if (!this.isValidShareAttribute(this.share.passwordExpirationTime)) {\n return null;\n }\n const expirationTime = moment(this.share.passwordExpirationTime);\n if (expirationTime.diff(moment()) < 0) {\n return false;\n }\n return expirationTime.fromNow();\n },\n /**\n * Is Talk enabled?\n *\n * @return {boolean}\n */\n isTalkEnabled() {\n return OC.appswebroots.spreed !== undefined;\n },\n /**\n * Is it possible to protect the password by Talk?\n *\n * @return {boolean}\n */\n isPasswordProtectedByTalkAvailable() {\n return this.isPasswordProtected && this.isTalkEnabled;\n },\n /**\n * Is the current share password protected by Talk?\n *\n * @return {boolean}\n */\n isPasswordProtectedByTalk: {\n get() {\n return this.share.sendPasswordByTalk;\n },\n async set(enabled) {\n this.share.sendPasswordByTalk = enabled;\n }\n },\n /**\n * Is the current share an email share ?\n *\n * @return {boolean}\n */\n isEmailShareType() {\n return this.share ? this.share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL : false;\n },\n canTogglePasswordProtectedByTalkAvailable() {\n if (!this.isPublicShare || !this.isPasswordProtected) {\n // Makes no sense\n return false;\n } else if (this.isEmailShareType && !this.hasUnsavedPassword) {\n // For email shares we need a new password in order to enable or\n // disable\n return false;\n }\n\n // Is Talk enabled?\n return OC.appswebroots.spreed !== undefined;\n },\n canChangeHideDownload() {\n const hasDisabledDownload = shareAttribute => shareAttribute.key === 'download' && shareAttribute.scope === 'permissions' && shareAttribute.enabled === false;\n return this.fileInfo.shareAttributes.some(hasDisabledDownload);\n },\n customPermissionsList() {\n // Key order will be different, because ATOMIC_PERMISSIONS are numbers\n const translatedPermissions = {\n [ATOMIC_PERMISSIONS.READ]: this.t('files_sharing', 'Read'),\n [ATOMIC_PERMISSIONS.CREATE]: this.t('files_sharing', 'Create'),\n [ATOMIC_PERMISSIONS.UPDATE]: this.t('files_sharing', 'Edit'),\n [ATOMIC_PERMISSIONS.SHARE]: this.t('files_sharing', 'Share'),\n [ATOMIC_PERMISSIONS.DELETE]: this.t('files_sharing', 'Delete')\n };\n return [ATOMIC_PERMISSIONS.READ, ATOMIC_PERMISSIONS.CREATE, ATOMIC_PERMISSIONS.UPDATE, ATOMIC_PERMISSIONS.SHARE, ATOMIC_PERMISSIONS.DELETE].filter(permission => hasPermissions(this.share.permissions, permission)).map((permission, index) => index === 0 ? translatedPermissions[permission] : translatedPermissions[permission].toLocaleLowerCase(getLanguage())).join(', ');\n },\n advancedControlExpandedValue() {\n return this.advancedSectionAccordionExpanded ? 'true' : 'false';\n },\n errorPasswordLabel() {\n if (this.passwordError) {\n return t('files_sharing', \"Password field can't be empty\");\n }\n return undefined;\n },\n /**\n * Additional actions for the menu\n *\n * @return {Array}\n */\n externalLinkActions() {\n const filterValidAction = action => (action.shareType.includes(ShareType.SHARE_TYPE_LINK) || action.shareType.includes(ShareType.SHARE_TYPE_EMAIL)) && action.advanced;\n // filter only the advanced registered actions for said link\n return this.ExternalShareActions.actions.filter(filterValidAction);\n }\n },\n watch: {\n setCustomPermissions(isChecked) {\n if (isChecked) {\n this.sharingPermission = 'custom';\n } else {\n this.sharingPermission = this.revertSharingPermission;\n }\n }\n },\n beforeMount() {\n this.initializePermissions();\n this.initializeAttributes();\n console.debug('shareSentIn', this.share);\n console.debug('config', this.config);\n },\n mounted() {\n var _this$$refs$quickPerm;\n (_this$$refs$quickPerm = this.$refs.quickPermissions) === null || _this$$refs$quickPerm === void 0 || (_this$$refs$quickPerm = _this$$refs$quickPerm.querySelector('input:checked')) === null || _this$$refs$quickPerm === void 0 || _this$$refs$quickPerm.focus();\n },\n methods: {\n updateAtomicPermissions() {\n let {\n isReadChecked = this.hasRead,\n isEditChecked = this.canEdit,\n isCreateChecked = this.canCreate,\n isDeleteChecked = this.canDelete,\n isReshareChecked = this.canReshare\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // calc permissions if checked\n const permissions = 0 | (isReadChecked ? ATOMIC_PERMISSIONS.READ : 0) | (isCreateChecked ? ATOMIC_PERMISSIONS.CREATE : 0) | (isDeleteChecked ? ATOMIC_PERMISSIONS.DELETE : 0) | (isEditChecked ? ATOMIC_PERMISSIONS.UPDATE : 0) | (isReshareChecked ? ATOMIC_PERMISSIONS.SHARE : 0);\n this.share.permissions = permissions;\n },\n expandCustomPermissions() {\n if (!this.advancedSectionAccordionExpanded) {\n this.advancedSectionAccordionExpanded = true;\n }\n this.toggleCustomPermissions();\n },\n toggleCustomPermissions(selectedPermission) {\n const isCustomPermissions = this.sharingPermission === 'custom';\n this.revertSharingPermission = !isCustomPermissions ? selectedPermission : 'custom';\n this.setCustomPermissions = isCustomPermissions;\n },\n async initializeAttributes() {\n if (this.isNewShare) {\n if (this.isPasswordEnforced && this.isPublicShare) {\n this.$set(this.share, 'newPassword', await GeneratePassword());\n this.advancedSectionAccordionExpanded = true;\n }\n /* Set default expiration dates if configured */\n if (this.isPublicShare && this.config.isDefaultExpireDateEnabled) {\n this.share.expireDate = this.config.defaultExpirationDate.toDateString();\n } else if (this.isRemoteShare && this.config.isDefaultRemoteExpireDateEnabled) {\n this.share.expireDate = this.config.defaultRemoteExpirationDateString.toDateString();\n } else if (this.config.isDefaultInternalExpireDateEnabled) {\n this.share.expireDate = this.config.defaultInternalExpirationDate.toDateString();\n }\n if (this.isValidShareAttribute(this.share.expireDate)) {\n this.advancedSectionAccordionExpanded = true;\n }\n return;\n }\n\n // If there is an enforced expiry date, then existing shares created before enforcement\n // have no expiry date, hence we set it here.\n if (!this.isValidShareAttribute(this.share.expireDate) && this.isExpiryDateEnforced) {\n this.hasExpirationDate = true;\n }\n if (this.isValidShareAttribute(this.share.password) || this.isValidShareAttribute(this.share.expireDate) || this.isValidShareAttribute(this.share.label)) {\n this.advancedSectionAccordionExpanded = true;\n }\n },\n handleShareType() {\n if ('shareType' in this.share) {\n this.share.type = this.share.shareType;\n } else if (this.share.share_type) {\n this.share.type = this.share.share_type;\n }\n },\n handleDefaultPermissions() {\n if (this.isNewShare) {\n const defaultPermissions = this.config.defaultPermissions;\n if (defaultPermissions === BUNDLED_PERMISSIONS.READ_ONLY || defaultPermissions === BUNDLED_PERMISSIONS.ALL) {\n this.sharingPermission = defaultPermissions.toString();\n } else {\n this.sharingPermission = 'custom';\n this.share.permissions = defaultPermissions;\n this.advancedSectionAccordionExpanded = true;\n this.setCustomPermissions = true;\n }\n }\n },\n handleCustomPermissions() {\n if (!this.isNewShare && (this.hasCustomPermissions || this.share.setCustomPermissions)) {\n this.sharingPermission = 'custom';\n this.advancedSectionAccordionExpanded = true;\n this.setCustomPermissions = true;\n } else if (this.share.permissions) {\n this.sharingPermission = this.share.permissions.toString();\n }\n },\n initializePermissions() {\n this.handleShareType();\n this.handleDefaultPermissions();\n this.handleCustomPermissions();\n },\n async saveShare() {\n var _this$$refs$externalL;\n const permissionsAndAttributes = ['permissions', 'attributes', 'note', 'expireDate'];\n const publicShareAttributes = ['label', 'password', 'hideDownload'];\n if (this.isPublicShare) {\n permissionsAndAttributes.push(...publicShareAttributes);\n }\n const sharePermissionsSet = parseInt(this.sharingPermission);\n if (this.setCustomPermissions) {\n this.updateAtomicPermissions();\n } else {\n this.share.permissions = sharePermissionsSet;\n }\n if (!this.isFolder && this.share.permissions === BUNDLED_PERMISSIONS.ALL) {\n // It's not possible to create an existing file.\n this.share.permissions = BUNDLED_PERMISSIONS.ALL_FILE;\n }\n if (!this.writeNoteToRecipientIsChecked) {\n this.share.note = '';\n }\n if (this.isPasswordProtected) {\n if (this.hasUnsavedPassword && this.isValidShareAttribute(this.share.newPassword)) {\n this.share.password = this.share.newPassword;\n this.$delete(this.share, 'newPassword');\n } else if (this.isPasswordEnforced && !this.isValidShareAttribute(this.share.password)) {\n this.passwordError = true;\n }\n } else {\n this.share.password = '';\n }\n if (!this.hasExpirationDate) {\n this.share.expireDate = '';\n }\n if (this.isNewShare) {\n const incomingShare = {\n permissions: this.share.permissions,\n shareType: this.share.type,\n shareWith: this.share.shareWith,\n attributes: this.share.attributes,\n note: this.share.note,\n fileInfo: this.fileInfo\n };\n incomingShare.expireDate = this.hasExpirationDate ? this.share.expireDate : '';\n if (this.isPasswordProtected) {\n incomingShare.password = this.share.password;\n }\n this.creating = true;\n const share = await this.addShare(incomingShare, this.fileInfo);\n this.creating = false;\n this.share = share;\n this.$emit('add:share', this.share);\n } else {\n this.queueUpdate(...permissionsAndAttributes);\n }\n if (((_this$$refs$externalL = this.$refs.externalLinkActions) === null || _this$$refs$externalL === void 0 ? void 0 : _this$$refs$externalL.length) > 0) {\n await Promise.allSettled(this.$refs.externalLinkActions.map(action => {\n var _action$$children$at, _action$$children$at2, _action$$children$at3;\n if (typeof ((_action$$children$at = action.$children.at(0)) === null || _action$$children$at === void 0 ? void 0 : _action$$children$at.onSave) !== 'function') {\n return Promise.resolve();\n }\n return (_action$$children$at2 = action.$children.at(0)) === null || _action$$children$at2 === void 0 || (_action$$children$at3 = _action$$children$at2.onSave) === null || _action$$children$at3 === void 0 ? void 0 : _action$$children$at3.call(_action$$children$at2);\n }));\n }\n this.$emit('close-sharing-details');\n },\n /**\n * Process the new share request\n *\n * @param {Share} share incoming share object\n * @param {object} fileInfo file data\n */\n async addShare(share, fileInfo) {\n console.debug('Adding a new share from the input for', share);\n try {\n const path = (fileInfo.path + '/' + fileInfo.name).replace('//', '/');\n const resultingShare = await this.createShare({\n path,\n shareType: share.shareType,\n shareWith: share.shareWith,\n permissions: share.permissions,\n expireDate: share.expireDate,\n attributes: JSON.stringify(share.attributes),\n ...(share.note ? {\n note: share.note\n } : {}),\n ...(share.password ? {\n password: share.password\n } : {})\n });\n return resultingShare;\n } catch (error) {\n console.error('Error while adding new share', error);\n } finally {\n // this.loading = false // No loader here yet\n }\n },\n async removeShare() {\n await this.onDelete();\n this.$emit('close-sharing-details');\n },\n /**\n * Update newPassword values\n * of share. If password is set but not newPassword\n * then the user did not changed the password\n * If both co-exists, the password have changed and\n * we show it in plain text.\n * Then on submit (or menu close), we sync it.\n *\n * @param {string} password the changed password\n */\n onPasswordChange(password) {\n this.passwordError = !this.isValidShareAttribute(password);\n this.$set(this.share, 'newPassword', password);\n },\n /**\n * Update the password along with \"sendPasswordByTalk\".\n *\n * If the password was modified the new password is sent; otherwise\n * updating a mail share would fail, as in that case it is required that\n * a new password is set when enabling or disabling\n * \"sendPasswordByTalk\".\n */\n onPasswordProtectedByTalkChange() {\n if (this.hasUnsavedPassword) {\n this.share.password = this.share.newPassword.trim();\n }\n this.queueUpdate('sendPasswordByTalk', 'password');\n },\n isValidShareAttribute(value) {\n if ([null, undefined].includes(value)) {\n return false;\n }\n if (!(value.trim().length > 0)) {\n return false;\n }\n return true;\n },\n getShareTypeIcon(type) {\n switch (type) {\n case this.SHARE_TYPES.SHARE_TYPE_LINK:\n return LinkIcon;\n case this.SHARE_TYPES.SHARE_TYPE_GUEST:\n return UserIcon;\n case this.SHARE_TYPES.SHARE_TYPE_REMOTE_GROUP:\n case this.SHARE_TYPES.SHARE_TYPE_GROUP:\n return GroupIcon;\n case this.SHARE_TYPES.SHARE_TYPE_EMAIL:\n return EmailIcon;\n case this.SHARE_TYPES.SHARE_TYPE_CIRCLE:\n return CircleIcon;\n case this.SHARE_TYPES.SHARE_TYPE_ROOM:\n return ShareIcon;\n case this.SHARE_TYPES.SHARE_TYPE_DECK:\n return ShareIcon;\n case this.SHARE_TYPES.SHARE_TYPE_SCIENCEMESH:\n return ShareIcon;\n default:\n return null;\n // Or a default icon component if needed\n }\n }\n }\n};","import { generateOcsUrl } from '@nextcloud/router';\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js';\nimport axios from '@nextcloud/axios';\nimport Share from '../models/Share.js';\nimport SharingEntryInherited from '../components/SharingEntryInherited.vue';\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue';\nexport default {\n name: 'SharingInherited',\n components: {\n NcActionButton,\n SharingEntryInherited,\n SharingEntrySimple\n },\n props: {\n fileInfo: {\n type: Object,\n default: () => {},\n required: true\n }\n },\n data() {\n return {\n loaded: false,\n loading: false,\n showInheritedShares: false,\n shares: []\n };\n },\n computed: {\n showInheritedSharesIcon() {\n if (this.loading) {\n return 'icon-loading-small';\n }\n if (this.showInheritedShares) {\n return 'icon-triangle-n';\n }\n return 'icon-triangle-s';\n },\n mainTitle() {\n return t('files_sharing', 'Others with access');\n },\n subTitle() {\n return this.showInheritedShares && this.shares.length === 0 ? t('files_sharing', 'No other accounts with access found') : '';\n },\n toggleTooltip() {\n return this.fileInfo.type === 'dir' ? t('files_sharing', 'Toggle list of others with access to this directory') : t('files_sharing', 'Toggle list of others with access to this file');\n },\n fullPath() {\n const path = \"\".concat(this.fileInfo.path, \"/\").concat(this.fileInfo.name);\n return path.replace('//', '/');\n }\n },\n watch: {\n fileInfo() {\n this.resetState();\n }\n },\n methods: {\n /**\n * Toggle the list view and fetch/reset the state\n */\n toggleInheritedShares() {\n this.showInheritedShares = !this.showInheritedShares;\n if (this.showInheritedShares) {\n this.fetchInheritedShares();\n } else {\n this.resetState();\n }\n },\n /**\n * Fetch the Inherited Shares array\n */\n async fetchInheritedShares() {\n this.loading = true;\n try {\n const url = generateOcsUrl('apps/files_sharing/api/v1/shares/inherited?format=json&path={path}', {\n path: this.fullPath\n });\n const shares = await axios.get(url);\n this.shares = shares.data.ocs.data.map(share => new Share(share)).sort((a, b) => b.createdTime - a.createdTime);\n console.info(this.shares);\n this.loaded = true;\n } catch (error) {\n OC.Notification.showTemporary(t('files_sharing', 'Unable to fetch inherited shares'), {\n type: 'error'\n });\n } finally {\n this.loading = false;\n }\n },\n /**\n * Reset current component state\n */\n resetState() {\n this.loaded = false;\n this.loading = false;\n this.showInheritedShares = false;\n this.shares = [];\n },\n /**\n * Remove a share from the shares list\n *\n * @param {Share} share the share to remove\n */\n removeShare(share) {\n const index = this.shares.findIndex(item => item === share);\n // eslint-disable-next-line vue/no-mutating-props\n this.shares.splice(index, 1);\n }\n }\n};","import { getCapabilities } from '@nextcloud/capabilities';\n\n// eslint-disable-next-line no-unused-vars\nimport Share from '../models/Share.js';\nimport ShareTypes from '../mixins/ShareTypes.js';\nimport SharingEntryLink from '../components/SharingEntryLink.vue';\nimport ShareDetails from '../mixins/ShareDetails.js';\nexport default {\n name: 'SharingLinkList',\n components: {\n SharingEntryLink\n },\n mixins: [ShareTypes, ShareDetails],\n props: {\n fileInfo: {\n type: Object,\n default: () => {},\n required: true\n },\n shares: {\n type: Array,\n default: () => [],\n required: true\n },\n canReshare: {\n type: Boolean,\n required: true\n }\n },\n data() {\n return {\n canLinkShare: getCapabilities().files_sharing.public.enabled\n };\n },\n computed: {\n /**\n * Do we have link shares?\n * Using this to still show the `new link share`\n * button regardless of mail shares\n *\n * @return {Array}\n */\n hasLinkShares() {\n return this.shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK).length > 0;\n },\n /**\n * Do we have any link or email shares?\n *\n * @return {boolean}\n */\n hasShares() {\n return this.shares.length > 0;\n }\n },\n methods: {\n /**\n * Add a new share into the link shares list\n * and return the newly created share component\n *\n * @param {Share} share the share to add to the array\n * @param {Function} resolve a function to run after the share is added and its component initialized\n */\n addShare(share, resolve) {\n // eslint-disable-next-line vue/no-mutating-props\n this.shares.unshift(share);\n this.awaitForShare(share, resolve);\n },\n /**\n * Await for next tick and render after the list updated\n * Then resolve with the matched vue component of the\n * provided share object\n *\n * @param {Share} share newly created share\n * @param {Function} resolve a function to execute after\n */\n awaitForShare(share, resolve) {\n this.$nextTick(() => {\n const newShare = this.$children.find(component => component.share === share);\n if (newShare) {\n resolve(newShare);\n }\n });\n },\n /**\n * Remove a share from the shares list\n *\n * @param {Share} share the share to remove\n */\n removeShare(share) {\n const index = this.shares.findIndex(item => item === share);\n // eslint-disable-next-line vue/no-mutating-props\n this.shares.splice(index, 1);\n }\n }\n};","// eslint-disable-next-line no-unused-vars\nimport SharingEntry from '../components/SharingEntry.vue';\nimport ShareTypes from '../mixins/ShareTypes.js';\nimport ShareDetails from '../mixins/ShareDetails.js';\nexport default {\n name: 'SharingList',\n components: {\n SharingEntry\n },\n mixins: [ShareTypes, ShareDetails],\n props: {\n fileInfo: {\n type: Object,\n default: () => {},\n required: true\n },\n shares: {\n type: Array,\n default: () => [],\n required: true\n }\n },\n computed: {\n hasShares() {\n return this.shares.length === 0;\n },\n isUnique() {\n return share => {\n return [...this.shares].filter(item => {\n return share.type === this.SHARE_TYPES.SHARE_TYPE_USER && share.shareWithDisplayName === item.shareWithDisplayName;\n }).length <= 1;\n };\n }\n }\n};","import { CollectionList } from 'nextcloud-vue-collections';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport NcAvatar from '@nextcloud/vue/dist/Components/NcAvatar.js';\nimport axios from '@nextcloud/axios';\nimport { loadState } from '@nextcloud/initial-state';\nimport Config from '../services/ConfigService.js';\nimport { shareWithTitle } from '../utils/SharedWithMe.js';\nimport Share from '../models/Share.js';\nimport ShareTypes from '../mixins/ShareTypes.js';\nimport SharingEntryInternal from '../components/SharingEntryInternal.vue';\nimport SharingEntrySimple from '../components/SharingEntrySimple.vue';\nimport SharingInput from '../components/SharingInput.vue';\nimport SharingInherited from './SharingInherited.vue';\nimport SharingLinkList from './SharingLinkList.vue';\nimport SharingList from './SharingList.vue';\nimport SharingDetailsTab from './SharingDetailsTab.vue';\nexport default {\n name: 'SharingTab',\n components: {\n NcAvatar,\n CollectionList,\n SharingEntryInternal,\n SharingEntrySimple,\n SharingInherited,\n SharingInput,\n SharingLinkList,\n SharingList,\n SharingDetailsTab\n },\n mixins: [ShareTypes],\n data() {\n return {\n config: new Config(),\n deleteEvent: null,\n error: '',\n expirationInterval: null,\n loading: true,\n fileInfo: null,\n // reshare Share object\n reshare: null,\n sharedWithMe: {},\n shares: [],\n linkShares: [],\n sections: OCA.Sharing.ShareTabSections.getSections(),\n projectsEnabled: loadState('core', 'projects_enabled', false),\n showSharingDetailsView: false,\n shareDetailsData: {},\n returnFocusElement: null\n };\n },\n computed: {\n /**\n * Is this share shared with me?\n *\n * @return {boolean}\n */\n isSharedWithMe() {\n return Object.keys(this.sharedWithMe).length > 0;\n },\n canReshare() {\n return !!(this.fileInfo.permissions & OC.PERMISSION_SHARE) || !!(this.reshare && this.reshare.hasSharePermission && this.config.isResharingAllowed);\n }\n },\n methods: {\n /**\n * Update current fileInfo and fetch new data\n *\n * @param {object} fileInfo the current file FileInfo\n */\n async update(fileInfo) {\n this.fileInfo = fileInfo;\n this.resetState();\n this.getShares();\n },\n /**\n * Get the existing shares infos\n */\n async getShares() {\n try {\n this.loading = true;\n\n // init params\n const shareUrl = generateOcsUrl('apps/files_sharing/api/v1/shares');\n const format = 'json';\n // TODO: replace with proper getFUllpath implementation of our own FileInfo model\n const path = (this.fileInfo.path + '/' + this.fileInfo.name).replace('//', '/');\n\n // fetch shares\n const fetchShares = axios.get(shareUrl, {\n params: {\n format,\n path,\n reshares: true\n }\n });\n const fetchSharedWithMe = axios.get(shareUrl, {\n params: {\n format,\n path,\n shared_with_me: true\n }\n });\n\n // wait for data\n const [shares, sharedWithMe] = await Promise.all([fetchShares, fetchSharedWithMe]);\n this.loading = false;\n\n // process results\n this.processSharedWithMe(sharedWithMe);\n this.processShares(shares);\n } catch (error) {\n var _error$response$data;\n if ((_error$response$data = error.response.data) !== null && _error$response$data !== void 0 && (_error$response$data = _error$response$data.ocs) !== null && _error$response$data !== void 0 && (_error$response$data = _error$response$data.meta) !== null && _error$response$data !== void 0 && _error$response$data.message) {\n this.error = error.response.data.ocs.meta.message;\n } else {\n this.error = t('files_sharing', 'Unable to load the shares list');\n }\n this.loading = false;\n console.error('Error loading the shares list', error);\n }\n },\n /**\n * Reset the current view to its default state\n */\n resetState() {\n clearInterval(this.expirationInterval);\n this.loading = true;\n this.error = '';\n this.sharedWithMe = {};\n this.shares = [];\n this.linkShares = [];\n this.showSharingDetailsView = false;\n this.shareDetailsData = {};\n },\n /**\n * Update sharedWithMe.subtitle with the appropriate\n * expiration time left\n *\n * @param {Share} share the sharedWith Share object\n */\n updateExpirationSubtitle(share) {\n const expiration = moment(share.expireDate).unix();\n this.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'Expires {relativetime}', {\n relativetime: OC.Util.relativeModifiedDate(expiration * 1000)\n }));\n\n // share have expired\n if (moment().unix() > expiration) {\n clearInterval(this.expirationInterval);\n // TODO: clear ui if share is expired\n this.$set(this.sharedWithMe, 'subtitle', t('files_sharing', 'this share just expired.'));\n }\n },\n /**\n * Process the current shares data\n * and init shares[]\n *\n * @param {object} share the share ocs api request data\n * @param {object} share.data the request data\n */\n processShares(_ref) {\n let {\n data\n } = _ref;\n if (data.ocs && data.ocs.data && data.ocs.data.length > 0) {\n // create Share objects and sort by newest\n const shares = data.ocs.data.map(share => new Share(share)).sort((a, b) => b.createdTime - a.createdTime);\n this.linkShares = shares.filter(share => share.type === this.SHARE_TYPES.SHARE_TYPE_LINK || share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL);\n this.shares = shares.filter(share => share.type !== this.SHARE_TYPES.SHARE_TYPE_LINK && share.type !== this.SHARE_TYPES.SHARE_TYPE_EMAIL);\n console.debug('Processed', this.linkShares.length, 'link share(s)');\n console.debug('Processed', this.shares.length, 'share(s)');\n }\n },\n /**\n * Process the sharedWithMe share data\n * and init sharedWithMe\n *\n * @param {object} share the share ocs api request data\n * @param {object} share.data the request data\n */\n processSharedWithMe(_ref2) {\n let {\n data\n } = _ref2;\n if (data.ocs && data.ocs.data && data.ocs.data[0]) {\n const share = new Share(data);\n const title = shareWithTitle(share);\n const displayName = share.ownerDisplayName;\n const user = share.owner;\n this.sharedWithMe = {\n displayName,\n title,\n user\n };\n this.reshare = share;\n\n // If we have an expiration date, use it as subtitle\n // Refresh the status every 10s and clear if expired\n if (share.expireDate && moment(share.expireDate).unix() > moment().unix()) {\n // first update\n this.updateExpirationSubtitle(share);\n // interval update\n this.expirationInterval = setInterval(this.updateExpirationSubtitle, 10000, share);\n }\n } else if (this.fileInfo && this.fileInfo.shareOwnerId !== undefined ? this.fileInfo.shareOwnerId !== OC.currentUser : false) {\n // Fallback to compare owner and current user.\n this.sharedWithMe = {\n displayName: this.fileInfo.shareOwner,\n title: t('files_sharing', 'Shared with you by {owner}', {\n owner: this.fileInfo.shareOwner\n }, undefined, {\n escape: false\n }),\n user: this.fileInfo.shareOwnerId\n };\n }\n },\n /**\n * Add a new share into the shares list\n * and return the newly created share component\n *\n * @param {Share} share the share to add to the array\n * @param {Function} [resolve] a function to run after the share is added and its component initialized\n */\n addShare(share) {\n let resolve = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : () => {};\n // only catching share type MAIL as link shares are added differently\n // meaning: not from the ShareInput\n if (share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n this.linkShares.unshift(share);\n } else {\n this.shares.unshift(share);\n }\n this.awaitForShare(share, resolve);\n },\n /**\n * Remove a share from the shares list\n *\n * @param {Share} share the share to remove\n */\n removeShare(share) {\n // Get reference for this.linkShares or this.shares\n const shareList = share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL || share.type === this.SHARE_TYPES.SHARE_TYPE_LINK ? this.linkShares : this.shares;\n const index = shareList.findIndex(item => item.id === share.id);\n if (index !== -1) {\n shareList.splice(index, 1);\n }\n },\n /**\n * Await for next tick and render after the list updated\n * Then resolve with the matched vue component of the\n * provided share object\n *\n * @param {Share} share newly created share\n * @param {Function} resolve a function to execute after\n */\n awaitForShare(share, resolve) {\n this.$nextTick(() => {\n let listComponent = this.$refs.shareList;\n // Only mail shares comes from the input, link shares\n // are managed internally in the SharingLinkList component\n if (share.type === this.SHARE_TYPES.SHARE_TYPE_EMAIL) {\n listComponent = this.$refs.linkShareList;\n }\n const newShare = listComponent.$children.find(component => component.share === share);\n if (newShare) {\n resolve(newShare);\n }\n });\n },\n toggleShareDetailsView(eventData) {\n if (!this.showSharingDetailsView) {\n const isAction = Array.from(document.activeElement.classList).some(className => className.startsWith('action-'));\n if (isAction) {\n var _document$activeEleme;\n const menuId = (_document$activeEleme = document.activeElement.closest('[role=\"menu\"]')) === null || _document$activeEleme === void 0 ? void 0 : _document$activeEleme.id;\n this.returnFocusElement = document.querySelector(\"[aria-controls=\\\"\".concat(menuId, \"\\\"]\"));\n } else {\n this.returnFocusElement = document.activeElement;\n }\n }\n if (eventData) {\n this.shareDetailsData = eventData;\n }\n this.showSharingDetailsView = !this.showSharingDetailsView;\n if (!this.showSharingDetailsView) {\n this.$nextTick(() => {\n var _this$returnFocusElem;\n // Wait for next tick as the element must be visible to be focused\n (_this$returnFocusElem = this.returnFocusElement) === null || _this$returnFocusElem === void 0 || _this$returnFocusElem.focus();\n this.returnFocusElement = null;\n });\n }\n }\n }\n};","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(_vm.data.is, _vm._g(_vm._b({\n tag: \"Component\"\n }, \"Component\", _vm.data, false), _vm.action.handlers), [_vm._v(\"\\n\\t\" + _vm._s(_vm.data.text) + \"\\n\")]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"li\", {\n staticClass: \"sharing-entry\"\n }, [_c(\"NcAvatar\", {\n staticClass: \"sharing-entry__avatar\",\n attrs: {\n \"is-no-user\": _vm.share.type !== _vm.SHARE_TYPES.SHARE_TYPE_USER,\n user: _vm.share.shareWith,\n \"display-name\": _vm.share.shareWithDisplayName,\n \"menu-position\": \"left\",\n url: _vm.share.shareWithAvatar\n }\n }), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"sharing-entry__summary\"\n }, [_c(_vm.share.shareWithLink ? \"a\" : \"div\", {\n tag: \"component\",\n staticClass: \"sharing-entry__summary__desc\",\n attrs: {\n title: _vm.tooltip,\n \"aria-label\": _vm.tooltip,\n href: _vm.share.shareWithLink\n }\n }, [_c(\"span\", [_vm._v(_vm._s(_vm.title) + \"\\n\\t\\t\\t\\t\"), !_vm.isUnique ? _c(\"span\", {\n staticClass: \"sharing-entry__summary__desc-unique\"\n }, [_vm._v(\" (\" + _vm._s(_vm.share.shareWithDisplayNameUnique) + \")\")]) : _vm._e(), _vm._v(\" \"), _vm.hasStatus && _vm.share.status.message ? _c(\"small\", [_vm._v(\"(\" + _vm._s(_vm.share.status.message) + \")\")]) : _vm._e()])]), _vm._v(\" \"), _c(\"SharingEntryQuickShareSelect\", {\n attrs: {\n share: _vm.share,\n \"file-info\": _vm.fileInfo\n },\n on: {\n \"open-sharing-details\": function ($event) {\n return _vm.openShareDetailsForCustomSettings(_vm.share);\n }\n }\n })], 1), _vm._v(\" \"), _c(\"NcButton\", {\n staticClass: \"sharing-entry__action\",\n attrs: {\n \"data-cy-files-sharing-share-actions\": \"\",\n \"aria-label\": _vm.t(\"files_sharing\", \"Open Sharing Details\"),\n type: \"tertiary\"\n },\n on: {\n click: function ($event) {\n return _vm.openSharingDetails(_vm.share);\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"DotsHorizontalIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }])\n })], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"SharingEntrySimple\", {\n key: _vm.share.id,\n staticClass: \"sharing-entry__inherited\",\n attrs: {\n title: _vm.share.shareWithDisplayName\n },\n scopedSlots: _vm._u([{\n key: \"avatar\",\n fn: function () {\n return [_c(\"NcAvatar\", {\n staticClass: \"sharing-entry__avatar\",\n attrs: {\n user: _vm.share.shareWith,\n \"display-name\": _vm.share.shareWithDisplayName\n }\n })];\n },\n proxy: true\n }])\n }, [_vm._v(\" \"), _c(\"NcActionText\", {\n attrs: {\n icon: \"icon-user\"\n }\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Added by {initiator}\", {\n initiator: _vm.share.ownerDisplayName\n })) + \"\\n\\t\")]), _vm._v(\" \"), _vm.share.viaPath && _vm.share.viaFileid ? _c(\"NcActionLink\", {\n attrs: {\n icon: \"icon-folder\",\n href: _vm.viaFileTargetUrl\n }\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Via “{folder}”\", {\n folder: _vm.viaFolderName\n })) + \"\\n\\t\")]) : _vm._e(), _vm._v(\" \"), _vm.share.canDelete ? _c(\"NcActionButton\", {\n attrs: {\n icon: \"icon-close\"\n },\n on: {\n click: function ($event) {\n $event.preventDefault();\n return _vm.onDelete.apply(null, arguments);\n }\n }\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Unshare\")) + \"\\n\\t\")]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"ul\", [_c(\"SharingEntrySimple\", {\n ref: \"shareEntrySimple\",\n staticClass: \"sharing-entry__internal\",\n attrs: {\n title: _vm.t(\"files_sharing\", \"Internal link\"),\n subtitle: _vm.internalLinkSubtitle\n },\n scopedSlots: _vm._u([{\n key: \"avatar\",\n fn: function () {\n return [_c(\"div\", {\n staticClass: \"avatar-external icon-external-white\"\n })];\n },\n proxy: true\n }])\n }, [_vm._v(\" \"), _c(\"NcActionButton\", {\n attrs: {\n title: _vm.copyLinkTooltip,\n \"aria-label\": _vm.copyLinkTooltip\n },\n on: {\n click: _vm.copyLink\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_vm.copied && _vm.copySuccess ? _c(\"CheckIcon\", {\n staticClass: \"icon-checkmark-color\",\n attrs: {\n size: 20\n }\n }) : _c(\"ClipboardIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }])\n })], 1)], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"li\", {\n staticClass: \"sharing-entry sharing-entry__link\",\n class: {\n \"sharing-entry--share\": _vm.share\n }\n }, [_c(\"NcAvatar\", {\n staticClass: \"sharing-entry__avatar\",\n attrs: {\n \"is-no-user\": true,\n \"icon-class\": _vm.isEmailShareType ? \"avatar-link-share icon-mail-white\" : \"avatar-link-share icon-public-white\"\n }\n }), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"sharing-entry__summary\"\n }, [_c(\"div\", {\n staticClass: \"sharing-entry__desc\"\n }, [_c(\"span\", {\n staticClass: \"sharing-entry__title\",\n attrs: {\n title: _vm.title\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(_vm.title) + \"\\n\\t\\t\\t\")]), _vm._v(\" \"), _vm.subtitle ? _c(\"p\", [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(_vm.subtitle) + \"\\n\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _vm.share && _vm.share.permissions !== undefined ? _c(\"SharingEntryQuickShareSelect\", {\n attrs: {\n share: _vm.share,\n \"file-info\": _vm.fileInfo\n },\n on: {\n \"open-sharing-details\": function ($event) {\n return _vm.openShareDetailsForCustomSettings(_vm.share);\n }\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _vm.share && !_vm.isEmailShareType && _vm.share.token ? _c(\"NcActions\", {\n ref: \"copyButton\",\n staticClass: \"sharing-entry__copy\"\n }, [_c(\"NcActionButton\", {\n attrs: {\n title: _vm.copyLinkTooltip,\n \"aria-label\": _vm.copyLinkTooltip\n },\n on: {\n click: function ($event) {\n $event.preventDefault();\n return _vm.copyLink.apply(null, arguments);\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_vm.copied && _vm.copySuccess ? _c(\"CheckIcon\", {\n staticClass: \"icon-checkmark-color\",\n attrs: {\n size: 20\n }\n }) : _c(\"ClipboardIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 4269614823)\n })], 1) : _vm._e()], 1), _vm._v(\" \"), !_vm.pending && (_vm.pendingPassword || _vm.pendingEnforcedPassword || _vm.pendingExpirationDate) ? _c(\"NcActions\", {\n staticClass: \"sharing-entry__actions\",\n attrs: {\n \"aria-label\": _vm.actionsTooltip,\n \"menu-align\": \"right\",\n open: _vm.open\n },\n on: {\n \"update:open\": function ($event) {\n _vm.open = $event;\n },\n close: _vm.onCancel\n }\n }, [_vm.errors.pending ? _c(\"NcActionText\", {\n staticClass: \"error\",\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"ErrorIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 1966124155)\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.errors.pending) + \"\\n\\t\\t\")]) : _c(\"NcActionText\", {\n attrs: {\n icon: \"icon-info\"\n }\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Please enter the following required information before creating the share\")) + \"\\n\\t\\t\")]), _vm._v(\" \"), _vm.pendingEnforcedPassword ? _c(\"NcActionText\", [_c(\"LockIcon\", {\n attrs: {\n size: 20\n }\n }), _vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Password protection (enforced)\")) + \"\\n\\t\\t\")], 1) : _vm.pendingPassword ? _c(\"NcActionCheckbox\", {\n staticClass: \"share-link-password-checkbox\",\n attrs: {\n checked: _vm.isPasswordProtected,\n disabled: _vm.config.enforcePasswordForPublicLink || _vm.saving\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.isPasswordProtected = $event;\n },\n uncheck: _vm.onPasswordDisable\n }\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Password protection\")) + \"\\n\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _vm.pendingEnforcedPassword || _vm.share.password ? _c(\"NcActionInput\", {\n staticClass: \"share-link-password\",\n attrs: {\n value: _vm.share.password,\n disabled: _vm.saving,\n required: _vm.config.enableLinkPasswordByDefault || _vm.config.enforcePasswordForPublicLink,\n minlength: _vm.isPasswordPolicyEnabled && _vm.config.passwordPolicy.minLength,\n icon: \"\",\n autocomplete: \"new-password\"\n },\n on: {\n \"update:value\": function ($event) {\n return _vm.$set(_vm.share, \"password\", $event);\n },\n submit: _vm.onNewLinkShare\n }\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Enter a password\")) + \"\\n\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _vm.pendingExpirationDate ? _c(\"NcActionText\", {\n attrs: {\n icon: \"icon-calendar-dark\"\n }\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Expiration date (enforced)\")) + \"\\n\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _vm.pendingExpirationDate ? _c(\"NcActionInput\", {\n staticClass: \"share-link-expire-date\",\n attrs: {\n disabled: _vm.saving,\n \"is-native-picker\": true,\n \"hide-label\": true,\n value: new Date(_vm.share.expireDate),\n type: \"date\",\n min: _vm.dateTomorrow,\n max: _vm.maxExpirationDateEnforced\n },\n on: {\n input: _vm.onExpirationChange\n }\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Enter a date\")) + \"\\n\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _c(\"NcActionButton\", {\n on: {\n click: function ($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.onNewLinkShare.apply(null, arguments);\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"CheckIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 2630571749)\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Create share\")) + \"\\n\\t\\t\")]), _vm._v(\" \"), _c(\"NcActionButton\", {\n on: {\n click: function ($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.onCancel.apply(null, arguments);\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"CloseIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 2428343285)\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Cancel\")) + \"\\n\\t\\t\")])], 1) : !_vm.loading ? _c(\"NcActions\", {\n staticClass: \"sharing-entry__actions\",\n attrs: {\n \"aria-label\": _vm.actionsTooltip,\n \"menu-align\": \"right\",\n open: _vm.open\n },\n on: {\n \"update:open\": function ($event) {\n _vm.open = $event;\n },\n close: _vm.onMenuClose\n }\n }, [_vm.share ? [_vm.share.canEdit && _vm.canReshare ? [_c(\"NcActionButton\", {\n attrs: {\n disabled: _vm.saving,\n \"close-after-click\": true\n },\n on: {\n click: function ($event) {\n $event.preventDefault();\n return _vm.openSharingDetails.apply(null, arguments);\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"Tune\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 1300586850)\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Customize link\")) + \"\\n\\t\\t\\t\\t\")])] : _vm._e(), _vm._v(\" \"), _c(\"NcActionButton\", {\n attrs: {\n \"close-after-click\": true\n },\n on: {\n click: function ($event) {\n $event.preventDefault();\n _vm.showQRCode = true;\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"IconQr\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 1082198240)\n }, [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Generate QR code\")) + \"\\n\\t\\t\\t\")]), _vm._v(\" \"), _c(\"NcActionSeparator\"), _vm._v(\" \"), _vm._l(_vm.externalLinkActions, function (action) {\n return _c(\"ExternalShareAction\", {\n key: action.id,\n attrs: {\n id: action.id,\n action: action,\n \"file-info\": _vm.fileInfo,\n share: _vm.share\n }\n });\n }), _vm._v(\" \"), _vm._l(_vm.externalLegacyLinkActions, function (_ref, index) {\n let {\n icon,\n url,\n name\n } = _ref;\n return _c(\"NcActionLink\", {\n key: index,\n attrs: {\n href: url(_vm.shareLink),\n icon: icon,\n target: \"_blank\"\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(name) + \"\\n\\t\\t\\t\")]);\n }), _vm._v(\" \"), !_vm.isEmailShareType && _vm.canReshare ? _c(\"NcActionButton\", {\n staticClass: \"new-share-link\",\n on: {\n click: function ($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.onNewLinkShare.apply(null, arguments);\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"PlusIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 2953566425)\n }, [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Add another link\")) + \"\\n\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _vm.share.canDelete ? _c(\"NcActionButton\", {\n attrs: {\n disabled: _vm.saving\n },\n on: {\n click: function ($event) {\n $event.preventDefault();\n return _vm.onDelete.apply(null, arguments);\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"CloseIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 2428343285)\n }, [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Unshare\")) + \"\\n\\t\\t\\t\")]) : _vm._e()] : _vm.canReshare ? _c(\"NcActionButton\", {\n staticClass: \"new-share-link\",\n attrs: {\n title: _vm.t(\"files_sharing\", \"Create a new share link\"),\n \"aria-label\": _vm.t(\"files_sharing\", \"Create a new share link\"),\n icon: _vm.loading ? \"icon-loading-small\" : \"icon-add\"\n },\n on: {\n click: function ($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.onNewLinkShare.apply(null, arguments);\n }\n }\n }) : _vm._e()], 2) : _c(\"div\", {\n staticClass: \"icon-loading-small sharing-entry__loading\"\n }), _vm._v(\" \"), _vm.showQRCode ? _c(\"NcDialog\", {\n attrs: {\n size: \"normal\",\n open: _vm.showQRCode,\n name: _vm.title,\n \"close-on-click-outside\": true\n },\n on: {\n \"update:open\": function ($event) {\n _vm.showQRCode = $event;\n },\n close: function ($event) {\n _vm.showQRCode = false;\n }\n }\n }, [_c(\"div\", {\n staticClass: \"qr-code-dialog\"\n }, [_c(\"VueQrcode\", {\n staticClass: \"qr-code-dialog__img\",\n attrs: {\n tag: \"img\",\n value: _vm.shareLink\n }\n })], 1)]) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"NcActions\", {\n ref: \"quickShareActions\",\n staticClass: \"share-select\",\n attrs: {\n \"menu-name\": _vm.selectedOption,\n \"aria-label\": _vm.ariaLabel,\n type: \"tertiary-no-background\",\n \"force-name\": \"\"\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"DropdownIcon\", {\n attrs: {\n size: 15\n }\n })];\n },\n proxy: true\n }])\n }, [_vm._v(\" \"), _vm._l(_vm.options, function (option) {\n return _c(\"NcActionButton\", {\n key: option.label,\n attrs: {\n type: \"radio\",\n \"model-value\": option.label === _vm.selectedOption,\n \"close-after-click\": \"\"\n },\n on: {\n click: function ($event) {\n return _vm.selectOption(option.label);\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(option.icon, {\n tag: \"component\"\n })];\n },\n proxy: true\n }], null, true)\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(option.label) + \"\\n\\t\")]);\n })], 2);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"li\", {\n staticClass: \"sharing-entry\"\n }, [_vm._t(\"avatar\"), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"sharing-entry__desc\"\n }, [_c(\"span\", {\n staticClass: \"sharing-entry__title\"\n }, [_vm._v(_vm._s(_vm.title))]), _vm._v(\" \"), _vm.subtitle ? _c(\"p\", [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.subtitle) + \"\\n\\t\\t\")]) : _vm._e()]), _vm._v(\" \"), _vm.$slots[\"default\"] ? _c(\"NcActions\", {\n ref: \"actionsComponent\",\n staticClass: \"sharing-entry__actions\",\n attrs: {\n \"menu-align\": \"right\",\n \"aria-expanded\": _vm.ariaExpandedValue\n }\n }, [_vm._t(\"default\")], 2) : _vm._e()], 2);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"sharing-search\"\n }, [_c(\"label\", {\n attrs: {\n for: \"sharing-search-input\"\n }\n }, [_vm._v(_vm._s(_vm.t(\"files_sharing\", \"Search for share recipients\")))]), _vm._v(\" \"), _c(\"NcSelect\", {\n ref: \"select\",\n staticClass: \"sharing-search__input\",\n attrs: {\n \"input-id\": \"sharing-search-input\",\n disabled: !_vm.canReshare,\n loading: _vm.loading,\n filterable: false,\n placeholder: _vm.inputPlaceholder,\n \"clear-search-on-blur\": () => false,\n \"user-select\": true,\n options: _vm.options\n },\n on: {\n search: _vm.asyncFind,\n \"option:selected\": _vm.onSelected\n },\n scopedSlots: _vm._u([{\n key: \"no-options\",\n fn: function (_ref) {\n let {\n search\n } = _ref;\n return [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(search ? _vm.noResultText : _vm.t(\"files_sharing\", \"No recommendations. Start typing.\")) + \"\\n\\t\\t\")];\n }\n }]),\n model: {\n value: _vm.value,\n callback: function ($$v) {\n _vm.value = $$v;\n },\n expression: \"value\"\n }\n })], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm$share$expireDate;\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"sharingTabDetailsView\"\n }, [_c(\"div\", {\n staticClass: \"sharingTabDetailsView__header\"\n }, [_c(\"span\", [_vm.isUserShare ? _c(\"NcAvatar\", {\n staticClass: \"sharing-entry__avatar\",\n attrs: {\n \"is-no-user\": _vm.share.shareType !== _vm.SHARE_TYPES.SHARE_TYPE_USER,\n user: _vm.share.shareWith,\n \"display-name\": _vm.share.shareWithDisplayName,\n \"menu-position\": \"left\",\n url: _vm.share.shareWithAvatar\n }\n }) : _vm._e(), _vm._v(\" \"), _c(_vm.getShareTypeIcon(_vm.share.type), {\n tag: \"component\",\n attrs: {\n size: 32\n }\n })], 1), _vm._v(\" \"), _c(\"span\", [_c(\"h1\", [_vm._v(_vm._s(_vm.title))])])]), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"sharingTabDetailsView__wrapper\"\n }, [_c(\"div\", {\n ref: \"quickPermissions\",\n staticClass: \"sharingTabDetailsView__quick-permissions\"\n }, [_c(\"div\", [_c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n \"button-variant\": true,\n \"data-cy-files-sharing-share-permissions-bundle\": \"read-only\",\n checked: _vm.sharingPermission,\n value: _vm.bundledPermissions.READ_ONLY.toString(),\n name: \"sharing_permission_radio\",\n type: \"radio\",\n \"button-variant-grouped\": \"vertical\"\n },\n on: {\n \"update:checked\": [function ($event) {\n _vm.sharingPermission = $event;\n }, _vm.toggleCustomPermissions]\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"ViewIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }])\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"View only\")) + \"\\n\\t\\t\\t\\t\\t\")]), _vm._v(\" \"), _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n \"button-variant\": true,\n \"data-cy-files-sharing-share-permissions-bundle\": \"upload-edit\",\n checked: _vm.sharingPermission,\n value: _vm.bundledPermissions.ALL.toString(),\n name: \"sharing_permission_radio\",\n type: \"radio\",\n \"button-variant-grouped\": \"vertical\"\n },\n on: {\n \"update:checked\": [function ($event) {\n _vm.sharingPermission = $event;\n }, _vm.toggleCustomPermissions]\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"EditIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }])\n }, [_vm.allowsFileDrop ? [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Allow upload and editing\")) + \"\\n\\t\\t\\t\\t\\t\")] : [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Allow editing\")) + \"\\n\\t\\t\\t\\t\\t\")]], 2), _vm._v(\" \"), _vm.allowsFileDrop ? _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n \"data-cy-files-sharing-share-permissions-bundle\": \"file-drop\",\n \"button-variant\": true,\n checked: _vm.sharingPermission,\n value: _vm.bundledPermissions.FILE_DROP.toString(),\n name: \"sharing_permission_radio\",\n type: \"radio\",\n \"button-variant-grouped\": \"vertical\"\n },\n on: {\n \"update:checked\": [function ($event) {\n _vm.sharingPermission = $event;\n }, _vm.toggleCustomPermissions]\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"UploadIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }], null, false, 1083194048)\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"File drop\")) + \"\\n\\t\\t\\t\\t\\t\"), _c(\"small\", {\n staticClass: \"subline\"\n }, [_vm._v(_vm._s(_vm.t(\"files_sharing\", \"Upload only\")))])]) : _vm._e(), _vm._v(\" \"), _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n \"button-variant\": true,\n \"data-cy-files-sharing-share-permissions-bundle\": \"custom\",\n checked: _vm.sharingPermission,\n value: \"custom\",\n name: \"sharing_permission_radio\",\n type: \"radio\",\n \"button-variant-grouped\": \"vertical\"\n },\n on: {\n \"update:checked\": [function ($event) {\n _vm.sharingPermission = $event;\n }, _vm.expandCustomPermissions]\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"DotsHorizontalIcon\", {\n attrs: {\n size: 20\n }\n })];\n },\n proxy: true\n }])\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Custom permissions\")) + \"\\n\\t\\t\\t\\t\\t\"), _c(\"small\", {\n staticClass: \"subline\"\n }, [_vm._v(_vm._s(_vm.customPermissionsList))])])], 1)]), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"sharingTabDetailsView__advanced-control\"\n }, [_c(\"NcButton\", {\n attrs: {\n id: \"advancedSectionAccordionAdvancedControl\",\n type: \"tertiary\",\n alignment: \"end-reverse\",\n \"aria-controls\": \"advancedSectionAccordionAdvanced\",\n \"aria-expanded\": _vm.advancedControlExpandedValue\n },\n on: {\n click: function ($event) {\n _vm.advancedSectionAccordionExpanded = !_vm.advancedSectionAccordionExpanded;\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [!_vm.advancedSectionAccordionExpanded ? _c(\"MenuDownIcon\") : _c(\"MenuUpIcon\")];\n },\n proxy: true\n }])\n }, [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Advanced settings\")) + \"\\n\\t\\t\\t\\t\")])], 1), _vm._v(\" \"), _vm.advancedSectionAccordionExpanded ? _c(\"div\", {\n staticClass: \"sharingTabDetailsView__advanced\",\n attrs: {\n id: \"advancedSectionAccordionAdvanced\",\n \"aria-labelledby\": \"advancedSectionAccordionAdvancedControl\",\n role: \"region\"\n }\n }, [_c(\"section\", [_vm.isPublicShare ? _c(\"NcInputField\", {\n attrs: {\n autocomplete: \"off\",\n label: _vm.t(\"files_sharing\", \"Share label\"),\n value: _vm.share.label\n },\n on: {\n \"update:value\": function ($event) {\n return _vm.$set(_vm.share, \"label\", $event);\n }\n }\n }) : _vm._e(), _vm._v(\" \"), _vm.isPublicShare ? [_c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n checked: _vm.isPasswordProtected,\n disabled: _vm.isPasswordEnforced\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.isPasswordProtected = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Set password\")) + \"\\n\\t\\t\\t\\t\\t\")]), _vm._v(\" \"), _vm.isPasswordProtected ? _c(\"NcPasswordField\", {\n attrs: {\n autocomplete: \"new-password\",\n value: _vm.hasUnsavedPassword ? _vm.share.newPassword : \"\",\n error: _vm.passwordError,\n \"helper-text\": _vm.errorPasswordLabel,\n required: _vm.isPasswordEnforced,\n label: _vm.t(\"files_sharing\", \"Password\")\n },\n on: {\n \"update:value\": _vm.onPasswordChange\n }\n }) : _vm._e(), _vm._v(\" \"), _vm.isEmailShareType && _vm.passwordExpirationTime ? _c(\"span\", {\n attrs: {\n icon: \"icon-info\"\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Password expires {passwordExpirationTime}\", {\n passwordExpirationTime: _vm.passwordExpirationTime\n })) + \"\\n\\t\\t\\t\\t\\t\")]) : _vm.isEmailShareType && _vm.passwordExpirationTime !== null ? _c(\"span\", {\n attrs: {\n icon: \"icon-error\"\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Password expired\")) + \"\\n\\t\\t\\t\\t\\t\")]) : _vm._e()] : _vm._e(), _vm._v(\" \"), _vm.canTogglePasswordProtectedByTalkAvailable ? _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n checked: _vm.isPasswordProtectedByTalk\n },\n on: {\n \"update:checked\": [function ($event) {\n _vm.isPasswordProtectedByTalk = $event;\n }, _vm.onPasswordProtectedByTalkChange]\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Video verification\")) + \"\\n\\t\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n checked: _vm.hasExpirationDate,\n disabled: _vm.isExpiryDateEnforced\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.hasExpirationDate = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.isExpiryDateEnforced ? _vm.t(\"files_sharing\", \"Expiration date (enforced)\") : _vm.t(\"files_sharing\", \"Set expiration date\")) + \"\\n\\t\\t\\t\\t\")]), _vm._v(\" \"), _vm.hasExpirationDate ? _c(\"NcDateTimePickerNative\", {\n attrs: {\n id: \"share-date-picker\",\n value: new Date((_vm$share$expireDate = _vm.share.expireDate) !== null && _vm$share$expireDate !== void 0 ? _vm$share$expireDate : _vm.dateTomorrow),\n min: _vm.dateTomorrow,\n max: _vm.maxExpirationDateEnforced,\n \"hide-label\": true,\n placeholder: _vm.t(\"files_sharing\", \"Expiration date\"),\n type: \"date\"\n },\n on: {\n input: _vm.onExpirationChange\n }\n }) : _vm._e(), _vm._v(\" \"), _vm.isPublicShare ? _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n disabled: _vm.canChangeHideDownload,\n checked: _vm.share.hideDownload\n },\n on: {\n \"update:checked\": [function ($event) {\n return _vm.$set(_vm.share, \"hideDownload\", $event);\n }, function ($event) {\n return _vm.queueUpdate(\"hideDownload\");\n }]\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Hide download\")) + \"\\n\\t\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), !_vm.isPublicShare ? _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n disabled: !_vm.canSetDownload,\n checked: _vm.canDownload,\n \"data-cy-files-sharing-share-permissions-checkbox\": \"download\"\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.canDownload = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Allow download\")) + \"\\n\\t\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n checked: _vm.writeNoteToRecipientIsChecked\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.writeNoteToRecipientIsChecked = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Note to recipient\")) + \"\\n\\t\\t\\t\\t\")]), _vm._v(\" \"), _vm.writeNoteToRecipientIsChecked ? [_c(\"label\", {\n attrs: {\n for: \"share-note-textarea\"\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Enter a note for the share recipient\")) + \"\\n\\t\\t\\t\\t\\t\")]), _vm._v(\" \"), _c(\"textarea\", {\n attrs: {\n id: \"share-note-textarea\"\n },\n domProps: {\n value: _vm.share.note\n },\n on: {\n input: function ($event) {\n _vm.share.note = $event.target.value;\n }\n }\n })] : _vm._e(), _vm._v(\" \"), _vm._l(_vm.externalLinkActions, function (action) {\n return _c(\"ExternalShareAction\", {\n key: action.id,\n ref: \"externalLinkActions\",\n refInFor: true,\n attrs: {\n id: action.id,\n action: action,\n \"file-info\": _vm.fileInfo,\n share: _vm.share\n }\n });\n }), _vm._v(\" \"), _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n checked: _vm.setCustomPermissions\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.setCustomPermissions = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Custom permissions\")) + \"\\n\\t\\t\\t\\t\")]), _vm._v(\" \"), _vm.setCustomPermissions ? _c(\"section\", {\n staticClass: \"custom-permissions-group\"\n }, [_c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n disabled: !_vm.allowsFileDrop && _vm.share.type === _vm.SHARE_TYPES.SHARE_TYPE_LINK,\n checked: _vm.hasRead,\n \"data-cy-files-sharing-share-permissions-checkbox\": \"read\"\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.hasRead = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Read\")) + \"\\n\\t\\t\\t\\t\\t\")]), _vm._v(\" \"), _vm.isFolder ? _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n disabled: !_vm.canSetCreate,\n checked: _vm.canCreate,\n \"data-cy-files-sharing-share-permissions-checkbox\": \"create\"\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.canCreate = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Create\")) + \"\\n\\t\\t\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n disabled: !_vm.canSetEdit,\n checked: _vm.canEdit,\n \"data-cy-files-sharing-share-permissions-checkbox\": \"update\"\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.canEdit = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Edit\")) + \"\\n\\t\\t\\t\\t\\t\")]), _vm._v(\" \"), _vm.config.isResharingAllowed && _vm.share.type !== _vm.SHARE_TYPES.SHARE_TYPE_LINK ? _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n disabled: !_vm.canSetReshare,\n checked: _vm.canReshare,\n \"data-cy-files-sharing-share-permissions-checkbox\": \"share\"\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.canReshare = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Share\")) + \"\\n\\t\\t\\t\\t\\t\")]) : _vm._e(), _vm._v(\" \"), _c(\"NcCheckboxRadioSwitch\", {\n attrs: {\n disabled: !_vm.canSetDelete,\n checked: _vm.canDelete,\n \"data-cy-files-sharing-share-permissions-checkbox\": \"delete\"\n },\n on: {\n \"update:checked\": function ($event) {\n _vm.canDelete = $event;\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Delete\")) + \"\\n\\t\\t\\t\\t\\t\")])], 1) : _vm._e(), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"sharingTabDetailsView__delete\"\n }, [!_vm.isNewShare ? _c(\"NcButton\", {\n attrs: {\n \"aria-label\": _vm.t(\"files_sharing\", \"Delete share\"),\n disabled: false,\n readonly: false,\n type: \"tertiary\"\n },\n on: {\n click: function ($event) {\n $event.preventDefault();\n return _vm.removeShare.apply(null, arguments);\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"CloseIcon\", {\n attrs: {\n size: 16\n }\n })];\n },\n proxy: true\n }], null, false, 2746485232)\n }, [_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Delete share\")) + \"\\n\\t\\t\\t\\t\\t\")]) : _vm._e()], 1)], 2)]) : _vm._e()]), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"sharingTabDetailsView__footer\"\n }, [_c(\"div\", {\n staticClass: \"button-group\"\n }, [_c(\"NcButton\", {\n attrs: {\n \"data-cy-files-sharing-share-editor-action\": \"cancel\"\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"close-sharing-details\");\n }\n }\n }, [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(_vm.t(\"files_sharing\", \"Cancel\")) + \"\\n\\t\\t\\t\")]), _vm._v(\" \"), _c(\"NcButton\", {\n attrs: {\n type: \"primary\",\n \"data-cy-files-sharing-share-editor-action\": \"save\"\n },\n on: {\n click: _vm.saveShare\n },\n scopedSlots: _vm._u([_vm.creating ? {\n key: \"icon\",\n fn: function () {\n return [_c(\"NcLoadingIcon\")];\n },\n proxy: true\n } : null], null, true)\n }, [_vm._v(\"\\n\\t\\t\\t\\t\" + _vm._s(_vm.shareButtonText) + \"\\n\\t\\t\\t\\t\")])], 1)])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"ul\", {\n attrs: {\n id: \"sharing-inherited-shares\"\n }\n }, [_c(\"SharingEntrySimple\", {\n staticClass: \"sharing-entry__inherited\",\n attrs: {\n title: _vm.mainTitle,\n subtitle: _vm.subTitle,\n \"aria-expanded\": _vm.showInheritedShares\n },\n scopedSlots: _vm._u([{\n key: \"avatar\",\n fn: function () {\n return [_c(\"div\", {\n staticClass: \"avatar-shared icon-more-white\"\n })];\n },\n proxy: true\n }])\n }, [_vm._v(\" \"), _c(\"NcActionButton\", {\n attrs: {\n icon: _vm.showInheritedSharesIcon,\n \"aria-label\": _vm.toggleTooltip,\n title: _vm.toggleTooltip\n },\n on: {\n click: function ($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.toggleInheritedShares.apply(null, arguments);\n }\n }\n })], 1), _vm._v(\" \"), _vm._l(_vm.shares, function (share) {\n return _c(\"SharingEntryInherited\", {\n key: share.id,\n attrs: {\n \"file-info\": _vm.fileInfo,\n share: share\n },\n on: {\n \"remove:share\": _vm.removeShare\n }\n });\n })], 2);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _vm.canLinkShare ? _c(\"ul\", {\n staticClass: \"sharing-link-list\"\n }, [!_vm.hasLinkShares && _vm.canReshare ? _c(\"SharingEntryLink\", {\n attrs: {\n \"can-reshare\": _vm.canReshare,\n \"file-info\": _vm.fileInfo\n },\n on: {\n \"add:share\": _vm.addShare\n }\n }) : _vm._e(), _vm._v(\" \"), _vm.hasShares ? _vm._l(_vm.shares, function (share, index) {\n return _c(\"SharingEntryLink\", {\n key: share.id,\n attrs: {\n index: _vm.shares.length > 1 ? index + 1 : null,\n \"can-reshare\": _vm.canReshare,\n share: _vm.shares[index],\n \"file-info\": _vm.fileInfo\n },\n on: {\n \"update:share\": [function ($event) {\n return _vm.$set(_vm.shares, index, $event);\n }, function ($event) {\n return _vm.awaitForShare(...arguments);\n }],\n \"add:share\": function ($event) {\n return _vm.addShare(...arguments);\n },\n \"remove:share\": _vm.removeShare,\n \"open-sharing-details\": function ($event) {\n return _vm.openSharingDetails(share);\n }\n }\n });\n }) : _vm._e()], 2) : _vm._e();\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"ul\", {\n staticClass: \"sharing-sharee-list\"\n }, _vm._l(_vm.shares, function (share) {\n return _c(\"SharingEntry\", {\n key: share.id,\n attrs: {\n \"file-info\": _vm.fileInfo,\n share: share,\n \"is-unique\": _vm.isUnique(share)\n },\n on: {\n \"open-sharing-details\": function ($event) {\n return _vm.openSharingDetails(share);\n }\n }\n });\n }), 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"div\", {\n staticClass: \"sharingTab\",\n class: {\n \"icon-loading\": _vm.loading\n }\n }, [_vm.error ? _c(\"div\", {\n staticClass: \"emptycontent\",\n class: {\n emptyContentWithSections: _vm.sections.length > 0\n }\n }, [_c(\"div\", {\n staticClass: \"icon icon-error\"\n }), _vm._v(\" \"), _c(\"h2\", [_vm._v(_vm._s(_vm.error))])]) : _vm._e(), _vm._v(\" \"), _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.showSharingDetailsView,\n expression: \"!showSharingDetailsView\"\n }],\n staticClass: \"sharingTab__content\"\n }, [_c(\"ul\", [_vm.isSharedWithMe ? _c(\"SharingEntrySimple\", _vm._b({\n staticClass: \"sharing-entry__reshare\",\n scopedSlots: _vm._u([{\n key: \"avatar\",\n fn: function () {\n return [_c(\"NcAvatar\", {\n staticClass: \"sharing-entry__avatar\",\n attrs: {\n user: _vm.sharedWithMe.user,\n \"display-name\": _vm.sharedWithMe.displayName\n }\n })];\n },\n proxy: true\n }], null, false, 3197855346)\n }, \"SharingEntrySimple\", _vm.sharedWithMe, false)) : _vm._e()], 1), _vm._v(\" \"), !_vm.loading ? _c(\"SharingInput\", {\n attrs: {\n \"can-reshare\": _vm.canReshare,\n \"file-info\": _vm.fileInfo,\n \"link-shares\": _vm.linkShares,\n reshare: _vm.reshare,\n shares: _vm.shares\n },\n on: {\n \"open-sharing-details\": _vm.toggleShareDetailsView\n }\n }) : _vm._e(), _vm._v(\" \"), !_vm.loading ? _c(\"SharingLinkList\", {\n ref: \"linkShareList\",\n attrs: {\n \"can-reshare\": _vm.canReshare,\n \"file-info\": _vm.fileInfo,\n shares: _vm.linkShares\n },\n on: {\n \"open-sharing-details\": _vm.toggleShareDetailsView\n }\n }) : _vm._e(), _vm._v(\" \"), !_vm.loading ? _c(\"SharingList\", {\n ref: \"shareList\",\n attrs: {\n shares: _vm.shares,\n \"file-info\": _vm.fileInfo\n },\n on: {\n \"open-sharing-details\": _vm.toggleShareDetailsView\n }\n }) : _vm._e(), _vm._v(\" \"), _vm.canReshare && !_vm.loading ? _c(\"SharingInherited\", {\n attrs: {\n \"file-info\": _vm.fileInfo\n }\n }) : _vm._e(), _vm._v(\" \"), _c(\"SharingEntryInternal\", {\n attrs: {\n \"file-info\": _vm.fileInfo\n }\n }), _vm._v(\" \"), _vm.projectsEnabled && _vm.fileInfo ? _c(\"CollectionList\", {\n attrs: {\n id: \"\".concat(_vm.fileInfo.id),\n type: \"file\",\n name: _vm.fileInfo.name\n }\n }) : _vm._e()], 1), _vm._v(\" \"), _vm._l(_vm.sections, function (section, index) {\n return _c(\"div\", {\n directives: [{\n name: \"show\",\n rawName: \"v-show\",\n value: !_vm.showSharingDetailsView,\n expression: \"!showSharingDetailsView\"\n }],\n key: index,\n ref: \"section-\" + index,\n refInFor: true,\n staticClass: \"sharingTab__additionalContent\"\n }, [_c(section(_vm.$refs[\"section-\" + index], _vm.fileInfo), {\n tag: \"component\",\n attrs: {\n \"file-info\": _vm.fileInfo\n }\n })], 1);\n }), _vm._v(\" \"), _vm.showSharingDetailsView ? _c(\"SharingDetailsTab\", {\n attrs: {\n \"file-info\": _vm.shareDetailsData.fileInfo,\n share: _vm.shareDetailsData.share\n },\n on: {\n \"close-sharing-details\": _vm.toggleShareDetailsView,\n \"add:share\": _vm.addShare,\n \"remove:share\": _vm.removeShare\n }\n }) : _vm._e()], 2);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.fade-enter-active[data-v-8e58e0a5],\n.fade-leave-active[data-v-8e58e0a5] {\n transition: opacity .3s ease;\n}\n.fade-enter[data-v-8e58e0a5],\n.fade-leave-to[data-v-8e58e0a5] {\n opacity: 0;\n}\n.linked-icons[data-v-8e58e0a5] {\n display: flex;\n}\n.linked-icons img[data-v-8e58e0a5] {\n padding: 12px;\n height: 44px;\n display: block;\n background-repeat: no-repeat;\n background-position: center;\n opacity: .7;\n}\n.linked-icons img[data-v-8e58e0a5]:hover {\n opacity: 1;\n}\n.popovermenu[data-v-8e58e0a5] {\n display: none;\n}\n.popovermenu.open[data-v-8e58e0a5] {\n display: block;\n}\nli.collection-list-item[data-v-8e58e0a5] {\n flex-wrap: wrap;\n height: auto;\n cursor: pointer;\n margin-bottom: 0 !important;\n}\nli.collection-list-item .collection-avatar[data-v-8e58e0a5] {\n margin-top: 6px;\n}\nli.collection-list-item form[data-v-8e58e0a5],\nli.collection-list-item .collection-item-name[data-v-8e58e0a5] {\n flex-basis: 10%;\n flex-grow: 1;\n display: flex;\n}\nli.collection-list-item .collection-item-name[data-v-8e58e0a5] {\n padding: 12px 9px;\n}\nli.collection-list-item input[data-v-8e58e0a5] {\n margin-top: 4px;\n border-color: var(--color-border-maxcontrast);\n}\nli.collection-list-item input[type=text][data-v-8e58e0a5] {\n flex-grow: 1;\n}\nli.collection-list-item .error[data-v-8e58e0a5],\nli.collection-list-item .resource-list-details[data-v-8e58e0a5] {\n flex-basis: 100%;\n width: 100%;\n}\nli.collection-list-item .resource-list-details li[data-v-8e58e0a5] {\n display: flex;\n margin-left: 44px;\n border-radius: 3px;\n cursor: pointer;\n}\nli.collection-list-item .resource-list-details li[data-v-8e58e0a5]:hover {\n background-color: var(--color-background-dark);\n}\nli.collection-list-item .resource-list-details li a[data-v-8e58e0a5] {\n flex-grow: 1;\n padding: 3px;\n max-width: calc(100% - 30px);\n display: flex;\n}\nli.collection-list-item .resource-list-details span[data-v-8e58e0a5] {\n display: inline-block;\n vertical-align: top;\n margin-right: 10px;\n}\nli.collection-list-item .resource-list-details span.resource-name[data-v-8e58e0a5] {\n text-overflow: ellipsis;\n overflow: hidden;\n position: relative;\n vertical-align: top;\n white-space: nowrap;\n flex-grow: 1;\n padding: 4px;\n}\nli.collection-list-item .resource-list-details img[data-v-8e58e0a5] {\n width: 24px;\n height: 24px;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-8e58e0a5] {\n opacity: .7;\n}\nli.collection-list-item .resource-list-details .icon-close[data-v-8e58e0a5]:hover,\nli.collection-list-item .resource-list-details .icon-close[data-v-8e58e0a5]:focus {\n opacity: 1;\n}\n.shouldshake[data-v-8e58e0a5] {\n animation: shake-8e58e0a5 .6s 1 linear;\n}\n@keyframes shake-8e58e0a5 {\n 0% {\n transform: translate(15px);\n }\n 20% {\n transform: translate(-15px);\n }\n 40% {\n transform: translate(7px);\n }\n 60% {\n transform: translate(-7px);\n }\n 80% {\n transform: translate(3px);\n }\n to {\n transform: translate(0);\n }\n}\n.collection-list *[data-v-75a4370b] {\n box-sizing: border-box;\n}\n.collection-list > li[data-v-75a4370b] {\n display: flex;\n align-items: start;\n gap: 12px;\n}\n.collection-list > li > .avatar[data-v-75a4370b] {\n margin-top: auto;\n}\n#collection-select-container[data-v-75a4370b] {\n display: flex;\n flex-direction: column;\n}\n.v-select span.avatar[data-v-75a4370b] {\n display: block;\n padding: 16px;\n opacity: .7;\n background-repeat: no-repeat;\n background-position: center;\n}\n.v-select span.avatar[data-v-75a4370b]:hover {\n opacity: 1;\n}\np.hint[data-v-75a4370b] {\n z-index: 1;\n margin-top: -16px;\n padding: 8px;\n color: var(--color-text-maxcontrast);\n line-height: normal;\n}\ndiv.avatar[data-v-75a4370b] {\n width: 32px;\n height: 32px;\n margin: 30px 0 0;\n padding: 8px;\n background-color: var(--color-background-dark);\n}\n.icon-projects[data-v-75a4370b] {\n display: block;\n padding: 8px;\n background-repeat: no-repeat;\n background-position: center;\n}\n.option__wrapper[data-v-75a4370b] {\n display: flex;\n}\n.option__wrapper .avatar[data-v-75a4370b] {\n display: block;\n background-color: var(--color-background-darker) !important;\n}\n.option__wrapper .option__title[data-v-75a4370b] {\n padding: 4px;\n}\n.fade-enter-active[data-v-75a4370b],\n.fade-leave-active[data-v-75a4370b] {\n transition: opacity .5s;\n}\n.fade-enter[data-v-75a4370b],\n.fade-leave-to[data-v-75a4370b] {\n opacity: 0;\n}\n`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-61240f7a] {\n display: flex;\n align-items: center;\n height: 44px;\n}\n.sharing-entry__summary[data-v-61240f7a] {\n padding: 8px;\n padding-left: 10px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: flex-start;\n flex: 1 0;\n min-width: 0;\n}\n.sharing-entry__summary__desc[data-v-61240f7a] {\n display: inline-block;\n padding-bottom: 0;\n line-height: 1.2em;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.sharing-entry__summary__desc p[data-v-61240f7a],\n.sharing-entry__summary__desc small[data-v-61240f7a] {\n color: var(--color-text-maxcontrast);\n}\n.sharing-entry__summary__desc-unique[data-v-61240f7a] {\n color: var(--color-text-maxcontrast);\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-06bd31b0] {\n display: flex;\n align-items: center;\n height: 44px;\n}\n.sharing-entry__desc[data-v-06bd31b0] {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n padding: 8px;\n padding-left: 10px;\n line-height: 1.2em;\n}\n.sharing-entry__desc p[data-v-06bd31b0] {\n color: var(--color-text-maxcontrast);\n}\n.sharing-entry__actions[data-v-06bd31b0] {\n margin-left: auto;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__internal .avatar-external[data-v-f55cfc52] {\n width: 32px;\n height: 32px;\n line-height: 32px;\n font-size: 18px;\n background-color: var(--color-text-maxcontrast);\n border-radius: 50%;\n flex-shrink: 0;\n}\n.sharing-entry__internal .icon-checkmark-color[data-v-f55cfc52] {\n opacity: 1;\n color: var(--color-success);\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-7a675594] {\n display: flex;\n align-items: center;\n min-height: 44px;\n}\n.sharing-entry__summary[data-v-7a675594] {\n padding: 8px;\n padding-left: 10px;\n display: flex;\n justify-content: space-between;\n flex: 1 0;\n min-width: 0;\n}\n.sharing-entry__desc[data-v-7a675594] {\n display: flex;\n flex-direction: column;\n line-height: 1.2em;\n}\n.sharing-entry__desc p[data-v-7a675594] {\n color: var(--color-text-maxcontrast);\n}\n.sharing-entry__desc__title[data-v-7a675594] {\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n.sharing-entry:not(.sharing-entry--share) .sharing-entry__actions .new-share-link[data-v-7a675594] {\n border-top: 1px solid var(--color-border);\n}\n.sharing-entry[data-v-7a675594] .avatar-link-share {\n background-color: var(--color-primary-element);\n}\n.sharing-entry .sharing-entry__action--public-upload[data-v-7a675594] {\n border-bottom: 1px solid var(--color-border);\n}\n.sharing-entry__loading[data-v-7a675594] {\n width: 44px;\n height: 44px;\n margin: 0;\n padding: 14px;\n margin-left: auto;\n}\n.sharing-entry .action-item ~ .action-item[data-v-7a675594],\n.sharing-entry .action-item ~ .sharing-entry__loading[data-v-7a675594] {\n margin-left: 0;\n}\n.sharing-entry .icon-checkmark-color[data-v-7a675594] {\n opacity: 1;\n color: var(--color-success);\n}\n.qr-code-dialog[data-v-7a675594] {\n display: flex;\n width: 100%;\n justify-content: center;\n}\n.qr-code-dialog__img[data-v-7a675594] {\n width: 100%;\n height: auto;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.share-select[data-v-62b9dbb0] {\n display: block;\n}\n.share-select[data-v-62b9dbb0] .action-item__menutoggle {\n color: var(--color-primary-element) !important;\n font-size: 12.5px !important;\n height: auto !important;\n min-height: auto !important;\n}\n.share-select[data-v-62b9dbb0] .action-item__menutoggle .button-vue__text {\n font-weight: normal !important;\n}\n.share-select[data-v-62b9dbb0] .action-item__menutoggle .button-vue__icon {\n height: 24px !important;\n min-height: 24px !important;\n width: 24px !important;\n min-width: 24px !important;\n}\n.share-select[data-v-62b9dbb0] .action-item__menutoggle .button-vue__wrapper {\n flex-direction: row-reverse !important;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry[data-v-354542cc] {\n display: flex;\n align-items: center;\n min-height: 44px;\n}\n.sharing-entry__desc[data-v-354542cc] {\n padding: 8px;\n padding-left: 10px;\n line-height: 1.2em;\n position: relative;\n flex: 1 1;\n min-width: 0;\n}\n.sharing-entry__desc p[data-v-354542cc] {\n color: var(--color-text-maxcontrast);\n}\n.sharing-entry__title[data-v-354542cc] {\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n max-width: inherit;\n}\n.sharing-entry__actions[data-v-354542cc] {\n margin-left: auto !important;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-search {\n display: flex;\n flex-direction: column;\n margin-bottom: 4px;\n}\n.sharing-search label[for=sharing-search-input] {\n margin-bottom: 2px;\n}\n.sharing-search__input {\n width: 100%;\n margin: 10px 0;\n}\n.vs__dropdown-menu span[lookup] .avatardiv {\n background-image: var(--icon-search-white);\n background-repeat: no-repeat;\n background-position: center;\n background-color: var(--color-text-maxcontrast) !important;\n}\n.vs__dropdown-menu span[lookup] .avatardiv .avatardiv__initials-wrapper {\n display: none;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharingTabDetailsView[data-v-b968620e] {\n display: flex;\n flex-direction: column;\n width: 100%;\n margin: 0 auto;\n position: relative;\n height: 100%;\n overflow: hidden;\n}\n.sharingTabDetailsView__header[data-v-b968620e] {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n margin: 0.2em;\n}\n.sharingTabDetailsView__header span[data-v-b968620e] {\n display: flex;\n align-items: center;\n}\n.sharingTabDetailsView__header span h1[data-v-b968620e] {\n font-size: 15px;\n padding-left: 0.3em;\n}\n.sharingTabDetailsView__wrapper[data-v-b968620e] {\n position: relative;\n overflow: scroll;\n flex-shrink: 1;\n padding: 4px;\n padding-right: 12px;\n}\n.sharingTabDetailsView__quick-permissions[data-v-b968620e] {\n display: flex;\n justify-content: center;\n width: 100%;\n margin: 0 auto;\n border-radius: 0;\n}\n.sharingTabDetailsView__quick-permissions div[data-v-b968620e] {\n width: 100%;\n}\n.sharingTabDetailsView__quick-permissions div span[data-v-b968620e] {\n width: 100%;\n /* Target component based style in NcCheckboxRadioSwitch slot content*/\n}\n.sharingTabDetailsView__quick-permissions div span span[data-v-b968620e]:nth-child(1) {\n align-items: center;\n justify-content: center;\n padding: 0.1em;\n}\n.sharingTabDetailsView__quick-permissions div span[data-v-b968620e] label span {\n display: flex;\n flex-direction: column;\n}\n.sharingTabDetailsView__quick-permissions div span[data-v-b968620e] span.checkbox-content__text.checkbox-radio-switch__text {\n flex-wrap: wrap;\n}\n.sharingTabDetailsView__quick-permissions div span[data-v-b968620e] span.checkbox-content__text.checkbox-radio-switch__text .subline {\n display: block;\n flex-basis: 100%;\n}\n.sharingTabDetailsView__advanced-control[data-v-b968620e] {\n width: 100%;\n}\n.sharingTabDetailsView__advanced-control button[data-v-b968620e] {\n margin-top: 0.5em;\n}\n.sharingTabDetailsView__advanced[data-v-b968620e] {\n width: 100%;\n margin-bottom: 0.5em;\n text-align: left;\n padding-left: 0;\n}\n.sharingTabDetailsView__advanced section[data-v-b968620e] {\n /*\n The following style is applied out of the component's scope\n to remove padding from the label.checkbox-radio-switch__label,\n which is used to group radio checkbox items. The use of ::v-deep\n ensures that the padding is modified without being affected by\n the component's scoping.\n Without this achieving left alignment for the checkboxes would not\n be possible.\n */\n}\n.sharingTabDetailsView__advanced section textarea[data-v-b968620e],\n.sharingTabDetailsView__advanced section div.mx-datepicker[data-v-b968620e] {\n width: 100%;\n}\n.sharingTabDetailsView__advanced section textarea[data-v-b968620e] {\n height: 80px;\n margin: 0;\n}\n.sharingTabDetailsView__advanced section span[data-v-b968620e] label {\n padding-left: 0 !important;\n background-color: initial !important;\n border: none !important;\n}\n.sharingTabDetailsView__advanced section section.custom-permissions-group[data-v-b968620e] {\n padding-left: 1.5em;\n}\n.sharingTabDetailsView__delete > button[data-v-b968620e]:first-child {\n color: rgb(223, 7, 7);\n}\n.sharingTabDetailsView__footer[data-v-b968620e] {\n width: 100%;\n display: flex;\n position: sticky;\n bottom: 0;\n flex-direction: column;\n justify-content: space-between;\n align-items: flex-start;\n background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--color-main-background));\n}\n.sharingTabDetailsView__footer .button-group[data-v-b968620e] {\n display: flex;\n justify-content: space-between;\n width: 100%;\n margin-top: 16px;\n}\n.sharingTabDetailsView__footer .button-group button[data-v-b968620e] {\n margin-left: 16px;\n}\n.sharingTabDetailsView__footer .button-group button[data-v-b968620e]:first-child {\n margin-left: 0;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.sharing-entry__inherited .avatar-shared[data-v-3f1bda78] {\n width: 32px;\n height: 32px;\n line-height: 32px;\n font-size: 18px;\n background-color: var(--color-text-maxcontrast);\n border-radius: 50%;\n flex-shrink: 0;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.emptyContentWithSections[data-v-0f81577f] {\n margin: 1rem auto;\n}\n.sharingTab[data-v-0f81577f] {\n position: relative;\n height: 100%;\n}\n.sharingTab__content[data-v-0f81577f] {\n padding: 0 6px;\n}\n.sharingTab__additionalContent[data-v-0f81577f] {\n margin: 44px 0;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.generateUrl = exports.generateRemoteUrl = exports.generateOcsUrl = exports.generateFilePath = void 0;\nexports.getAppRootUrl = getAppRootUrl;\nexports.getRootUrl = getRootUrl;\nexports.linkTo = exports.imagePath = void 0;\nrequire(\"core-js/modules/es.string.replace.js\");\n/**\n * Get an url with webroot to a file in an app\n *\n * @param {string} app the id of the app the file belongs to\n * @param {string} file the file path relative to the app folder\n * @return {string} URL with webroot to a file\n */\nconst linkTo = (app, file) => generateFilePath(app, '', file);\n\n/**\n * Creates a relative url for remote use\n *\n * @param {string} service id\n * @return {string} the url\n */\nexports.linkTo = linkTo;\nconst linkToRemoteBase = service => getRootUrl() + '/remote.php/' + service;\n\n/**\n * @brief Creates an absolute url for remote use\n * @param {string} service id\n * @return {string} the url\n */\nconst generateRemoteUrl = service => window.location.protocol + '//' + window.location.host + linkToRemoteBase(service);\n\n/**\n * Get the base path for the given OCS API service\n *\n * @param {string} url OCS API service url\n * @param {object} params parameters to be replaced into the service url\n * @param {UrlOptions} options options for the parameter replacement\n * @param {boolean} options.escape Set to false if parameters should not be URL encoded (default true)\n * @param {Number} options.ocsVersion OCS version to use (defaults to 2)\n * @return {string} Absolute path for the OCS URL\n */\nexports.generateRemoteUrl = generateRemoteUrl;\nconst generateOcsUrl = (url, params, options) => {\n const allOptions = Object.assign({\n ocsVersion: 2\n }, options || {});\n const version = allOptions.ocsVersion === 1 ? 1 : 2;\n return window.location.protocol + '//' + window.location.host + getRootUrl() + '/ocs/v' + version + '.php' + _generateUrlPath(url, params, options);\n};\nexports.generateOcsUrl = generateOcsUrl;\n/**\n * Generate a url path, which can contain parameters\n *\n * Parameters will be URL encoded automatically\n *\n * @param {string} url address (can contain placeholders e.g. /call/{token} would replace {token} with the value of params.token\n * @param {object} params parameters to be replaced into the address\n * @param {UrlOptions} options options for the parameter replacement\n * @return {string} Path part for the given URL\n */\nconst _generateUrlPath = (url, params, options) => {\n const allOptions = Object.assign({\n escape: true\n }, options || {});\n const _build = function (text, vars) {\n vars = vars || {};\n return text.replace(/{([^{}]*)}/g, function (a, b) {\n var r = vars[b];\n if (allOptions.escape) {\n return typeof r === 'string' || typeof r === 'number' ? encodeURIComponent(r.toString()) : encodeURIComponent(a);\n } else {\n return typeof r === 'string' || typeof r === 'number' ? r.toString() : a;\n }\n });\n };\n if (url.charAt(0) !== '/') {\n url = '/' + url;\n }\n return _build(url, params || {});\n};\n\n/**\n * Generate the url with webroot for the given relative url, which can contain parameters\n *\n * Parameters will be URL encoded automatically\n *\n * @param {string} url address (can contain placeholders e.g. /call/{token} would replace {token} with the value of params.token\n * @param {object} params parameters to be replaced into the url\n * @param {UrlOptions} options options for the parameter replacement\n * @param {boolean} options.noRewrite True if you want to force index.php being added\n * @param {boolean} options.escape Set to false if parameters should not be URL encoded (default true)\n * @return {string} URL with webroot for the given relative URL\n */\nconst generateUrl = (url, params, options) => {\n var _window;\n const allOptions = Object.assign({\n noRewrite: false\n }, options || {});\n if (((_window = window) === null || _window === void 0 || (_window = _window.OC) === null || _window === void 0 || (_window = _window.config) === null || _window === void 0 ? void 0 : _window.modRewriteWorking) === true && !allOptions.noRewrite) {\n return getRootUrl() + _generateUrlPath(url, params, options);\n }\n return getRootUrl() + '/index.php' + _generateUrlPath(url, params, options);\n};\n\n/**\n * Get the path with webroot to an image file\n * if no extension is given for the image, it will automatically decide\n * between .png and .svg based on what the browser supports\n *\n * @param {string} app the app id to which the image belongs\n * @param {string} file the name of the image file\n * @return {string}\n */\nexports.generateUrl = generateUrl;\nconst imagePath = (app, file) => {\n if (file.indexOf('.') === -1) {\n //if no extension is given, use svg\n return generateFilePath(app, 'img', file + '.svg');\n }\n return generateFilePath(app, 'img', file);\n};\n\n/**\n * Get the url with webroot for a file in an app\n *\n * @param {string} app the id of the app\n * @param {string} type the type of the file to link to (e.g. css,img,ajax.template)\n * @param {string} file the filename\n * @return {string} URL with webroot for a file in an app\n */\nexports.imagePath = imagePath;\nconst generateFilePath = (app, type, file) => {\n var _window2;\n const isCore = ((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.OC) === null || _window2 === void 0 || (_window2 = _window2.coreApps) === null || _window2 === void 0 ? void 0 : _window2.indexOf(app)) !== -1;\n let link = getRootUrl();\n if (file.substring(file.length - 3) === 'php' && !isCore) {\n link += '/index.php/apps/' + app;\n if (file !== 'index.php') {\n link += '/';\n if (type) {\n link += encodeURI(type + '/');\n }\n link += file;\n }\n } else if (file.substring(file.length - 3) !== 'php' && !isCore) {\n link = getAppRootUrl(app);\n if (type) {\n link += '/' + type + '/';\n }\n if (link.substring(link.length - 1) !== '/') {\n link += '/';\n }\n link += file;\n } else {\n if ((app === 'settings' || app === 'core' || app === 'search') && type === 'ajax') {\n link += '/index.php/';\n } else {\n link += '/';\n }\n if (!isCore) {\n link += 'apps/';\n }\n if (app !== '') {\n app += '/';\n link += app;\n }\n if (type) {\n link += type + '/';\n }\n link += file;\n }\n return link;\n};\n\n/**\n * Return the web root path where this Nextcloud instance\n * is accessible, with a leading slash.\n * For example \"/nextcloud\".\n *\n * @return {string} web root path\n */\nexports.generateFilePath = generateFilePath;\nfunction getRootUrl() {\n let webroot = window._oc_webroot;\n if (typeof webroot === 'undefined') {\n webroot = location.pathname;\n const pos = webroot.indexOf('/index.php/');\n if (pos !== -1) {\n webroot = webroot.substr(0, pos);\n } else {\n webroot = webroot.substr(0, webroot.lastIndexOf('/'));\n }\n }\n return webroot;\n}\n\n/**\n * Return the web root path for a given app\n * @param {string} app The ID of the app\n */\nfunction getAppRootUrl(app) {\n var _window$_oc_appswebro, _webroots$app;\n const webroots = (_window$_oc_appswebro = window._oc_appswebroots) !== null && _window$_oc_appswebro !== void 0 ? _window$_oc_appswebro : {};\n return (_webroots$app = webroots[app]) !== null && _webroots$app !== void 0 ? _webroots$app : '';\n}\n//# sourceMappingURL=index.js.map","\n import API from \"!../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../css-loader/dist/cjs.js!./index-Au1Gr_G6.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../css-loader/dist/cjs.js!./index-Au1Gr_G6.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","/**!\n * url-search-params-polyfill\n *\n * @author Jerry Bendy (https://github.com/jerrybendy)\n * @licence MIT\n */\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (function() {\n // #41 Fix issue in RN\n try {\n if (self.URLSearchParams && (new self.URLSearchParams('foo=bar')).get('foo') === 'bar') {\n return self.URLSearchParams;\n }\n } catch (e) {}\n return null;\n })(),\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n isSupportSize = nativeURLSearchParams && 'size' in nativeURLSearchParams.prototype,\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly && isSupportSize) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return this.has(name) ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return hasOwnProperty(this [__URLSearchParams__], name);\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var useProxy = self.Proxy && nativeURLSearchParams && (!decodesPlusesCorrectly || !encodesAmpersandsCorrectly || !isSupportObjectConstructor || !isSupportSize);\n var propValue;\n if (useProxy) {\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n propValue = new Proxy(nativeURLSearchParams, {\n construct: function (target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n })\n // Chrome <=60 .toString() on a function proxy got error \"Function.prototype.toString is not generic\"\n propValue.toString = Function.prototype.toString.bind(URLSearchParamsPolyfill);\n } else {\n propValue = URLSearchParamsPolyfill;\n }\n\n /*\n * Apply polyfill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: propValue\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n // Fix #54, `toString.call(new URLSearchParams)` will return correct value when Proxy not used\n if (!useProxy && self.Symbol) {\n USPProto[self.Symbol.toStringTag] = 'URLSearchParams';\n }\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n if (!('forEach' in USPProto)) {\n USPProto.forEach = function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n }\n\n /**\n * Sort all name-value pairs\n */\n if (!('sort' in USPProto)) {\n USPProto.sort = function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n }\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('keys' in USPProto)) {\n USPProto.keys = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('values' in USPProto)) {\n USPProto.values = function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n }\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n if (!('entries' in USPProto)) {\n USPProto.entries = function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n }\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n if (!('size' in USPProto)) {\n Object.defineProperty(USPProto, 'size', {\n get: function () {\n var dict = parseToDict(this.toString())\n if (USPProto === this) {\n throw new TypeError('Illegal invocation at URLSearchParams.invokeGetter')\n }\n return Object.keys(dict).reduce(function (prev, cur) {\n return prev + dict[cur].length;\n }, 0);\n }\n });\n }\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return str\n .replace(/[ +]/g, '%20')\n .replace(/(%[a-f0-9]{2})+/ig, function(match) {\n return decodeURIComponent(match);\n });\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n // if `search` is an array, treat it as a sequence\n if (isArray(search)) {\n for (var i = 0; i < search.length; i++) {\n var item = search[i];\n if (isArray(item) && item.length === 2) {\n appendTo(dict, item[0], item[1]);\n } else {\n throw new TypeError(\"Failed to construct 'URLSearchParams': Sequence initializer must only contain pair elements\");\n }\n }\n\n } else {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key]);\n }\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n );\n\n // #47 Prevent using `hasOwnProperty` as a property name\n if (hasOwnProperty(dict, name)) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n function isArray(val) {\n return !!val && '[object Array]' === Object.prototype.toString.call(val);\n }\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","import { render, staticRenderFns } from \"./ExternalShareAction.vue?vue&type=template&id=27835356\"\nimport script from \"./ExternalShareAction.vue?vue&type=script&lang=js\"\nexport * from \"./ExternalShareAction.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('27835356')) {\n api.createRecord('27835356', component.options)\n } else {\n api.reload('27835356', component.options)\n }\n module.hot.accept(\"./ExternalShareAction.vue?vue&type=template&id=27835356\", function () {\n api.rerender('27835356', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/components/ExternalShareAction.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true\"\nimport script from \"./SharingEntry.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntry.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"61240f7a\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('61240f7a')) {\n api.createRecord('61240f7a', component.options)\n } else {\n api.reload('61240f7a', component.options)\n }\n module.hot.accept(\"./SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true\", function () {\n api.rerender('61240f7a', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/components/SharingEntry.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true\"\nimport script from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06bd31b0\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('06bd31b0')) {\n api.createRecord('06bd31b0', component.options)\n } else {\n api.reload('06bd31b0', component.options)\n }\n module.hot.accept(\"./SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true\", function () {\n api.rerender('06bd31b0', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/components/SharingEntryInherited.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true\"\nimport script from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryInternal.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f55cfc52\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('f55cfc52')) {\n api.createRecord('f55cfc52', component.options)\n } else {\n api.reload('f55cfc52', component.options)\n }\n module.hot.accept(\"./SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true\", function () {\n api.rerender('f55cfc52', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/components/SharingEntryInternal.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true\"\nimport script from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryLink.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7a675594\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('7a675594')) {\n api.createRecord('7a675594', component.options)\n } else {\n api.reload('7a675594', component.options)\n }\n module.hot.accept(\"./SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true\", function () {\n api.rerender('7a675594', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/components/SharingEntryLink.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true\"\nimport script from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62b9dbb0\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('62b9dbb0')) {\n api.createRecord('62b9dbb0', component.options)\n } else {\n api.reload('62b9dbb0', component.options)\n }\n module.hot.accept(\"./SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true\", function () {\n api.rerender('62b9dbb0', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/components/SharingEntryQuickShareSelect.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true\"\nimport script from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nexport * from \"./SharingEntrySimple.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"354542cc\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('354542cc')) {\n api.createRecord('354542cc', component.options)\n } else {\n api.reload('354542cc', component.options)\n }\n module.hot.accept(\"./SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true\", function () {\n api.rerender('354542cc', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/components/SharingEntrySimple.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingInput.vue?vue&type=template&id=39161a5c\"\nimport script from \"./SharingInput.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('39161a5c')) {\n api.createRecord('39161a5c', component.options)\n } else {\n api.reload('39161a5c', component.options)\n }\n module.hot.accept(\"./SharingInput.vue?vue&type=template&id=39161a5c\", function () {\n api.rerender('39161a5c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/components/SharingInput.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true\"\nimport script from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingDetailsTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b968620e\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('b968620e')) {\n api.createRecord('b968620e', component.options)\n } else {\n api.reload('b968620e', component.options)\n }\n module.hot.accept(\"./SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true\", function () {\n api.rerender('b968620e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/views/SharingDetailsTab.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true\"\nimport script from \"./SharingInherited.vue?vue&type=script&lang=js\"\nexport * from \"./SharingInherited.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3f1bda78\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('3f1bda78')) {\n api.createRecord('3f1bda78', component.options)\n } else {\n api.reload('3f1bda78', component.options)\n }\n module.hot.accept(\"./SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true\", function () {\n api.rerender('3f1bda78', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/views/SharingInherited.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingLinkList.vue?vue&type=template&id=dd248c84\"\nimport script from \"./SharingLinkList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingLinkList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('dd248c84')) {\n api.createRecord('dd248c84', component.options)\n } else {\n api.reload('dd248c84', component.options)\n }\n module.hot.accept(\"./SharingLinkList.vue?vue&type=template&id=dd248c84\", function () {\n api.rerender('dd248c84', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/views/SharingLinkList.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingList.vue?vue&type=template&id=698e26a4\"\nimport script from \"./SharingList.vue?vue&type=script&lang=js\"\nexport * from \"./SharingList.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('698e26a4')) {\n api.createRecord('698e26a4', component.options)\n } else {\n api.reload('698e26a4', component.options)\n }\n module.hot.accept(\"./SharingList.vue?vue&type=template&id=698e26a4\", function () {\n api.rerender('698e26a4', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/views/SharingList.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./SharingTab.vue?vue&type=template&id=0f81577f&scoped=true\"\nimport script from \"./SharingTab.vue?vue&type=script&lang=js\"\nexport * from \"./SharingTab.vue?vue&type=script&lang=js\"\nimport style0 from \"./SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f81577f\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('0f81577f')) {\n api.createRecord('0f81577f', component.options)\n } else {\n api.reload('0f81577f', component.options)\n }\n module.hot.accept(\"./SharingTab.vue?vue&type=template&id=0f81577f&scoped=true\", function () {\n api.rerender('0f81577f', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files_sharing/src/views/SharingTab.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./AccountCircleOutline.vue?vue&type=template&id=4f5873d1\"\nimport script from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./AccountCircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('4f5873d1')) {\n api.createRecord('4f5873d1', component.options)\n } else {\n api.reload('4f5873d1', component.options)\n }\n module.hot.accept(\"./AccountCircleOutline.vue?vue&type=template&id=4f5873d1\", function () {\n api.rerender('4f5873d1', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/AccountCircleOutline.vue\"\nexport default component.exports","\nexport default {\n name: \"AccountCircleOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./CheckBold.vue?vue&type=template&id=486b2cb1\"\nimport script from \"./CheckBold.vue?vue&type=script&lang=js\"\nexport * from \"./CheckBold.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('486b2cb1')) {\n api.createRecord('486b2cb1', component.options)\n } else {\n api.reload('486b2cb1', component.options)\n }\n module.hot.accept(\"./CheckBold.vue?vue&type=template&id=486b2cb1\", function () {\n api.rerender('486b2cb1', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/CheckBold.vue\"\nexport default component.exports","\nexport default {\n name: \"CheckBoldIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./CircleOutline.vue?vue&type=template&id=ad0ef454\"\nimport script from \"./CircleOutline.vue?vue&type=script&lang=js\"\nexport * from \"./CircleOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('ad0ef454')) {\n api.createRecord('ad0ef454', component.options)\n } else {\n api.reload('ad0ef454', component.options)\n }\n module.hot.accept(\"./CircleOutline.vue?vue&type=template&id=ad0ef454\", function () {\n api.rerender('ad0ef454', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/CircleOutline.vue\"\nexport default component.exports","\nexport default {\n name: \"CircleOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./ClipboardFlow.vue?vue&type=template&id=2676ab68\"\nimport script from \"./ClipboardFlow.vue?vue&type=script&lang=js\"\nexport * from \"./ClipboardFlow.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('2676ab68')) {\n api.createRecord('2676ab68', component.options)\n } else {\n api.reload('2676ab68', component.options)\n }\n module.hot.accept(\"./ClipboardFlow.vue?vue&type=template&id=2676ab68\", function () {\n api.rerender('2676ab68', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/ClipboardFlow.vue\"\nexport default component.exports","\nexport default {\n name: \"ClipboardFlowIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./DotsHorizontal.vue?vue&type=template&id=3174c38c\"\nimport script from \"./DotsHorizontal.vue?vue&type=script&lang=js\"\nexport * from \"./DotsHorizontal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('3174c38c')) {\n api.createRecord('3174c38c', component.options)\n } else {\n api.reload('3174c38c', component.options)\n }\n module.hot.accept(\"./DotsHorizontal.vue?vue&type=template&id=3174c38c\", function () {\n api.rerender('3174c38c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/DotsHorizontal.vue\"\nexport default component.exports","\nexport default {\n name: \"DotsHorizontalIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./Email.vue?vue&type=template&id=503121c0\"\nimport script from \"./Email.vue?vue&type=script&lang=js\"\nexport * from \"./Email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('503121c0')) {\n api.createRecord('503121c0', component.options)\n } else {\n api.reload('503121c0', component.options)\n }\n module.hot.accept(\"./Email.vue?vue&type=template&id=503121c0\", function () {\n api.rerender('503121c0', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/Email.vue\"\nexport default component.exports","\nexport default {\n name: \"EmailIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./Exclamation.vue?vue&type=template&id=34aa771e\"\nimport script from \"./Exclamation.vue?vue&type=script&lang=js\"\nexport * from \"./Exclamation.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('34aa771e')) {\n api.createRecord('34aa771e', component.options)\n } else {\n api.reload('34aa771e', component.options)\n }\n module.hot.accept(\"./Exclamation.vue?vue&type=template&id=34aa771e\", function () {\n api.rerender('34aa771e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/Exclamation.vue\"\nexport default component.exports","\nexport default {\n name: \"ExclamationIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./Eye.vue?vue&type=template&id=6cfe2635\"\nimport script from \"./Eye.vue?vue&type=script&lang=js\"\nexport * from \"./Eye.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('6cfe2635')) {\n api.createRecord('6cfe2635', component.options)\n } else {\n api.reload('6cfe2635', component.options)\n }\n module.hot.accept(\"./Eye.vue?vue&type=template&id=6cfe2635\", function () {\n api.rerender('6cfe2635', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/Eye.vue\"\nexport default component.exports","\nexport default {\n name: \"EyeIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./EyeOutline.vue?vue&type=template&id=7b68237d\"\nimport script from \"./EyeOutline.vue?vue&type=script&lang=js\"\nexport * from \"./EyeOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('7b68237d')) {\n api.createRecord('7b68237d', component.options)\n } else {\n api.reload('7b68237d', component.options)\n }\n module.hot.accept(\"./EyeOutline.vue?vue&type=template&id=7b68237d\", function () {\n api.rerender('7b68237d', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/EyeOutline.vue\"\nexport default component.exports","\nexport default {\n name: \"EyeOutlineIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./FileUpload.vue?vue&type=template&id=78fe596e\"\nimport script from \"./FileUpload.vue?vue&type=script&lang=js\"\nexport * from \"./FileUpload.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('78fe596e')) {\n api.createRecord('78fe596e', component.options)\n } else {\n api.reload('78fe596e', component.options)\n }\n module.hot.accept(\"./FileUpload.vue?vue&type=template&id=78fe596e\", function () {\n api.rerender('78fe596e', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/FileUpload.vue\"\nexport default component.exports","\nexport default {\n name: \"FileUploadIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./Lock.vue?vue&type=template&id=0e7c8452\"\nimport script from \"./Lock.vue?vue&type=script&lang=js\"\nexport * from \"./Lock.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('0e7c8452')) {\n api.createRecord('0e7c8452', component.options)\n } else {\n api.reload('0e7c8452', component.options)\n }\n module.hot.accept(\"./Lock.vue?vue&type=template&id=0e7c8452\", function () {\n api.rerender('0e7c8452', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/Lock.vue\"\nexport default component.exports","\nexport default {\n name: \"LockIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./Qrcode.vue?vue&type=template&id=ff95848c\"\nimport script from \"./Qrcode.vue?vue&type=script&lang=js\"\nexport * from \"./Qrcode.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('ff95848c')) {\n api.createRecord('ff95848c', component.options)\n } else {\n api.reload('ff95848c', component.options)\n }\n module.hot.accept(\"./Qrcode.vue?vue&type=template&id=ff95848c\", function () {\n api.rerender('ff95848c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/Qrcode.vue\"\nexport default component.exports","\nexport default {\n name: \"QrcodeIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./ShareCircle.vue?vue&type=template&id=5c5332da\"\nimport script from \"./ShareCircle.vue?vue&type=script&lang=js\"\nexport * from \"./ShareCircle.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('5c5332da')) {\n api.createRecord('5c5332da', component.options)\n } else {\n api.reload('5c5332da', component.options)\n }\n module.hot.accept(\"./ShareCircle.vue?vue&type=template&id=5c5332da\", function () {\n api.rerender('5c5332da', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/ShareCircle.vue\"\nexport default component.exports","\nexport default {\n name: \"ShareCircleIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./TriangleSmallDown.vue?vue&type=template&id=7ca50825\"\nimport script from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\nexport * from \"./TriangleSmallDown.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('7ca50825')) {\n api.createRecord('7ca50825', component.options)\n } else {\n api.reload('7ca50825', component.options)\n }\n module.hot.accept(\"./TriangleSmallDown.vue?vue&type=template&id=7ca50825\", function () {\n api.rerender('7ca50825', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/TriangleSmallDown.vue\"\nexport default component.exports","\nexport default {\n name: \"TriangleSmallDownIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import { render, staticRenderFns } from \"./Tune.vue?vue&type=template&id=f0bd6bb8\"\nimport script from \"./Tune.vue?vue&type=script&lang=js\"\nexport * from \"./Tune.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('f0bd6bb8')) {\n api.createRecord('f0bd6bb8', component.options)\n } else {\n api.reload('f0bd6bb8', component.options)\n }\n module.hot.accept(\"./Tune.vue?vue&type=template&id=f0bd6bb8\", function () {\n api.rerender('f0bd6bb8', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"node_modules/vue-material-design-icons/Tune.vue\"\nexport default component.exports","\nexport default {\n name: \"TuneIcon\",\n emits: ['click'],\n props: {\n title: {\n type: String,\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=script&lang=js\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ExternalShareAction.vue?vue&type=template&id=27835356\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=template&id=61240f7a&scoped=true\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=template&id=06bd31b0&scoped=true\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=template&id=f55cfc52&scoped=true\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=template&id=7a675594&scoped=true\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=template&id=62b9dbb0&scoped=true\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=template&id=354542cc&scoped=true\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=template&id=39161a5c\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=template&id=b968620e&scoped=true\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=template&id=3f1bda78&scoped=true\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingLinkList.vue?vue&type=template&id=dd248c84\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingList.vue?vue&type=template&id=698e26a4\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=template&id=0f81577f&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntry.vue?vue&type=style&index=0&id=61240f7a&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInherited.vue?vue&type=style&index=0&id=06bd31b0&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryInternal.vue?vue&type=style&index=0&id=f55cfc52&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryLink.vue?vue&type=style&index=0&id=7a675594&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntryQuickShareSelect.vue?vue&type=style&index=0&id=62b9dbb0&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingEntrySimple.vue?vue&type=style&index=0&id=354542cc&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInput.vue?vue&type=style&index=0&id=39161a5c&lang=scss\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingDetailsTab.vue?vue&type=style&index=0&id=b968620e&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingInherited.vue?vue&type=style&index=0&id=3f1bda78&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SharingTab.vue?vue&type=style&index=0&id=0f81577f&scoped=true&lang=scss\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClipboardFlow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ClipboardFlow.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./DotsHorizontal.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./EyeOutline.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=script&lang=js\"","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=script&lang=js\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./AccountCircleOutline.vue?vue&type=template&id=4f5873d1\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./CheckBold.vue?vue&type=template&id=486b2cb1\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./CircleOutline.vue?vue&type=template&id=ad0ef454\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./ClipboardFlow.vue?vue&type=template&id=2676ab68\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Email.vue?vue&type=template&id=503121c0\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Exclamation.vue?vue&type=template&id=34aa771e\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Eye.vue?vue&type=template&id=6cfe2635\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./FileUpload.vue?vue&type=template&id=78fe596e\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Lock.vue?vue&type=template&id=0e7c8452\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Qrcode.vue?vue&type=template&id=ff95848c\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./ShareCircle.vue?vue&type=template&id=5c5332da\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./TriangleSmallDown.vue?vue&type=template&id=7ca50825\"","export * from \"-!../vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../vue-loader/lib/index.js??vue-loader-options!./Tune.vue?vue&type=template&id=f0bd6bb8\"","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon account-circle-outline-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M7.07,18.28C7.5,17.38 10.12,16.5 12,16.5C13.88,16.5 16.5,17.38 16.93,18.28C15.57,19.36 13.86,20 12,20C10.14,20 8.43,19.36 7.07,18.28M18.36,16.83C16.93,15.09 13.46,14.5 12,14.5C10.54,14.5 7.07,15.09 5.64,16.83C4.62,15.5 4,13.82 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,13.82 19.38,15.5 18.36,16.83M12,6C10.06,6 8.5,7.56 8.5,9.5C8.5,11.44 10.06,13 12,13C13.94,13 15.5,11.44 15.5,9.5C15.5,7.56 13.94,6 12,6M12,11A1.5,1.5 0 0,1 10.5,9.5A1.5,1.5 0 0,1 12,8A1.5,1.5 0 0,1 13.5,9.5A1.5,1.5 0 0,1 12,11Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon check-bold-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon circle-outline-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon clipboard-flow-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M19,3H14.82C14.4,1.84 13.3,1 12,1C10.7,1 9.6,1.84 9.18,3H5A2,2 0 0,0 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V5A2,2 0 0,0 19,3M12,3A1,1 0 0,1 13,4A1,1 0 0,1 12,5A1,1 0 0,1 11,4A1,1 0 0,1 12,3M15,19L11,15H14V8H16V15H19L15,19M10,16H8V9H5L9,5L13,9H10V16\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon dots-horizontal-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M16,12A2,2 0 0,1 18,10A2,2 0 0,1 20,12A2,2 0 0,1 18,14A2,2 0 0,1 16,12M10,12A2,2 0 0,1 12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12M4,12A2,2 0 0,1 6,10A2,2 0 0,1 8,12A2,2 0 0,1 6,14A2,2 0 0,1 4,12Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon email-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M20,8L12,13L4,8V6L12,11L20,6M20,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V6C22,4.89 21.1,4 20,4Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon exclamation-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M 11,4L 13,4L 13,15L 11,15L 11,4 Z M 13,18L 13,20L 11,20L 11,18L 13,18 Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon eye-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17M12,4.5C7,4.5 2.73,7.61 1,12C2.73,16.39 7,19.5 12,19.5C17,19.5 21.27,16.39 23,12C21.27,7.61 17,4.5 12,4.5Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon eye-outline-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M12,9A3,3 0 0,1 15,12A3,3 0 0,1 12,15A3,3 0 0,1 9,12A3,3 0 0,1 12,9M12,4.5C17,4.5 21.27,7.61 23,12C21.27,16.39 17,19.5 12,19.5C7,19.5 2.73,16.39 1,12C2.73,7.61 7,4.5 12,4.5M3.18,12C4.83,15.36 8.24,17.5 12,17.5C15.76,17.5 19.17,15.36 20.82,12C19.17,8.64 15.76,6.5 12,6.5C8.24,6.5 4.83,8.64 3.18,12Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon file-upload-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M14,2H6A2,2 0 0,0 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2M13.5,16V19H10.5V16H8L12,12L16,16H13.5M13,9V3.5L18.5,9H13Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon lock-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M12,17A2,2 0 0,0 14,15C14,13.89 13.1,13 12,13A2,2 0 0,0 10,15A2,2 0 0,0 12,17M18,8A2,2 0 0,1 20,10V20A2,2 0 0,1 18,22H6A2,2 0 0,1 4,20V10C4,8.89 4.9,8 6,8H7V6A5,5 0 0,1 12,1A5,5 0 0,1 17,6V8H18M12,3A3,3 0 0,0 9,6V8H15V6A3,3 0 0,0 12,3Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon qrcode-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M3,11H5V13H3V11M11,5H13V9H11V5M9,11H13V15H11V13H9V11M15,11H17V13H19V11H21V13H19V15H21V19H19V21H17V19H13V21H11V17H15V15H17V13H15V11M19,19V15H17V19H19M15,3H21V9H15V3M17,5V7H19V5H17M3,3H9V9H3V3M5,5V7H7V5H5M3,15H9V21H3V15M5,17V19H7V17H5Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon share-circle-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M14 16V13C10.39 13 7.81 14.43 6 17C6.72 13.33 8.94 9.73 14 9V6L19 11L14 16Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon triangle-small-down-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\"path\", { attrs: { d: \"M8 9H16L12 16\" } }, [\n _vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e(),\n ]),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","var render = function render() {\n var _vm = this,\n _c = _vm._self._c\n return _c(\n \"span\",\n _vm._b(\n {\n staticClass: \"material-design-icon tune-icon\",\n attrs: {\n \"aria-hidden\": _vm.title ? null : true,\n \"aria-label\": _vm.title,\n role: \"img\",\n },\n on: {\n click: function ($event) {\n return _vm.$emit(\"click\", $event)\n },\n },\n },\n \"span\",\n _vm.$attrs,\n false\n ),\n [\n _c(\n \"svg\",\n {\n staticClass: \"material-design-icon__svg\",\n attrs: {\n fill: _vm.fillColor,\n width: _vm.size,\n height: _vm.size,\n viewBox: \"0 0 24 24\",\n },\n },\n [\n _c(\n \"path\",\n {\n attrs: {\n d: \"M3,17V19H9V17H3M3,5V7H13V5H3M13,21V19H21V17H13V15H11V21H13M7,9V11H3V13H7V15H9V9H7M21,13V11H11V13H21M15,9H17V7H21V5H17V3H15V9Z\",\n },\n },\n [_vm.title ? _c(\"title\", [_vm._v(_vm._s(_vm.title))]) : _vm._e()]\n ),\n ]\n ),\n ]\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns }","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import './assets/index-Au1Gr_G6.css';\nimport w from \"@nextcloud/vue/dist/Components/NcAvatar.js\";\nimport O from \"@nextcloud/vue/dist/Components/NcSelect.js\";\nimport T from \"lodash-es/debounce.js\";\nimport S from \"@nextcloud/vue/dist/Components/NcActions.js\";\nimport k from \"@nextcloud/vue/dist/Components/NcActionButton.js\";\nimport A, { set as f } from \"vue\";\nimport $ from \"@nextcloud/axios\";\nimport { generateOcsUrl as d } from \"@nextcloud/router\";\n/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nclass D {\n constructor() {\n this.http = $;\n }\n listCollection(e) {\n return this.http.get(d(\"collaboration/resources/collections/{collectionId}\", { collectionId: e }));\n }\n renameCollection(e, o) {\n return this.http.put(d(\"collaboration/resources/collections/{collectionId}\", { collectionId: e }), {\n collectionName: o\n }).then((n) => n.data.ocs.data);\n }\n getCollectionsByResource(e, o) {\n return this.http.get(d(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType: e, resourceId: o })).then((n) => n.data.ocs.data);\n }\n createCollection(e, o, n) {\n return this.http.post(d(\"collaboration/resources/{resourceType}/{resourceId}\", { resourceType: e, resourceId: o }), {\n name: n\n }).then((r) => r.data.ocs.data);\n }\n addResource(e, o, n) {\n return n = \"\" + n, this.http.post(d(\"collaboration/resources/collections/{collectionId}\", { collectionId: e }), {\n resourceType: o,\n resourceId: n\n }).then((r) => r.data.ocs.data);\n }\n removeResource(e, o, n) {\n return this.http.delete(d(\"collaboration/resources/collections/{collectionId}\", { collectionId: e }), { params: { resourceType: o, resourceId: n } }).then((r) => r.data.ocs.data);\n }\n search(e) {\n return this.http.get(d(\"collaboration/resources/collections/search/{query}\", { query: e })).then((o) => o.data.ocs.data);\n }\n}\nconst p = new D();\n/*\n * @copyright Copyright (c) 2019 Julius Härtl \n *\n * @author Julius Härtl \n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst u = A.observable({\n collections: []\n}), h = {\n addCollections(s) {\n f(u, \"collections\", s);\n },\n addCollection(s) {\n u.collections.push(s);\n },\n removeCollection(s) {\n f(u, \"collections\", u.collections.filter((e) => e.id !== s));\n },\n updateCollection(s) {\n const e = u.collections.findIndex((o) => o.id === s.id);\n e !== -1 ? f(u.collections, e, s) : u.collections.push(s);\n }\n}, l = {\n fetchCollectionsByResource({ resourceType: s, resourceId: e }) {\n return p.getCollectionsByResource(s, e).then((o) => (h.addCollections(o), o));\n },\n createCollection({ baseResourceType: s, baseResourceId: e, resourceType: o, resourceId: n, name: r }) {\n return p.createCollection(s, e, r).then((m) => {\n h.addCollection(m), l.addResourceToCollection({\n collectionId: m.id,\n resourceType: o,\n resourceId: n\n });\n });\n },\n renameCollection({ collectionId: s, name: e }) {\n return p.renameCollection(s, e).then((o) => (h.updateCollection(o), o));\n },\n addResourceToCollection({ collectionId: s, resourceType: e, resourceId: o }) {\n return p.addResource(s, e, o).then((n) => (h.updateCollection(n), n));\n },\n removeResource({ collectionId: s, resourceType: e, resourceId: o }) {\n return p.removeResource(s, e, o).then((n) => {\n n.resources.length > 0 ? h.updateCollection(n) : h.removeCollection(n);\n });\n },\n search(s) {\n return p.search(s);\n }\n};\nfunction R(s, e, o, n, r, m, _, I) {\n var i = typeof s == \"function\" ? s.options : s;\n e && (i.render = e, i.staticRenderFns = o, i._compiled = !0), n && (i.functional = !0), m && (i._scopeId = \"data-v-\" + m);\n var a;\n if (_ ? (a = function(c) {\n c = c || // cached call\n this.$vnode && this.$vnode.ssrContext || // stateful\n this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext, !c && typeof __VUE_SSR_CONTEXT__ < \"u\" && (c = __VUE_SSR_CONTEXT__), r && r.call(this, c), c && c._registeredComponents && c._registeredComponents.add(_);\n }, i._ssrRegister = a) : r && (a = I ? function() {\n r.call(\n this,\n (i.functional ? this.parent : this).$root.$options.shadowRoot\n );\n } : r), a)\n if (i.functional) {\n i._injectStyles = a;\n var b = i.render;\n i.render = function(N, v) {\n return a.call(v), b(N, v);\n };\n } else {\n var C = i.beforeCreate;\n i.beforeCreate = C ? [].concat(C, a) : [a];\n }\n return {\n exports: s,\n options: i\n };\n}\nconst B = {\n name: \"CollectionListItem\",\n components: {\n NcAvatar: w,\n NcActions: S,\n NcActionButton: k\n },\n props: {\n collection: {\n type: Object,\n default: null\n }\n },\n data() {\n return {\n detailsOpen: !1,\n newName: null,\n error: {}\n };\n },\n computed: {\n getIcon() {\n return (s) => [s.iconClass];\n },\n typeClass() {\n return (s) => \"resource-type-\" + s.type;\n },\n limitedResources() {\n return (s) => s.resources ? s.resources.slice(0, 2) : [];\n },\n iconUrl() {\n return (s) => s.mimetype ? OC.MimeType.getIconUrl(s.mimetype) : s.iconUrl ? s.iconUrl : \"\";\n }\n },\n methods: {\n toggleDetails() {\n this.detailsOpen = !this.detailsOpen;\n },\n showDetails() {\n this.detailsOpen = !0;\n },\n hideDetails() {\n this.detailsOpen = !1;\n },\n removeResource(s, e) {\n l.removeResource({\n collectionId: s.id,\n resourceType: e.type,\n resourceId: e.id\n });\n },\n openRename() {\n this.newName = this.collection.name;\n },\n renameCollection() {\n if (this.newName === \"\") {\n this.newName = null;\n return;\n }\n l.renameCollection({\n collectionId: this.collection.id,\n name: this.newName\n }).then((s) => {\n this.newName = null;\n }).catch((s) => {\n this.$set(this.error, \"rename\", t(\"core\", \"Failed to rename the project\")), console.error(s), setTimeout(() => {\n f(this.error, \"rename\", null);\n }, 3e3);\n });\n }\n }\n};\nvar E = function() {\n var e = this, o = e._self._c;\n return o(\"li\", { staticClass: \"collection-list-item\" }, [o(\"NcAvatar\", { staticClass: \"collection-avatar\", attrs: { \"display-name\": e.collection.name, \"allow-placeholder\": \"\" } }), e.newName === null ? o(\"span\", { staticClass: \"collection-item-name\", attrs: { title: \"\" }, on: { click: e.showDetails } }, [e._v(e._s(e.collection.name))]) : o(\"form\", { class: { shouldshake: e.error.rename }, on: { submit: function(n) {\n return n.preventDefault(), e.renameCollection.apply(null, arguments);\n } } }, [o(\"input\", { directives: [{ name: \"model\", rawName: \"v-model\", value: e.newName, expression: \"newName\" }], attrs: { type: \"text\", autocomplete: \"off\", autocapitalize: \"off\" }, domProps: { value: e.newName }, on: { input: function(n) {\n n.target.composing || (e.newName = n.target.value);\n } } }), o(\"input\", { staticClass: \"icon-confirm\", attrs: { type: \"submit\", value: \"\" } })]), !e.detailsOpen && e.newName === null ? o(\"div\", { staticClass: \"linked-icons\" }, e._l(e.limitedResources(e.collection), function(n) {\n return o(\"a\", { key: n.type + \"|\" + n.id, class: e.typeClass(n), attrs: { title: n.name, href: n.link } }, [o(\"img\", { attrs: { src: e.iconUrl(n) } })]);\n }), 0) : e._e(), e.newName === null ? o(\"span\", { staticClass: \"sharingOptionsGroup\" }, [o(\"NcActions\", [o(\"NcActionButton\", { attrs: { icon: \"icon-info\" }, on: { click: function(n) {\n return n.preventDefault(), e.toggleDetails.apply(null, arguments);\n } } }, [e._v(\" \" + e._s(e.detailsOpen ? e.t(\"core\", \"Hide details\") : e.t(\"core\", \"Show details\")) + \" \")]), o(\"NcActionButton\", { attrs: { icon: \"icon-rename\" }, on: { click: function(n) {\n return n.preventDefault(), e.openRename.apply(null, arguments);\n } } }, [e._v(\" \" + e._s(e.t(\"core\", \"Rename project\")) + \" \")])], 1)], 1) : e._e(), o(\"transition\", { attrs: { name: \"fade\" } }, [e.error.rename ? o(\"div\", { staticClass: \"error\" }, [e._v(\" \" + e._s(e.error.rename) + \" \")]) : e._e()]), o(\"transition\", { attrs: { name: \"fade\" } }, [e.detailsOpen ? o(\"ul\", { staticClass: \"resource-list-details\" }, e._l(e.collection.resources, function(n) {\n return o(\"li\", { key: n.type + \"|\" + n.id, class: e.typeClass(n) }, [o(\"a\", { attrs: { href: n.link } }, [o(\"img\", { attrs: { src: e.iconUrl(n) } }), o(\"span\", { staticClass: \"resource-name\" }, [e._v(e._s(n.name || \"\"))])]), o(\"span\", { staticClass: \"icon-close\", on: { click: function(r) {\n return e.removeResource(e.collection, n);\n } } })]);\n }), 0) : e._e()])], 1);\n}, L = [], U = /* @__PURE__ */ R(\n B,\n E,\n L,\n !1,\n null,\n \"8e58e0a5\",\n null,\n null\n);\nconst j = U.exports, y = 0, g = 1, F = T(\n function(s, e) {\n s !== \"\" && (e(!0), l.search(s).then((o) => {\n this.searchCollections = o;\n }).catch((o) => {\n console.error(\"Failed to search for collections\", o);\n }).finally(() => {\n e(!1);\n }));\n },\n 500,\n {}\n), P = {\n name: \"CollectionList\",\n components: {\n CollectionListItem: j,\n NcAvatar: w,\n NcSelect: O\n },\n props: {\n /**\n * Resource type identifier\n */\n type: {\n type: String,\n default: null\n },\n /**\n * Unique id of the resource\n */\n id: {\n type: String,\n default: null\n },\n /**\n * Name of the resource\n */\n name: {\n type: String,\n default: \"\"\n },\n isActive: {\n type: Boolean,\n default: !0\n }\n },\n data() {\n return {\n selectIsOpen: !1,\n generatingCodes: !1,\n codes: void 0,\n value: null,\n model: {},\n searchCollections: [],\n error: null,\n state: u,\n isSelectOpen: !1\n };\n },\n computed: {\n collections() {\n return this.state.collections.filter((s) => typeof s.resources.find((e) => e && e.id === \"\" + this.id && e.type === this.type) < \"u\");\n },\n placeholder() {\n return this.isSelectOpen ? t(\"core\", \"Type to search for existing projects\") : t(\"core\", \"Add to a project\");\n },\n options() {\n const s = [];\n window.OCP.Collaboration.getTypes().sort().forEach((e) => {\n s.push({\n method: y,\n type: e,\n title: window.OCP.Collaboration.getLabel(e),\n class: window.OCP.Collaboration.getIcon(e),\n action: () => window.OCP.Collaboration.trigger(e)\n });\n });\n for (const e in this.searchCollections)\n this.collections.findIndex((o) => o.id === this.searchCollections[e].id) === -1 && s.push({\n method: g,\n title: this.searchCollections[e].name,\n collectionId: this.searchCollections[e].id\n });\n return s;\n }\n },\n watch: {\n type() {\n this.isActive && l.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n id() {\n this.isActive && l.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n isActive(s) {\n s && l.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n }\n },\n mounted() {\n l.fetchCollectionsByResource({\n resourceType: this.type,\n resourceId: this.id\n });\n },\n methods: {\n select(s, e) {\n s.method === y && s.action().then((o) => {\n l.createCollection({\n baseResourceType: this.type,\n baseResourceId: this.id,\n resourceType: s.type,\n resourceId: o,\n name: this.name\n }).catch((n) => {\n this.setError(t(\"core\", \"Failed to create a project\"), n);\n });\n }).catch((o) => {\n console.error(\"No resource selected\", o);\n }), s.method === g && l.addResourceToCollection({\n collectionId: s.collectionId,\n resourceType: this.type,\n resourceId: this.id\n }).catch((o) => {\n this.setError(t(\"core\", \"Failed to add the item to the project\"), o);\n });\n },\n search(s, e) {\n F.bind(this)(s, e);\n },\n showSelect() {\n this.selectIsOpen = !0, this.$refs.select.$el.focus();\n },\n hideSelect() {\n this.selectIsOpen = !1;\n },\n isVueComponent(s) {\n return s._isVue;\n },\n setError(s, e) {\n console.error(s, e), this.error = s, setTimeout(() => {\n this.error = null;\n }, 5e3);\n }\n }\n};\nvar V = function() {\n var e = this, o = e._self._c;\n return e.collections && e.type && e.id ? o(\"ul\", { staticClass: \"collection-list\", attrs: { id: \"collection-list\" } }, [o(\"li\", { on: { click: e.showSelect } }, [e._m(0), o(\"div\", { attrs: { id: \"collection-select-container\" } }, [o(\"NcSelect\", { ref: \"select\", attrs: { \"aria-label-combobox\": e.t(\"core\", \"Add to a project\"), options: e.options, placeholder: e.placeholder, label: \"title\", limit: 5 }, on: { close: function(n) {\n e.isSelectOpen = !1;\n }, open: function(n) {\n e.isSelectOpen = !0;\n }, \"option:selected\": e.select, search: e.search }, scopedSlots: e._u([{ key: \"selected-option\", fn: function(n) {\n return [o(\"span\", { staticClass: \"option__desc\" }, [o(\"span\", { staticClass: \"option__title\" }, [e._v(e._s(n.title))])])];\n } }, { key: \"option\", fn: function(n) {\n return [o(\"span\", { staticClass: \"option__wrapper\" }, [n.class ? o(\"span\", { staticClass: \"avatar\", class: n.class }) : n.method !== 2 ? o(\"NcAvatar\", { attrs: { \"allow-placeholder\": \"\", \"display-name\": n.title } }) : e._e(), o(\"span\", { staticClass: \"option__title\" }, [e._v(e._s(n.title))])], 1)];\n } }], null, !1, 2397208459), model: { value: e.value, callback: function(n) {\n e.value = n;\n }, expression: \"value\" } }, [o(\"p\", { staticClass: \"hint\" }, [e._v(\" \" + e._s(e.t(\"core\", \"Connect items to a project to make them easier to find\")) + \" \")])])], 1)]), o(\"transition\", { attrs: { name: \"fade\" } }, [e.error ? o(\"li\", { staticClass: \"error\" }, [e._v(\" \" + e._s(e.error) + \" \")]) : e._e()]), e._l(e.collections, function(n) {\n return o(\"CollectionListItem\", { key: n.id, attrs: { collection: n } });\n })], 2) : e._e();\n}, x = [function() {\n var s = this, e = s._self._c;\n return e(\"div\", { staticClass: \"avatar\" }, [e(\"span\", { staticClass: \"icon-projects\" })]);\n}], H = /* @__PURE__ */ R(\n P,\n V,\n x,\n !1,\n null,\n \"75a4370b\",\n null,\n null\n);\nconst Q = H.exports;\nexport {\n Q as CollectionList,\n j as CollectionListItem\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js b/dist/apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js new file mode 100644 index 0000000000000..f19ef949d59b1 --- /dev/null +++ b/dist/apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js @@ -0,0 +1,996 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["apps_files_src_views_TemplatePicker_vue"],{ + +/***/ "./apps/files/src/services/Templates.js": +/*!**********************************************!*\ + !*** ./apps/files/src/services/Templates.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ createFromTemplate: () => (/* binding */ createFromTemplate), +/* harmony export */ getTemplates: () => (/* binding */ getTemplates) +/* harmony export */ }); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/** + * @copyright Copyright (c) 2021 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + + +const getTemplates = async function () { + const response = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_1__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateOcsUrl)('apps/files/api/v1/templates')); + return response.data.ocs.data; +}; + +/** + * Create a new file from a specified template + * + * @param {string} filePath The new file destination path + * @param {string} templatePath The template source path + * @param {string} templateType The template type e.g 'user' + */ +const createFromTemplate = async function (filePath, templatePath, templateType) { + const response = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_1__["default"].post((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateOcsUrl)('apps/files/api/v1/templates/create'), { + filePath, + templatePath, + templateType + }); + return response.data.ocs.data; +}; + +/***/ }), + +/***/ "./apps/files/src/utils/davUtils.js": +/*!******************************************!*\ + !*** ./apps/files/src/utils/davUtils.js ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ getRootPath: () => (/* binding */ getRootPath), +/* harmony export */ getToken: () => (/* binding */ getToken), +/* harmony export */ isPublic: () => (/* binding */ isPublic) +/* harmony export */ }); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); +/** + * @copyright Copyright (c) 2019 John Molakvoæ + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + + +const getRootPath = function () { + if ((0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)()) { + return (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateRemoteUrl)("dav/files/".concat((0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)().uid)); + } else { + return (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateRemoteUrl)('webdav').replace('/remote.php', '/public.php'); + } +}; +const isPublic = function () { + return !(0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_1__.getCurrentUser)(); +}; +const getToken = function () { + return document.getElementById('sharingToken') && document.getElementById('sharingToken').value; +}; + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=ts": +/*!***************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=ts ***! + \***************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); +/* harmony import */ var _nextcloud_files__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/files */ "./node_modules/@nextcloud/files/dist/index.mjs"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! path */ "./node_modules/path/path.js"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(path__WEBPACK_IMPORTED_MODULE_6__); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _services_Templates_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../services/Templates.js */ "./apps/files/src/services/Templates.js"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcEmptyContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcEmptyContent.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcModal_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcModal.js */ "./node_modules/@nextcloud/vue/dist/Components/NcModal.mjs"); +/* harmony import */ var _components_TemplatePreview_vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../components/TemplatePreview.vue */ "./apps/files/src/components/TemplatePreview.vue"); +/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../logger.js */ "./apps/files/src/logger.js"); + + + + + + + + + + + + + +const border = 2; +const margin = 8; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ + name: 'TemplatePicker', + components: { + NcEmptyContent: _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_8__["default"], + NcModal: _nextcloud_vue_dist_Components_NcModal_js__WEBPACK_IMPORTED_MODULE_9__["default"], + TemplatePreview: _components_TemplatePreview_vue__WEBPACK_IMPORTED_MODULE_10__["default"] + }, + props: { + /** + * The parent folder where to create the node + */ + parent: { + type: Object, + default: () => null + } + }, + data() { + return { + // Check empty template by default + checked: -1, + loading: false, + name: null, + opened: false, + provider: null + }; + }, + computed: { + extension() { + var _this$name; + return (0,path__WEBPACK_IMPORTED_MODULE_6__.extname)((_this$name = this.name) !== null && _this$name !== void 0 ? _this$name : ''); + }, + nameWithoutExt() { + // Strip extension from name if defined + return !this.extension ? this.name : this.name.slice(0, 0 - this.extension.length); + }, + emptyTemplate() { + var _this$provider, _this$provider2; + return { + basename: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_4__.translate)('files', 'Blank'), + fileid: -1, + filename: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_4__.translate)('files', 'Blank'), + hasPreview: false, + mime: ((_this$provider = this.provider) === null || _this$provider === void 0 ? void 0 : _this$provider.mimetypes[0]) || ((_this$provider2 = this.provider) === null || _this$provider2 === void 0 ? void 0 : _this$provider2.mimetypes) + }; + }, + selectedTemplate() { + if (!this.provider) { + return null; + } + return this.provider.templates.find(template => template.fileid === this.checked); + }, + /** + * Style css vars bind + * + * @return {object} + */ + style() { + if (!this.provider) { + return {}; + } + // Fallback to 16:9 landscape ratio + const ratio = this.provider.ratio ? this.provider.ratio : 1.77; + // Landscape templates should be wider than tall ones + // We fit 3 templates per row at max for landscape and 4 for portrait + const width = ratio > 1 ? margin * 30 : margin * 20; + return { + '--margin': margin + 'px', + '--width': width + 'px', + '--border': border + 'px', + '--fullwidth': width + 2 * margin + 2 * border + 'px', + '--height': this.provider.ratio ? Math.round(width / this.provider.ratio) + 'px' : null + }; + } + }, + methods: { + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_4__.translate, + /** + * Open the picker + * + * @param {string} name the file name to create + * @param {object} provider the template provider picked + */ + async open(name, provider) { + this.checked = this.emptyTemplate.fileid; + this.name = name; + this.provider = provider; + const templates = await (0,_services_Templates_js__WEBPACK_IMPORTED_MODULE_7__.getTemplates)(); + const fetchedProvider = templates.find(fetchedProvider => fetchedProvider.app === provider.app && fetchedProvider.label === provider.label); + if (fetchedProvider === null) { + throw new Error('Failed to match provider in results'); + } + this.provider = fetchedProvider; + // If there is no templates available, just create an empty file + if (fetchedProvider.templates.length === 0) { + this.onSubmit(); + return; + } + // Else, open the picker + this.opened = true; + }, + /** + * Close the picker and reset variables + */ + close() { + this.checked = this.emptyTemplate.fileid; + this.loading = false; + this.name = null; + this.opened = false; + this.provider = null; + }, + /** + * Manages the radio template picker change + * + * @param fileid the selected template file id + */ + onCheck(fileid) { + this.checked = fileid; + }, + async onSubmit() { + this.loading = true; + const currentDirectory = new URL(window.location.href).searchParams.get('dir') || '/'; + // If the file doesn't have an extension, add the default one + if (this.nameWithoutExt === this.name) { + var _this$provider3, _this$provider$extens, _this$provider4; + _logger_js__WEBPACK_IMPORTED_MODULE_11__["default"].warn('Fixed invalid filename', { + name: this.name, + extension: (_this$provider3 = this.provider) === null || _this$provider3 === void 0 ? void 0 : _this$provider3.extension + }); + this.name = "".concat(this.name).concat((_this$provider$extens = (_this$provider4 = this.provider) === null || _this$provider4 === void 0 ? void 0 : _this$provider4.extension) !== null && _this$provider$extens !== void 0 ? _this$provider$extens : ''); + } + try { + var _this$selectedTemplat, _this$selectedTemplat2, _this$selectedTemplat3, _this$selectedTemplat4, _getCurrentUser, _this$parent, _this$parent2, _this$parent3; + const fileInfo = await (0,_services_Templates_js__WEBPACK_IMPORTED_MODULE_7__.createFromTemplate)((0,path__WEBPACK_IMPORTED_MODULE_6__.normalize)("".concat(currentDirectory, "/").concat(this.name)), (_this$selectedTemplat = (_this$selectedTemplat2 = this.selectedTemplate) === null || _this$selectedTemplat2 === void 0 ? void 0 : _this$selectedTemplat2.filename) !== null && _this$selectedTemplat !== void 0 ? _this$selectedTemplat : '', (_this$selectedTemplat3 = (_this$selectedTemplat4 = this.selectedTemplate) === null || _this$selectedTemplat4 === void 0 ? void 0 : _this$selectedTemplat4.templateType) !== null && _this$selectedTemplat3 !== void 0 ? _this$selectedTemplat3 : ''); + _logger_js__WEBPACK_IMPORTED_MODULE_11__["default"].debug('Created new file', fileInfo); + const owner = ((_getCurrentUser = (0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__.getCurrentUser)()) === null || _getCurrentUser === void 0 ? void 0 : _getCurrentUser.uid) || null; + const node = new _nextcloud_files__WEBPACK_IMPORTED_MODULE_3__.File({ + id: fileInfo.fileid, + source: (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateRemoteUrl)((0,path__WEBPACK_IMPORTED_MODULE_6__.join)("dav/files/".concat(owner), fileInfo.filename)), + root: "/files/".concat(owner), + mime: fileInfo.mime, + mtime: new Date(fileInfo.lastmod * 1000), + owner, + size: fileInfo.size, + permissions: fileInfo.permissions, + attributes: { + // Inherit some attributes from parent folder like the mount type and real owner + 'mount-type': (_this$parent = this.parent) === null || _this$parent === void 0 || (_this$parent = _this$parent.attributes) === null || _this$parent === void 0 ? void 0 : _this$parent['mount-type'], + 'owner-id': (_this$parent2 = this.parent) === null || _this$parent2 === void 0 || (_this$parent2 = _this$parent2.attributes) === null || _this$parent2 === void 0 ? void 0 : _this$parent2['owner-id'], + 'owner-display-name': (_this$parent3 = this.parent) === null || _this$parent3 === void 0 || (_this$parent3 = _this$parent3.attributes) === null || _this$parent3 === void 0 ? void 0 : _this$parent3['owner-display-name'], + ...fileInfo, + 'has-preview': fileInfo.hasPreview + } + }); + // Update files list + (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_2__.emit)('files:node:created', node); + // Open the new file + window.OCP.Files.Router.goToRoute(null, + // use default route + { + view: 'files', + fileid: node.fileid + }, { + dir: node.dirname, + openfile: 'true' + }); + // Close the picker + this.close(); + } catch (error) { + _logger_js__WEBPACK_IMPORTED_MODULE_11__["default"].error('Error while creating the new file from template', { + error + }); + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_1__.showError)((0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_4__.translate)('files', 'Unable to create new file from template')); + } finally { + this.loading = false; + } + } + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js": +/*!***********************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js ***! + \***********************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_paths__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/paths */ "./node_modules/@nextcloud/paths/dist/index.js"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _utils_davUtils_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils/davUtils.js */ "./apps/files/src/utils/davUtils.js"); + + + + +// preview width generation +const previewWidth = 256; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'TemplatePreview', + inheritAttrs: false, + props: { + basename: { + type: String, + required: true + }, + checked: { + type: Boolean, + default: false + }, + fileid: { + type: [String, Number], + required: true + }, + filename: { + type: String, + required: true + }, + previewUrl: { + type: String, + default: null + }, + hasPreview: { + type: Boolean, + default: true + }, + mime: { + type: String, + required: true + }, + ratio: { + type: Number, + default: null + } + }, + data() { + return { + failedPreview: false + }; + }, + computed: { + /** + * Strip away extension from name + * + * @return {string} + */ + nameWithoutExt() { + return this.basename.indexOf('.') > -1 ? this.basename.split('.').slice(0, -1).join('.') : this.basename; + }, + id() { + return "template-picker-".concat(this.fileid); + }, + realPreviewUrl() { + // If original preview failed, fallback to mime icon + if (this.failedPreview && this.mimeIcon) { + return this.mimeIcon; + } + if (this.previewUrl) { + return this.previewUrl; + } + // TODO: find a nicer standard way of doing this? + if ((0,_utils_davUtils_js__WEBPACK_IMPORTED_MODULE_2__.isPublic)()) { + return (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateUrl)("/apps/files_sharing/publicpreview/".concat((0,_utils_davUtils_js__WEBPACK_IMPORTED_MODULE_2__.getToken)(), "?fileId=").concat(this.fileid, "&file=").concat((0,_nextcloud_paths__WEBPACK_IMPORTED_MODULE_0__.encodePath)(this.filename), "&x=").concat(previewWidth, "&y=").concat(previewWidth, "&a=1")); + } + return (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateUrl)("/core/preview?fileId=".concat(this.fileid, "&x=").concat(previewWidth, "&y=").concat(previewWidth, "&a=1")); + }, + mimeIcon() { + return OC.MimeType.getIconUrl(this.mime); + } + }, + methods: { + onCheck() { + this.$emit('check', this.fileid); + }, + onFailure() { + this.failedPreview = true; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true": +/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true ***! + \**********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("li", { + staticClass: "template-picker__item" + }, [_c("input", { + staticClass: "radio", + attrs: { + id: _vm.id, + type: "radio", + name: "template-picker" + }, + domProps: { + checked: _vm.checked + }, + on: { + change: _vm.onCheck + } + }), _vm._v(" "), _c("label", { + staticClass: "template-picker__label", + attrs: { + for: _vm.id + } + }, [_c("div", { + staticClass: "template-picker__preview", + class: _vm.failedPreview ? "template-picker__preview--failed" : "" + }, [_c("img", { + staticClass: "template-picker__image", + attrs: { + src: _vm.realPreviewUrl, + alt: "", + draggable: "false" + }, + on: { + error: _vm.onFailure + } + })]), _vm._v(" "), _c("span", { + staticClass: "template-picker__title" + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.nameWithoutExt) + "\n\t\t")])])]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true": +/*!****************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true ***! + \****************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _vm.opened ? _c("NcModal", { + staticClass: "templates-picker", + attrs: { + "clear-view-delay": -1, + size: "large" + }, + on: { + close: _vm.close + } + }, [_c("form", { + staticClass: "templates-picker__form", + style: _vm.style, + on: { + submit: function ($event) { + $event.preventDefault(); + $event.stopPropagation(); + return _vm.onSubmit.apply(null, arguments); + } + } + }, [_c("h2", [_vm._v(_vm._s(_vm.t("files", "Pick a template for {name}", { + name: _vm.nameWithoutExt + })))]), _vm._v(" "), _c("ul", { + staticClass: "templates-picker__list" + }, [_c("TemplatePreview", _vm._b({ + attrs: { + checked: _vm.checked === _vm.emptyTemplate.fileid + }, + on: { + check: _vm.onCheck + } + }, "TemplatePreview", _vm.emptyTemplate, false)), _vm._v(" "), _vm._l(_vm.provider.templates, function (template) { + return _c("TemplatePreview", _vm._b({ + key: template.fileid, + attrs: { + checked: _vm.checked === template.fileid, + ratio: _vm.provider.ratio + }, + on: { + check: _vm.onCheck + } + }, "TemplatePreview", template, false)); + })], 2), _vm._v(" "), _c("div", { + staticClass: "templates-picker__buttons" + }, [_c("input", { + staticClass: "primary", + attrs: { + type: "submit", + "aria-label": _vm.t("files", "Create a new file with the selected template") + }, + domProps: { + value: _vm.t("files", "Create") + } + })])]), _vm._v(" "), _vm.loading ? _c("NcEmptyContent", { + staticClass: "templates-picker__loading", + attrs: { + icon: "icon-loading" + } + }, [_vm._v("\n\t\t" + _vm._s(_vm.t("files", "Creating file")) + "\n\t")]) : _vm._e()], 1) : _vm._e(); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true": +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.template-picker__item[data-v-14e703d7] { + display: flex; +} +.template-picker__label[data-v-14e703d7] { + display: flex; + align-items: center; + flex: 1 1; + flex-direction: column; +} +.template-picker__label[data-v-14e703d7], .template-picker__label *[data-v-14e703d7] { + cursor: pointer; + user-select: none; +} +.template-picker__label[data-v-14e703d7]::before { + display: none !important; +} +.template-picker__preview[data-v-14e703d7] { + display: block; + overflow: hidden; + flex: 1 1; + width: var(--width); + min-height: var(--height); + max-height: var(--height); + padding: 0; + border: var(--border) solid var(--color-border); + border-radius: var(--border-radius-large); +} +input:checked + label > .template-picker__preview[data-v-14e703d7] { + border-color: var(--color-primary-element); +} +.template-picker__preview--failed[data-v-14e703d7] { + display: flex; +} +.template-picker__image[data-v-14e703d7] { + max-width: 100%; + background-color: var(--color-main-background); + object-fit: cover; +} +.template-picker__preview--failed .template-picker__image[data-v-14e703d7] { + width: calc(var(--margin) * 8); + margin: auto; + background-color: transparent !important; + object-fit: initial; +} +.template-picker__title[data-v-14e703d7] { + overflow: hidden; + max-width: calc(var(--width) + 4px); + padding: var(--margin); + white-space: nowrap; + text-overflow: ellipsis; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.templates-picker__form[data-v-70b9a7ea] { + padding: calc(var(--margin) * 2); + padding-bottom: 0; +} +.templates-picker__form h2[data-v-70b9a7ea] { + text-align: center; + font-weight: bold; + margin: var(--margin) 0 calc(var(--margin) * 2); +} +.templates-picker__list[data-v-70b9a7ea] { + display: grid; + grid-gap: calc(var(--margin) * 2); + grid-auto-columns: 1fr; + max-width: calc(var(--fullwidth) * 6); + grid-template-columns: repeat(auto-fit, var(--fullwidth)); + grid-auto-rows: 1fr; + justify-content: center; +} +.templates-picker__buttons[data-v-70b9a7ea] { + display: flex; + justify-content: end; + padding: calc(var(--margin) * 2) var(--margin); + position: sticky; + bottom: 0; + background-image: linear-gradient(0, var(--gradient-main-background)); +} +.templates-picker__buttons button[data-v-70b9a7ea], .templates-picker__buttons input[type=submit][data-v-70b9a7ea] { + height: 44px; +} +.templates-picker[data-v-70b9a7ea] .modal-container { + position: relative; +} +.templates-picker__loading[data-v-70b9a7ea] { + position: absolute; + top: 0; + left: 0; + justify-content: center; + width: 100%; + height: 100%; + margin: 0; + background-color: var(--color-main-background-translucent); +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_style_index_0_id_14e703d7_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_style_index_0_id_14e703d7_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_style_index_0_id_14e703d7_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_style_index_0_id_14e703d7_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_style_index_0_id_14e703d7_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_style_index_0_id_70b9a7ea_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_style_index_0_id_70b9a7ea_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_style_index_0_id_70b9a7ea_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_style_index_0_id_70b9a7ea_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_style_index_0_id_70b9a7ea_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./apps/files/src/components/TemplatePreview.vue": +/*!*******************************************************!*\ + !*** ./apps/files/src/components/TemplatePreview.vue ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _TemplatePreview_vue_vue_type_template_id_14e703d7_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true */ "./apps/files/src/components/TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true"); +/* harmony import */ var _TemplatePreview_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TemplatePreview.vue?vue&type=script&lang=js */ "./apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js"); +/* harmony import */ var _TemplatePreview_vue_vue_type_style_index_0_id_14e703d7_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true */ "./apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _TemplatePreview_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _TemplatePreview_vue_vue_type_template_id_14e703d7_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _TemplatePreview_vue_vue_type_template_id_14e703d7_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "14e703d7", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files/src/components/TemplatePreview.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files/src/views/TemplatePicker.vue": +/*!*************************************************!*\ + !*** ./apps/files/src/views/TemplatePicker.vue ***! + \*************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _TemplatePicker_vue_vue_type_template_id_70b9a7ea_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true */ "./apps/files/src/views/TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true"); +/* harmony import */ var _TemplatePicker_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./TemplatePicker.vue?vue&type=script&lang=ts */ "./apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=ts"); +/* harmony import */ var _TemplatePicker_vue_vue_type_style_index_0_id_70b9a7ea_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true */ "./apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _TemplatePicker_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _TemplatePicker_vue_vue_type_template_id_70b9a7ea_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _TemplatePicker_vue_vue_type_template_id_70b9a7ea_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "70b9a7ea", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/files/src/views/TemplatePicker.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=ts": +/*!*************************************************************************!*\ + !*** ./apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=ts ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js": +/*!*******************************************************************************!*\ + !*** ./apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/files/src/components/TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true": +/*!*************************************************************************************************!*\ + !*** ./apps/files/src/components/TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_template_id_14e703d7_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_template_id_14e703d7_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_template_id_14e703d7_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true"); + + +/***/ }), + +/***/ "./apps/files/src/views/TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true": +/*!*******************************************************************************************!*\ + !*** ./apps/files/src/views/TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_template_id_70b9a7ea_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_template_id_70b9a7ea_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_template_id_70b9a7ea_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true"); + + +/***/ }), + +/***/ "./apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true": +/*!****************************************************************************************************************!*\ + !*** ./apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true ***! + \****************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePreview_vue_vue_type_style_index_0_id_14e703d7_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true": +/*!**********************************************************************************************************!*\ + !*** ./apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_TemplatePicker_vue_vue_type_style_index_0_id_70b9a7ea_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true"); + + +/***/ }) + +}]); +//# sourceMappingURL=apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js.map?v=99cb16edd0882874d784 \ No newline at end of file diff --git a/dist/apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js.map b/dist/apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js.map new file mode 100644 index 0000000000000..f93491cecec89 --- /dev/null +++ b/dist/apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps_files_src_views_TemplatePicker_vue-apps_files_src_views_TemplatePicker_vue.js?v=99cb16edd0882874d784","mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;AChMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA;;;;;;;;;;;;;;;ACAA","sources":["webpack:///nextcloud/apps/files/src/services/Templates.js","webpack:///nextcloud/apps/files/src/utils/davUtils.js","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?a1a4","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?3e8a","webpack:///nextcloud/apps/files/src/components/TemplatePreview.vue","webpack:///nextcloud/apps/files/src/views/TemplatePicker.vue","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?a9c0","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?4cbd","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?536a","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?315b","webpack://nextcloud/./apps/files/src/components/TemplatePreview.vue?a027","webpack://nextcloud/./apps/files/src/views/TemplatePicker.vue?6367"],"sourcesContent":["/**\n * @copyright Copyright (c) 2021 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { generateOcsUrl } from '@nextcloud/router';\nimport axios from '@nextcloud/axios';\nexport const getTemplates = async function () {\n const response = await axios.get(generateOcsUrl('apps/files/api/v1/templates'));\n return response.data.ocs.data;\n};\n\n/**\n * Create a new file from a specified template\n *\n * @param {string} filePath The new file destination path\n * @param {string} templatePath The template source path\n * @param {string} templateType The template type e.g 'user'\n */\nexport const createFromTemplate = async function (filePath, templatePath, templateType) {\n const response = await axios.post(generateOcsUrl('apps/files/api/v1/templates/create'), {\n filePath,\n templatePath,\n templateType\n });\n return response.data.ocs.data;\n};","/**\n * @copyright Copyright (c) 2019 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { getCurrentUser } from '@nextcloud/auth';\nexport const getRootPath = function () {\n if (getCurrentUser()) {\n return generateRemoteUrl(\"dav/files/\".concat(getCurrentUser().uid));\n } else {\n return generateRemoteUrl('webdav').replace('/remote.php', '/public.php');\n }\n};\nexport const isPublic = function () {\n return !getCurrentUser();\n};\nexport const getToken = function () {\n return document.getElementById('sharingToken') && document.getElementById('sharingToken').value;\n};","import { getCurrentUser } from '@nextcloud/auth';\nimport { showError } from '@nextcloud/dialogs';\nimport { emit } from '@nextcloud/event-bus';\nimport { File } from '@nextcloud/files';\nimport { translate as t } from '@nextcloud/l10n';\nimport { generateRemoteUrl } from '@nextcloud/router';\nimport { normalize, extname, join } from 'path';\nimport { defineComponent } from 'vue';\nimport { createFromTemplate, getTemplates } from '../services/Templates.js';\nimport NcEmptyContent from '@nextcloud/vue/dist/Components/NcEmptyContent.js';\nimport NcModal from '@nextcloud/vue/dist/Components/NcModal.js';\nimport TemplatePreview from '../components/TemplatePreview.vue';\nimport logger from '../logger.js';\nconst border = 2;\nconst margin = 8;\nexport default defineComponent({\n name: 'TemplatePicker',\n components: {\n NcEmptyContent,\n NcModal,\n TemplatePreview\n },\n props: {\n /**\n * The parent folder where to create the node\n */\n parent: {\n type: Object,\n default: () => null\n }\n },\n data() {\n return {\n // Check empty template by default\n checked: -1,\n loading: false,\n name: null,\n opened: false,\n provider: null\n };\n },\n computed: {\n extension() {\n var _this$name;\n return extname((_this$name = this.name) !== null && _this$name !== void 0 ? _this$name : '');\n },\n nameWithoutExt() {\n // Strip extension from name if defined\n return !this.extension ? this.name : this.name.slice(0, 0 - this.extension.length);\n },\n emptyTemplate() {\n var _this$provider, _this$provider2;\n return {\n basename: t('files', 'Blank'),\n fileid: -1,\n filename: t('files', 'Blank'),\n hasPreview: false,\n mime: ((_this$provider = this.provider) === null || _this$provider === void 0 ? void 0 : _this$provider.mimetypes[0]) || ((_this$provider2 = this.provider) === null || _this$provider2 === void 0 ? void 0 : _this$provider2.mimetypes)\n };\n },\n selectedTemplate() {\n if (!this.provider) {\n return null;\n }\n return this.provider.templates.find(template => template.fileid === this.checked);\n },\n /**\n * Style css vars bind\n *\n * @return {object}\n */\n style() {\n if (!this.provider) {\n return {};\n }\n // Fallback to 16:9 landscape ratio\n const ratio = this.provider.ratio ? this.provider.ratio : 1.77;\n // Landscape templates should be wider than tall ones\n // We fit 3 templates per row at max for landscape and 4 for portrait\n const width = ratio > 1 ? margin * 30 : margin * 20;\n return {\n '--margin': margin + 'px',\n '--width': width + 'px',\n '--border': border + 'px',\n '--fullwidth': width + 2 * margin + 2 * border + 'px',\n '--height': this.provider.ratio ? Math.round(width / this.provider.ratio) + 'px' : null\n };\n }\n },\n methods: {\n t,\n /**\n * Open the picker\n *\n * @param {string} name the file name to create\n * @param {object} provider the template provider picked\n */\n async open(name, provider) {\n this.checked = this.emptyTemplate.fileid;\n this.name = name;\n this.provider = provider;\n const templates = await getTemplates();\n const fetchedProvider = templates.find(fetchedProvider => fetchedProvider.app === provider.app && fetchedProvider.label === provider.label);\n if (fetchedProvider === null) {\n throw new Error('Failed to match provider in results');\n }\n this.provider = fetchedProvider;\n // If there is no templates available, just create an empty file\n if (fetchedProvider.templates.length === 0) {\n this.onSubmit();\n return;\n }\n // Else, open the picker\n this.opened = true;\n },\n /**\n * Close the picker and reset variables\n */\n close() {\n this.checked = this.emptyTemplate.fileid;\n this.loading = false;\n this.name = null;\n this.opened = false;\n this.provider = null;\n },\n /**\n * Manages the radio template picker change\n *\n * @param fileid the selected template file id\n */\n onCheck(fileid) {\n this.checked = fileid;\n },\n async onSubmit() {\n this.loading = true;\n const currentDirectory = new URL(window.location.href).searchParams.get('dir') || '/';\n // If the file doesn't have an extension, add the default one\n if (this.nameWithoutExt === this.name) {\n var _this$provider3, _this$provider$extens, _this$provider4;\n logger.warn('Fixed invalid filename', {\n name: this.name,\n extension: (_this$provider3 = this.provider) === null || _this$provider3 === void 0 ? void 0 : _this$provider3.extension\n });\n this.name = \"\".concat(this.name).concat((_this$provider$extens = (_this$provider4 = this.provider) === null || _this$provider4 === void 0 ? void 0 : _this$provider4.extension) !== null && _this$provider$extens !== void 0 ? _this$provider$extens : '');\n }\n try {\n var _this$selectedTemplat, _this$selectedTemplat2, _this$selectedTemplat3, _this$selectedTemplat4, _getCurrentUser, _this$parent, _this$parent2, _this$parent3;\n const fileInfo = await createFromTemplate(normalize(\"\".concat(currentDirectory, \"/\").concat(this.name)), (_this$selectedTemplat = (_this$selectedTemplat2 = this.selectedTemplate) === null || _this$selectedTemplat2 === void 0 ? void 0 : _this$selectedTemplat2.filename) !== null && _this$selectedTemplat !== void 0 ? _this$selectedTemplat : '', (_this$selectedTemplat3 = (_this$selectedTemplat4 = this.selectedTemplate) === null || _this$selectedTemplat4 === void 0 ? void 0 : _this$selectedTemplat4.templateType) !== null && _this$selectedTemplat3 !== void 0 ? _this$selectedTemplat3 : '');\n logger.debug('Created new file', fileInfo);\n const owner = ((_getCurrentUser = getCurrentUser()) === null || _getCurrentUser === void 0 ? void 0 : _getCurrentUser.uid) || null;\n const node = new File({\n id: fileInfo.fileid,\n source: generateRemoteUrl(join(\"dav/files/\".concat(owner), fileInfo.filename)),\n root: \"/files/\".concat(owner),\n mime: fileInfo.mime,\n mtime: new Date(fileInfo.lastmod * 1000),\n owner,\n size: fileInfo.size,\n permissions: fileInfo.permissions,\n attributes: {\n // Inherit some attributes from parent folder like the mount type and real owner\n 'mount-type': (_this$parent = this.parent) === null || _this$parent === void 0 || (_this$parent = _this$parent.attributes) === null || _this$parent === void 0 ? void 0 : _this$parent['mount-type'],\n 'owner-id': (_this$parent2 = this.parent) === null || _this$parent2 === void 0 || (_this$parent2 = _this$parent2.attributes) === null || _this$parent2 === void 0 ? void 0 : _this$parent2['owner-id'],\n 'owner-display-name': (_this$parent3 = this.parent) === null || _this$parent3 === void 0 || (_this$parent3 = _this$parent3.attributes) === null || _this$parent3 === void 0 ? void 0 : _this$parent3['owner-display-name'],\n ...fileInfo,\n 'has-preview': fileInfo.hasPreview\n }\n });\n // Update files list\n emit('files:node:created', node);\n // Open the new file\n window.OCP.Files.Router.goToRoute(null,\n // use default route\n {\n view: 'files',\n fileid: node.fileid\n }, {\n dir: node.dirname,\n openfile: 'true'\n });\n // Close the picker\n this.close();\n } catch (error) {\n logger.error('Error while creating the new file from template', {\n error\n });\n showError(t('files', 'Unable to create new file from template'));\n } finally {\n this.loading = false;\n }\n }\n }\n});","import { encodePath } from '@nextcloud/paths';\nimport { generateUrl } from '@nextcloud/router';\nimport { getToken, isPublic } from '../utils/davUtils.js';\n\n// preview width generation\nconst previewWidth = 256;\nexport default {\n name: 'TemplatePreview',\n inheritAttrs: false,\n props: {\n basename: {\n type: String,\n required: true\n },\n checked: {\n type: Boolean,\n default: false\n },\n fileid: {\n type: [String, Number],\n required: true\n },\n filename: {\n type: String,\n required: true\n },\n previewUrl: {\n type: String,\n default: null\n },\n hasPreview: {\n type: Boolean,\n default: true\n },\n mime: {\n type: String,\n required: true\n },\n ratio: {\n type: Number,\n default: null\n }\n },\n data() {\n return {\n failedPreview: false\n };\n },\n computed: {\n /**\n * Strip away extension from name\n *\n * @return {string}\n */\n nameWithoutExt() {\n return this.basename.indexOf('.') > -1 ? this.basename.split('.').slice(0, -1).join('.') : this.basename;\n },\n id() {\n return \"template-picker-\".concat(this.fileid);\n },\n realPreviewUrl() {\n // If original preview failed, fallback to mime icon\n if (this.failedPreview && this.mimeIcon) {\n return this.mimeIcon;\n }\n if (this.previewUrl) {\n return this.previewUrl;\n }\n // TODO: find a nicer standard way of doing this?\n if (isPublic()) {\n return generateUrl(\"/apps/files_sharing/publicpreview/\".concat(getToken(), \"?fileId=\").concat(this.fileid, \"&file=\").concat(encodePath(this.filename), \"&x=\").concat(previewWidth, \"&y=\").concat(previewWidth, \"&a=1\"));\n }\n return generateUrl(\"/core/preview?fileId=\".concat(this.fileid, \"&x=\").concat(previewWidth, \"&y=\").concat(previewWidth, \"&a=1\"));\n },\n mimeIcon() {\n return OC.MimeType.getIconUrl(this.mime);\n }\n },\n methods: {\n onCheck() {\n this.$emit('check', this.fileid);\n },\n onFailure() {\n this.failedPreview = true;\n }\n }\n};","var render = function render() {\n var _vm = this,\n _c = _vm._self._c;\n return _c(\"li\", {\n staticClass: \"template-picker__item\"\n }, [_c(\"input\", {\n staticClass: \"radio\",\n attrs: {\n id: _vm.id,\n type: \"radio\",\n name: \"template-picker\"\n },\n domProps: {\n checked: _vm.checked\n },\n on: {\n change: _vm.onCheck\n }\n }), _vm._v(\" \"), _c(\"label\", {\n staticClass: \"template-picker__label\",\n attrs: {\n for: _vm.id\n }\n }, [_c(\"div\", {\n staticClass: \"template-picker__preview\",\n class: _vm.failedPreview ? \"template-picker__preview--failed\" : \"\"\n }, [_c(\"img\", {\n staticClass: \"template-picker__image\",\n attrs: {\n src: _vm.realPreviewUrl,\n alt: \"\",\n draggable: \"false\"\n },\n on: {\n error: _vm.onFailure\n }\n })]), _vm._v(\" \"), _c(\"span\", {\n staticClass: \"template-picker__title\"\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.nameWithoutExt) + \"\\n\\t\\t\")])])]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _vm.opened ? _c(\"NcModal\", {\n staticClass: \"templates-picker\",\n attrs: {\n \"clear-view-delay\": -1,\n size: \"large\"\n },\n on: {\n close: _vm.close\n }\n }, [_c(\"form\", {\n staticClass: \"templates-picker__form\",\n style: _vm.style,\n on: {\n submit: function ($event) {\n $event.preventDefault();\n $event.stopPropagation();\n return _vm.onSubmit.apply(null, arguments);\n }\n }\n }, [_c(\"h2\", [_vm._v(_vm._s(_vm.t(\"files\", \"Pick a template for {name}\", {\n name: _vm.nameWithoutExt\n })))]), _vm._v(\" \"), _c(\"ul\", {\n staticClass: \"templates-picker__list\"\n }, [_c(\"TemplatePreview\", _vm._b({\n attrs: {\n checked: _vm.checked === _vm.emptyTemplate.fileid\n },\n on: {\n check: _vm.onCheck\n }\n }, \"TemplatePreview\", _vm.emptyTemplate, false)), _vm._v(\" \"), _vm._l(_vm.provider.templates, function (template) {\n return _c(\"TemplatePreview\", _vm._b({\n key: template.fileid,\n attrs: {\n checked: _vm.checked === template.fileid,\n ratio: _vm.provider.ratio\n },\n on: {\n check: _vm.onCheck\n }\n }, \"TemplatePreview\", template, false));\n })], 2), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"templates-picker__buttons\"\n }, [_c(\"input\", {\n staticClass: \"primary\",\n attrs: {\n type: \"submit\",\n \"aria-label\": _vm.t(\"files\", \"Create a new file with the selected template\")\n },\n domProps: {\n value: _vm.t(\"files\", \"Create\")\n }\n })])]), _vm._v(\" \"), _vm.loading ? _c(\"NcEmptyContent\", {\n staticClass: \"templates-picker__loading\",\n attrs: {\n icon: \"icon-loading\"\n }\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.t(\"files\", \"Creating file\")) + \"\\n\\t\")]) : _vm._e()], 1) : _vm._e();\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.template-picker__item[data-v-14e703d7] {\n display: flex;\n}\n.template-picker__label[data-v-14e703d7] {\n display: flex;\n align-items: center;\n flex: 1 1;\n flex-direction: column;\n}\n.template-picker__label[data-v-14e703d7], .template-picker__label *[data-v-14e703d7] {\n cursor: pointer;\n user-select: none;\n}\n.template-picker__label[data-v-14e703d7]::before {\n display: none !important;\n}\n.template-picker__preview[data-v-14e703d7] {\n display: block;\n overflow: hidden;\n flex: 1 1;\n width: var(--width);\n min-height: var(--height);\n max-height: var(--height);\n padding: 0;\n border: var(--border) solid var(--color-border);\n border-radius: var(--border-radius-large);\n}\ninput:checked + label > .template-picker__preview[data-v-14e703d7] {\n border-color: var(--color-primary-element);\n}\n.template-picker__preview--failed[data-v-14e703d7] {\n display: flex;\n}\n.template-picker__image[data-v-14e703d7] {\n max-width: 100%;\n background-color: var(--color-main-background);\n object-fit: cover;\n}\n.template-picker__preview--failed .template-picker__image[data-v-14e703d7] {\n width: calc(var(--margin) * 8);\n margin: auto;\n background-color: transparent !important;\n object-fit: initial;\n}\n.template-picker__title[data-v-14e703d7] {\n overflow: hidden;\n max-width: calc(var(--width) + 4px);\n padding: var(--margin);\n white-space: nowrap;\n text-overflow: ellipsis;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.templates-picker__form[data-v-70b9a7ea] {\n padding: calc(var(--margin) * 2);\n padding-bottom: 0;\n}\n.templates-picker__form h2[data-v-70b9a7ea] {\n text-align: center;\n font-weight: bold;\n margin: var(--margin) 0 calc(var(--margin) * 2);\n}\n.templates-picker__list[data-v-70b9a7ea] {\n display: grid;\n grid-gap: calc(var(--margin) * 2);\n grid-auto-columns: 1fr;\n max-width: calc(var(--fullwidth) * 6);\n grid-template-columns: repeat(auto-fit, var(--fullwidth));\n grid-auto-rows: 1fr;\n justify-content: center;\n}\n.templates-picker__buttons[data-v-70b9a7ea] {\n display: flex;\n justify-content: end;\n padding: calc(var(--margin) * 2) var(--margin);\n position: sticky;\n bottom: 0;\n background-image: linear-gradient(0, var(--gradient-main-background));\n}\n.templates-picker__buttons button[data-v-70b9a7ea], .templates-picker__buttons input[type=submit][data-v-70b9a7ea] {\n height: 44px;\n}\n.templates-picker[data-v-70b9a7ea] .modal-container {\n position: relative;\n}\n.templates-picker__loading[data-v-70b9a7ea] {\n position: absolute;\n top: 0;\n left: 0;\n justify-content: center;\n width: 100%;\n height: 100%;\n margin: 0;\n background-color: var(--color-main-background-translucent);\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true\"\nimport script from \"./TemplatePreview.vue?vue&type=script&lang=js\"\nexport * from \"./TemplatePreview.vue?vue&type=script&lang=js\"\nimport style0 from \"./TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"14e703d7\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('14e703d7')) {\n api.createRecord('14e703d7', component.options)\n } else {\n api.reload('14e703d7', component.options)\n }\n module.hot.accept(\"./TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true\", function () {\n api.rerender('14e703d7', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files/src/components/TemplatePreview.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true\"\nimport script from \"./TemplatePicker.vue?vue&type=script&lang=ts\"\nexport * from \"./TemplatePicker.vue?vue&type=script&lang=ts\"\nimport style0 from \"./TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70b9a7ea\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('70b9a7ea')) {\n api.createRecord('70b9a7ea', component.options)\n } else {\n api.reload('70b9a7ea', component.options)\n }\n module.hot.accept(\"./TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true\", function () {\n api.rerender('70b9a7ea', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/files/src/views/TemplatePicker.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=script&lang=ts\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=script&lang=js\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=template&id=14e703d7&scoped=true\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=template&id=70b9a7ea&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePreview.vue?vue&type=style&index=0&id=14e703d7&lang=scss&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TemplatePicker.vue?vue&type=style&index=0&id=70b9a7ea&lang=scss&scoped=true\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js b/dist/apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js new file mode 100644 index 0000000000000..cd8f4a31d34cb --- /dev/null +++ b/dist/apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js @@ -0,0 +1,529 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["apps_settings_src_components_AppStoreDiscover_CarouselType_vue"],{ + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=script&lang=ts": +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=script&lang=ts ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _common_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common.ts */ "./apps/settings/src/components/AppStoreDiscover/common.ts"); +/* harmony import */ var _composables_useGetLocalizedValue_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../composables/useGetLocalizedValue.ts */ "./apps/settings/src/composables/useGetLocalizedValue.ts"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _PostType_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./PostType.vue */ "./apps/settings/src/components/AppStoreDiscover/PostType.vue"); + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_6__.defineComponent)({ + name: 'CarouselType', + components: { + NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_3__["default"], + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_4__["default"], + PostType: _PostType_vue__WEBPACK_IMPORTED_MODULE_5__["default"] + }, + props: { + ..._common_ts__WEBPACK_IMPORTED_MODULE_1__.commonAppDiscoverProps, + /** + * The content of the carousel + */ + content: { + type: Array, + required: true + } + }, + setup(props) { + const translatedHeadline = (0,_composables_useGetLocalizedValue_ts__WEBPACK_IMPORTED_MODULE_2__.useLocalizedValue)((0,vue__WEBPACK_IMPORTED_MODULE_6__.computed)(() => props.headline)); + const currentIndex = (0,vue__WEBPACK_IMPORTED_MODULE_6__.ref)(Math.min(1, props.content.length - 1)); + const shownElement = (0,vue__WEBPACK_IMPORTED_MODULE_6__.ref)(props.content[currentIndex.value]); + const hasNext = (0,vue__WEBPACK_IMPORTED_MODULE_6__.computed)(() => currentIndex.value < props.content.length - 1); + const hasPrevious = (0,vue__WEBPACK_IMPORTED_MODULE_6__.computed)(() => currentIndex.value > 0); + const internalId = (0,vue__WEBPACK_IMPORTED_MODULE_6__.computed)(() => { + var _props$id; + return (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : (Math.random() + 1).toString(36).substring(7); + }); + const headingId = (0,vue__WEBPACK_IMPORTED_MODULE_6__.computed)(() => "".concat(internalId.value, "-h")); + const transitionName = (0,vue__WEBPACK_IMPORTED_MODULE_6__.ref)('slide-in'); + (0,vue__WEBPACK_IMPORTED_MODULE_6__.watch)(() => currentIndex.value, (o, n) => { + if (o < n) { + transitionName.value = 'slide-in'; + } else { + transitionName.value = 'slide-out'; + } + // Wait next tick + (0,vue__WEBPACK_IMPORTED_MODULE_6__.nextTick)(() => { + shownElement.value = props.content[currentIndex.value]; + }); + }); + return { + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, + internalId, + headingId, + hasNext, + hasPrevious, + currentIndex, + shownElement, + transitionName, + translatedHeadline, + mdiChevronLeft: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiChevronLeft, + mdiChevronRight: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiChevronRight, + mdiCircleOutline: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiCircleOutline, + mdiCircleSlice8: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiCircleSlice8 + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=template&id=3065566f&scoped=true": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=template&id=3065566f&scoped=true ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm$shownElement$id; + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c("section", { + attrs: { + "aria-roledescription": _vm.t("settings", "Carousel"), + "aria-labelledby": _vm.headingId ? "".concat(_vm.headingId) : undefined + } + }, [_vm.headline ? _c("h3", { + attrs: { + id: _vm.headingId + } + }, [_vm._v("\n\t\t" + _vm._s(_vm.translatedHeadline) + "\n\t")]) : _vm._e(), _vm._v(" "), _c("div", { + staticClass: "app-discover-carousel__wrapper" + }, [_c("div", { + staticClass: "app-discover-carousel__button-wrapper" + }, [_c("NcButton", { + staticClass: "app-discover-carousel__button app-discover-carousel__button--previous", + attrs: { + type: "tertiary-no-background", + "aria-label": _vm.t("settings", "Previous slide"), + disabled: !_vm.hasPrevious + }, + on: { + click: function ($event) { + _vm.currentIndex -= 1; + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("NcIconSvgWrapper", { + attrs: { + path: _vm.mdiChevronLeft + } + })]; + }, + proxy: true + }]) + })], 1), _vm._v(" "), _c("Transition", { + attrs: { + name: _vm.transitionName, + mode: "out-in" + } + }, [_c("PostType", _vm._b({ + key: (_vm$shownElement$id = _vm.shownElement.id) !== null && _vm$shownElement$id !== void 0 ? _vm$shownElement$id : _vm.currentIndex, + attrs: { + "aria-labelledby": "".concat(_vm.internalId, "-tab-").concat(_vm.currentIndex), + "dom-id": "".concat(_vm.internalId, "-tabpanel-").concat(_vm.currentIndex), + inline: "", + role: "tabpanel" + } + }, "PostType", _vm.shownElement, false))], 1), _vm._v(" "), _c("div", { + staticClass: "app-discover-carousel__button-wrapper" + }, [_c("NcButton", { + staticClass: "app-discover-carousel__button app-discover-carousel__button--next", + attrs: { + type: "tertiary-no-background", + "aria-label": _vm.t("settings", "Next slide"), + disabled: !_vm.hasNext + }, + on: { + click: function ($event) { + _vm.currentIndex += 1; + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("NcIconSvgWrapper", { + attrs: { + path: _vm.mdiChevronRight + } + })]; + }, + proxy: true + }]) + })], 1)], 1), _vm._v(" "), _c("div", { + staticClass: "app-discover-carousel__tabs", + attrs: { + role: "tablist", + "aria-label": _vm.t("settings", "Choose slide to display") + } + }, _vm._l(_vm.content.length, function (index) { + return _c("NcButton", { + key: index, + attrs: { + id: "".concat(_vm.internalId, "-tab-").concat(index), + "aria-label": _vm.t("settings", "{index} of {total}", { + index, + total: _vm.content.length + }), + "aria-controls": "".concat(_vm.internalId, "-tabpanel-").concat(index), + "aria-selected": "".concat(_vm.currentIndex === index - 1), + role: "tab", + type: "tertiary-no-background" + }, + on: { + click: function ($event) { + _vm.currentIndex = index - 1; + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("NcIconSvgWrapper", { + attrs: { + path: _vm.currentIndex === index - 1 ? _vm.mdiCircleSlice8 : _vm.mdiCircleOutline + } + })]; + }, + proxy: true + }], null, true) + }); + }), 1)]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `h3[data-v-3065566f] { + font-size: 24px; + font-weight: 600; + margin-block: 0 1em; +} +.app-discover-carousel__wrapper[data-v-3065566f] { + display: flex; +} +.app-discover-carousel__button[data-v-3065566f] { + color: var(--color-text-maxcontrast); + position: absolute; + top: calc(50% - 22px); +} +.app-discover-carousel__button-wrapper[data-v-3065566f] { + position: relative; +} +.app-discover-carousel__button--next[data-v-3065566f] { + right: -54px; +} +.app-discover-carousel__button--previous[data-v-3065566f] { + left: -54px; +} +.app-discover-carousel__tabs[data-v-3065566f] { + display: flex; + flex-direction: row; + justify-content: center; +} +.app-discover-carousel__tabs > *[data-v-3065566f] { + color: var(--color-text-maxcontrast); +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css": +/*!******************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css ***! + \******************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.slide-in-enter-active, +.slide-in-leave-active, +.slide-out-enter-active, +.slide-out-leave-active { + transition: all .4s ease-out; +} +.slide-in-leave-to, +.slide-out-enter { + opacity: 0; + transform: translateX(50%); +} +.slide-in-enter, +.slide-out-leave-to { + opacity: 0; + transform: translateX(-50%); +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_0_id_3065566f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_0_id_3065566f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_0_id_3065566f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_0_id_3065566f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_0_id_3065566f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_1_id_3065566f_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_1_id_3065566f_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_1_id_3065566f_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_1_id_3065566f_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_1_id_3065566f_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue": +/*!************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/CarouselType.vue ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _CarouselType_vue_vue_type_template_id_3065566f_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./CarouselType.vue?vue&type=template&id=3065566f&scoped=true */ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=template&id=3065566f&scoped=true"); +/* harmony import */ var _CarouselType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./CarouselType.vue?vue&type=script&lang=ts */ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=script&lang=ts"); +/* harmony import */ var _CarouselType_vue_vue_type_style_index_0_id_3065566f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss"); +/* harmony import */ var _CarouselType_vue_vue_type_style_index_1_id_3065566f_lang_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css */ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__["default"])( + _CarouselType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _CarouselType_vue_vue_type_template_id_3065566f_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _CarouselType_vue_vue_type_template_id_3065566f_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "3065566f", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppStoreDiscover/CarouselType.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=script&lang=ts": +/*!************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=script&lang=ts ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=script&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=template&id=3065566f&scoped=true": +/*!******************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=template&id=3065566f&scoped=true ***! + \******************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_template_id_3065566f_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_template_id_3065566f_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_template_id_3065566f_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=template&id=3065566f&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=template&id=3065566f&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss": +/*!*********************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss ***! + \*********************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_0_id_3065566f_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css": +/*!********************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css ***! + \********************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_CarouselType_vue_vue_type_style_index_1_id_3065566f_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css"); + + +/***/ }) + +}]); +//# sourceMappingURL=apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js.map?v=60364cb47ffeb0065c91 \ No newline at end of file diff --git a/dist/apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js.map b/dist/apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js.map new file mode 100644 index 0000000000000..f6ac43bed9f3b --- /dev/null +++ b/dist/apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps_settings_src_components_AppStoreDiscover_CarouselType_vue-apps_settings_src_components_AppStoreDiscover_CarouselType_vue.js?v=60364cb47ffeb0065c91","mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AChEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACvHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACxCA","sources":["webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=template&id=3065566f&scoped=true","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?fb2b","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?fb47","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/CarouselType.vue","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?19b6","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?28b8","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?e30e","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/CarouselType.vue?b2f8"],"sourcesContent":["import { mdiChevronLeft, mdiChevronRight, mdiCircleOutline, mdiCircleSlice8 } from '@mdi/js';\nimport { translate as t } from '@nextcloud/l10n';\nimport { computed, defineComponent, nextTick, ref, watch } from 'vue';\nimport { commonAppDiscoverProps } from './common.ts';\nimport { useLocalizedValue } from '../../composables/useGetLocalizedValue.ts';\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton.js';\nimport NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js';\nimport PostType from './PostType.vue';\nexport default defineComponent({\n name: 'CarouselType',\n components: {\n NcButton,\n NcIconSvgWrapper,\n PostType\n },\n props: {\n ...commonAppDiscoverProps,\n /**\n * The content of the carousel\n */\n content: {\n type: Array,\n required: true\n }\n },\n setup(props) {\n const translatedHeadline = useLocalizedValue(computed(() => props.headline));\n const currentIndex = ref(Math.min(1, props.content.length - 1));\n const shownElement = ref(props.content[currentIndex.value]);\n const hasNext = computed(() => currentIndex.value < props.content.length - 1);\n const hasPrevious = computed(() => currentIndex.value > 0);\n const internalId = computed(() => {\n var _props$id;\n return (_props$id = props.id) !== null && _props$id !== void 0 ? _props$id : (Math.random() + 1).toString(36).substring(7);\n });\n const headingId = computed(() => \"\".concat(internalId.value, \"-h\"));\n const transitionName = ref('slide-in');\n watch(() => currentIndex.value, (o, n) => {\n if (o < n) {\n transitionName.value = 'slide-in';\n } else {\n transitionName.value = 'slide-out';\n }\n // Wait next tick\n nextTick(() => {\n shownElement.value = props.content[currentIndex.value];\n });\n });\n return {\n t,\n internalId,\n headingId,\n hasNext,\n hasPrevious,\n currentIndex,\n shownElement,\n transitionName,\n translatedHeadline,\n mdiChevronLeft,\n mdiChevronRight,\n mdiCircleOutline,\n mdiCircleSlice8\n };\n }\n});","var render = function render() {\n var _vm$shownElement$id;\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"section\", {\n attrs: {\n \"aria-roledescription\": _vm.t(\"settings\", \"Carousel\"),\n \"aria-labelledby\": _vm.headingId ? \"\".concat(_vm.headingId) : undefined\n }\n }, [_vm.headline ? _c(\"h3\", {\n attrs: {\n id: _vm.headingId\n }\n }, [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.translatedHeadline) + \"\\n\\t\")]) : _vm._e(), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"app-discover-carousel__wrapper\"\n }, [_c(\"div\", {\n staticClass: \"app-discover-carousel__button-wrapper\"\n }, [_c(\"NcButton\", {\n staticClass: \"app-discover-carousel__button app-discover-carousel__button--previous\",\n attrs: {\n type: \"tertiary-no-background\",\n \"aria-label\": _vm.t(\"settings\", \"Previous slide\"),\n disabled: !_vm.hasPrevious\n },\n on: {\n click: function ($event) {\n _vm.currentIndex -= 1;\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"NcIconSvgWrapper\", {\n attrs: {\n path: _vm.mdiChevronLeft\n }\n })];\n },\n proxy: true\n }])\n })], 1), _vm._v(\" \"), _c(\"Transition\", {\n attrs: {\n name: _vm.transitionName,\n mode: \"out-in\"\n }\n }, [_c(\"PostType\", _vm._b({\n key: (_vm$shownElement$id = _vm.shownElement.id) !== null && _vm$shownElement$id !== void 0 ? _vm$shownElement$id : _vm.currentIndex,\n attrs: {\n \"aria-labelledby\": \"\".concat(_vm.internalId, \"-tab-\").concat(_vm.currentIndex),\n \"dom-id\": \"\".concat(_vm.internalId, \"-tabpanel-\").concat(_vm.currentIndex),\n inline: \"\",\n role: \"tabpanel\"\n }\n }, \"PostType\", _vm.shownElement, false))], 1), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"app-discover-carousel__button-wrapper\"\n }, [_c(\"NcButton\", {\n staticClass: \"app-discover-carousel__button app-discover-carousel__button--next\",\n attrs: {\n type: \"tertiary-no-background\",\n \"aria-label\": _vm.t(\"settings\", \"Next slide\"),\n disabled: !_vm.hasNext\n },\n on: {\n click: function ($event) {\n _vm.currentIndex += 1;\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"NcIconSvgWrapper\", {\n attrs: {\n path: _vm.mdiChevronRight\n }\n })];\n },\n proxy: true\n }])\n })], 1)], 1), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"app-discover-carousel__tabs\",\n attrs: {\n role: \"tablist\",\n \"aria-label\": _vm.t(\"settings\", \"Choose slide to display\")\n }\n }, _vm._l(_vm.content.length, function (index) {\n return _c(\"NcButton\", {\n key: index,\n attrs: {\n id: \"\".concat(_vm.internalId, \"-tab-\").concat(index),\n \"aria-label\": _vm.t(\"settings\", \"{index} of {total}\", {\n index,\n total: _vm.content.length\n }),\n \"aria-controls\": \"\".concat(_vm.internalId, \"-tabpanel-\").concat(index),\n \"aria-selected\": \"\".concat(_vm.currentIndex === index - 1),\n role: \"tab\",\n type: \"tertiary-no-background\"\n },\n on: {\n click: function ($event) {\n _vm.currentIndex = index - 1;\n }\n },\n scopedSlots: _vm._u([{\n key: \"icon\",\n fn: function () {\n return [_c(\"NcIconSvgWrapper\", {\n attrs: {\n path: _vm.currentIndex === index - 1 ? _vm.mdiCircleSlice8 : _vm.mdiCircleOutline\n }\n })];\n },\n proxy: true\n }], null, true)\n });\n }), 1)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `h3[data-v-3065566f] {\n font-size: 24px;\n font-weight: 600;\n margin-block: 0 1em;\n}\n.app-discover-carousel__wrapper[data-v-3065566f] {\n display: flex;\n}\n.app-discover-carousel__button[data-v-3065566f] {\n color: var(--color-text-maxcontrast);\n position: absolute;\n top: calc(50% - 22px);\n}\n.app-discover-carousel__button-wrapper[data-v-3065566f] {\n position: relative;\n}\n.app-discover-carousel__button--next[data-v-3065566f] {\n right: -54px;\n}\n.app-discover-carousel__button--previous[data-v-3065566f] {\n left: -54px;\n}\n.app-discover-carousel__tabs[data-v-3065566f] {\n display: flex;\n flex-direction: row;\n justify-content: center;\n}\n.app-discover-carousel__tabs > *[data-v-3065566f] {\n color: var(--color-text-maxcontrast);\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `\n.slide-in-enter-active,\n.slide-in-leave-active,\n.slide-out-enter-active,\n.slide-out-leave-active {\n transition: all .4s ease-out;\n}\n.slide-in-leave-to,\n.slide-out-enter {\n opacity: 0;\n transform: translateX(50%);\n}\n.slide-in-enter,\n.slide-out-leave-to {\n opacity: 0;\n transform: translateX(-50%);\n}\n`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./CarouselType.vue?vue&type=template&id=3065566f&scoped=true\"\nimport script from \"./CarouselType.vue?vue&type=script&lang=ts\"\nexport * from \"./CarouselType.vue?vue&type=script&lang=ts\"\nimport style0 from \"./CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss\"\nimport style1 from \"./CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3065566f\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('3065566f')) {\n api.createRecord('3065566f', component.options)\n } else {\n api.reload('3065566f', component.options)\n }\n module.hot.accept(\"./CarouselType.vue?vue&type=template&id=3065566f&scoped=true\", function () {\n api.rerender('3065566f', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppStoreDiscover/CarouselType.vue\"\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=script&lang=ts\"","export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=template&id=3065566f&scoped=true\"","export * from \"-!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=0&id=3065566f&scoped=true&lang=scss\"","export * from \"-!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./CarouselType.vue?vue&type=style&index=1&id=3065566f&lang=css\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js b/dist/apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js new file mode 100644 index 0000000000000..fa2bb0e7e0279 --- /dev/null +++ b/dist/apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js @@ -0,0 +1,818 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["apps_settings_src_components_AppStoreDiscover_PostType_vue"],{ + +/***/ "./apps/settings/src/components/AppStoreDiscover/common.ts": +/*!*****************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/common.ts ***! + \*****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ commonAppDiscoverProps: () => (/* binding */ commonAppDiscoverProps) +/* harmony export */ }); +/* harmony import */ var _constants_AppDiscoverTypes_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../constants/AppDiscoverTypes.ts */ "./apps/settings/src/constants/AppDiscoverTypes.ts"); + +/** + * Common Props for all app discover types + */ +const commonAppDiscoverProps = { + type: { + type: String, + required: true, + validator: v => typeof v === 'string' && _constants_AppDiscoverTypes_ts__WEBPACK_IMPORTED_MODULE_0__.APP_DISCOVER_KNOWN_TYPES.includes(v) + }, + id: { + type: String, + required: true + }, + date: { + type: Number, + required: false, + default: undefined + }, + expiryDate: { + type: Number, + required: false, + default: undefined + }, + headline: { + type: Object, + required: false, + default: () => null + }, + link: { + type: String, + required: false, + default: () => null + } +}; + +/***/ }), + +/***/ "./apps/settings/src/composables/useGetLocalizedValue.ts": +/*!***************************************************************!*\ + !*** ./apps/settings/src/composables/useGetLocalizedValue.ts ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ useLocalizedValue: () => (/* binding */ useLocalizedValue) +/* harmony export */ }); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/** + * @copyright Copyright (c) 2024 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + +/** + * Helper to get the localized value for the current users language + * @param dict The dictionary to get the value from + * @param language The language to use + */ +const getLocalizedValue = (dict, language) => { + var _ref, _ref2, _dict$language; + return (_ref = (_ref2 = (_dict$language = dict[language]) !== null && _dict$language !== void 0 ? _dict$language : dict[language.split('_')[0]]) !== null && _ref2 !== void 0 ? _ref2 : dict.en) !== null && _ref !== void 0 ? _ref : null; +}; +/** + * Get the localized value of the dictionary provided + * @param dict Dictionary + * @return String or null if invalid dictionary + */ +const useLocalizedValue = dict => { + /** + * Language of the current user + */ + const language = (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.getLanguage)(); + return (0,vue__WEBPACK_IMPORTED_MODULE_1__.computed)(() => !(dict !== null && dict !== void 0 && dict.value) ? null : getLocalizedValue(dict.value, language)); +}; + +/***/ }), + +/***/ "./apps/settings/src/constants/AppDiscoverTypes.ts": +/*!*********************************************************!*\ + !*** ./apps/settings/src/constants/AppDiscoverTypes.ts ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ APP_DISCOVER_KNOWN_TYPES: () => (/* binding */ APP_DISCOVER_KNOWN_TYPES) +/* harmony export */ }); +/** + * @copyright Copyright (c) 2024 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +/** + * Currently known types of app discover section elements + */ +const APP_DISCOVER_KNOWN_TYPES = ['post', 'showcase', 'carousel']; + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=script&lang=ts": +/*!*********************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=script&lang=ts ***! + \*********************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var vue_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! vue-router */ "./node_modules/vue-router/dist/vue-router.esm.js"); + + + + +const knownRoutes = Object.fromEntries(Object.entries((0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('core', 'apps')).map(_ref => { + var _v$app; + let [k, v] = _ref; + return [(_v$app = v.app) !== null && _v$app !== void 0 ? _v$app : k, v.href]; +})); +/** + * This component either shows a native link to the installed app or external size - or a router link to the appstore page of the app if not installed + */ +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_2__.defineComponent)({ + name: 'AppLink', + components: { + RouterLink: vue_router__WEBPACK_IMPORTED_MODULE_3__.RouterLink + }, + props: { + href: { + type: String, + required: true + } + }, + data() { + return { + routerProps: undefined, + linkProps: undefined + }; + }, + watch: { + href: { + immediate: true, + handler() { + var _this$$route$params$c, _this$$route$params; + const match = this.href.match(/^app:\/\/([^/]+)(\/.+)?$/); + this.routerProps = undefined; + this.linkProps = undefined; + // not an app url + if (match === null) { + this.linkProps = { + href: this.href, + target: '_blank', + rel: 'noreferrer noopener' + }; + return; + } + const appId = match[1]; + // Check if specific route was requested + if (match[2]) { + // we do no know anything about app internal path so we only allow generic app paths + this.linkProps = { + href: (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateUrl)("/apps/".concat(appId).concat(match[2])) + }; + return; + } + // If we know any route for that app we open it + if (appId in knownRoutes) { + this.linkProps = { + href: knownRoutes[appId] + }; + return; + } + // Fallback to show the app store entry + this.routerProps = { + to: { + name: 'apps-details', + params: { + category: (_this$$route$params$c = (_this$$route$params = this.$route.params) === null || _this$$route$params === void 0 ? void 0 : _this$$route$params.category) !== null && _this$$route$params$c !== void 0 ? _this$$route$params$c : 'discover', + id: appId + } + } + }; + } + } + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=script&lang=ts": +/*!**********************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=script&lang=ts ***! + \**********************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _vueuse_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vueuse/core */ "./node_modules/@vueuse/core/index.mjs"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common */ "./apps/settings/src/components/AppStoreDiscover/common.ts"); +/* harmony import */ var _composables_useGetLocalizedValue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../composables/useGetLocalizedValue */ "./apps/settings/src/composables/useGetLocalizedValue.ts"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _AppLink_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./AppLink.vue */ "./apps/settings/src/components/AppStoreDiscover/AppLink.vue"); + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_5__.defineComponent)({ + components: { + AppLink: _AppLink_vue__WEBPACK_IMPORTED_MODULE_4__["default"], + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + ..._common__WEBPACK_IMPORTED_MODULE_1__.commonAppDiscoverProps, + text: { + type: Object, + required: false, + default: () => null + }, + media: { + type: Object, + required: false, + default: () => null + }, + inline: { + type: Boolean, + required: false, + default: false + }, + domId: { + type: String, + required: false, + default: null + } + }, + setup(props) { + const translatedHeadline = (0,_composables_useGetLocalizedValue__WEBPACK_IMPORTED_MODULE_2__.useLocalizedValue)((0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => props.headline)); + const translatedText = (0,_composables_useGetLocalizedValue__WEBPACK_IMPORTED_MODULE_2__.useLocalizedValue)((0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => props.text)); + const localizedMedia = (0,_composables_useGetLocalizedValue__WEBPACK_IMPORTED_MODULE_2__.useLocalizedValue)((0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => { + var _props$media; + return (_props$media = props.media) === null || _props$media === void 0 ? void 0 : _props$media.content; + })); + const mediaSources = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => localizedMedia.value !== null ? [localizedMedia.value.src].flat() : undefined); + const mediaAlt = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => { + var _localizedMedia$value, _localizedMedia$value2; + return (_localizedMedia$value = (_localizedMedia$value2 = localizedMedia.value) === null || _localizedMedia$value2 === void 0 ? void 0 : _localizedMedia$value2.alt) !== null && _localizedMedia$value !== void 0 ? _localizedMedia$value : ''; + }); + const isImage = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => { + var _mediaSources$value; + return (mediaSources === null || mediaSources === void 0 || (_mediaSources$value = mediaSources.value) === null || _mediaSources$value === void 0 ? void 0 : _mediaSources$value[0].mime.startsWith('image/')) === true; + }); + /** + * Is the media is shown full width + */ + const isFullWidth = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => !translatedHeadline.value && !translatedText.value); + /** + * Link on the media + * Fallback to post link to prevent link inside link (which is invalid HTML) + */ + const mediaLink = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => { + var _localizedMedia$value3, _localizedMedia$value4; + return (_localizedMedia$value3 = (_localizedMedia$value4 = localizedMedia.value) === null || _localizedMedia$value4 === void 0 ? void 0 : _localizedMedia$value4.link) !== null && _localizedMedia$value3 !== void 0 ? _localizedMedia$value3 : props.link; + }); + const hasPlaybackEnded = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(false); + const showPlayVideo = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => { + var _localizedMedia$value5; + return ((_localizedMedia$value5 = localizedMedia.value) === null || _localizedMedia$value5 === void 0 ? void 0 : _localizedMedia$value5.link) && hasPlaybackEnded.value; + }); + /** + * The content is sized / styles are applied based on the container width + * To make it responsive even for inline usage and when opening / closing the sidebar / navigation + */ + const container = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(); + const { + width: containerWidth + } = (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_6__.useElementSize)(container); + const isSmallWidth = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => containerWidth.value < 600); + /** + * Generate URL for cached media to prevent user can be tracked + * @param url The URL to resolve + */ + const generatePrivacyUrl = url => url.startsWith('/') ? url : (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateUrl)('/settings/api/apps/media?fileName={fileName}', { + fileName: url + }); + const mediaElement = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(); + const mediaIsVisible = (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_6__.useElementVisibility)(mediaElement, { + threshold: 0.3 + }); + (0,vue__WEBPACK_IMPORTED_MODULE_5__.watchEffect)(() => { + // Only if media is video + if (!isImage.value && mediaElement.value) { + const video = mediaElement.value; + if (mediaIsVisible.value) { + // Ensure video is muted - otherwise .play() will be blocked by browsers + video.muted = true; + // If visible start playback + video.play(); + } else { + // If not visible pause the playback + video.pause(); + // If the animation has ended reset + if (video.ended) { + video.currentTime = 0; + hasPlaybackEnded.value = false; + } + } + } + }); + return { + mdiPlayCircleOutline: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiPlayCircleOutline, + container, + translatedText, + translatedHeadline, + mediaElement, + mediaSources, + mediaAlt, + mediaLink, + hasPlaybackEnded, + showPlayVideo, + isFullWidth, + isSmallWidth, + isImage, + generatePrivacyUrl + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=template&id=63ee4896": +/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=template&id=63ee4896 ***! + \**********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _vm.linkProps ? _c("a", _vm._b({}, "a", _vm.linkProps, false), [_vm._t("default")], 2) : _vm.routerProps ? _c("RouterLink", _vm._b({}, "RouterLink", _vm.routerProps, false), [_vm._t("default")], 2) : _vm._e(); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=template&id=687237a2&scoped=true": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=template&id=687237a2&scoped=true ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm$media, _vm$media2; + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c("article", { + ref: "container", + staticClass: "app-discover-post", + class: { + "app-discover-post--reverse": _vm.media && _vm.media.alignment === "start", + "app-discover-post--small": _vm.isSmallWidth + }, + attrs: { + id: _vm.domId + } + }, [_vm.headline || _vm.text ? _c(_vm.link ? "AppLink" : "div", { + tag: "component", + staticClass: "app-discover-post__text", + attrs: { + href: _vm.link + } + }, [_c(_vm.inline ? "h4" : "h3", { + tag: "component" + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.translatedHeadline) + "\n\t\t")]), _vm._v(" "), _c("p", [_vm._v(_vm._s(_vm.translatedText))])], 1) : _vm._e(), _vm._v(" "), _vm.mediaSources ? _c(_vm.mediaLink ? "AppLink" : "div", { + tag: "component", + staticClass: "app-discover-post__media", + class: { + "app-discover-post__media--fullwidth": _vm.isFullWidth, + "app-discover-post__media--start": ((_vm$media = _vm.media) === null || _vm$media === void 0 ? void 0 : _vm$media.alignment) === "start", + "app-discover-post__media--end": ((_vm$media2 = _vm.media) === null || _vm$media2 === void 0 ? void 0 : _vm$media2.alignment) === "end" + }, + attrs: { + href: _vm.mediaLink + } + }, [_c(_vm.isImage ? "picture" : "video", { + ref: "mediaElement", + tag: "component", + staticClass: "app-discover-post__media-element", + attrs: { + muted: !_vm.isImage, + playsinline: !_vm.isImage, + preload: !_vm.isImage && "auto" + }, + on: { + ended: function ($event) { + _vm.hasPlaybackEnded = true; + } + } + }, [_vm._l(_vm.mediaSources, function (source) { + return _c("source", { + key: source.src, + attrs: { + src: _vm.isImage ? undefined : _vm.generatePrivacyUrl(source.src), + srcset: _vm.isImage ? _vm.generatePrivacyUrl(source.src) : undefined, + type: source.mime + } + }); + }), _vm._v(" "), _vm.isImage ? _c("img", { + attrs: { + src: _vm.generatePrivacyUrl(_vm.mediaSources[0].src), + alt: _vm.mediaAlt + } + }) : _vm._e()], 2), _vm._v(" "), _c("div", { + staticClass: "app-discover-post__play-icon-wrapper" + }, [!_vm.isImage && _vm.showPlayVideo ? _c("NcIconSvgWrapper", { + staticClass: "app-discover-post__play-icon", + attrs: { + path: _vm.mdiPlayCircleOutline, + size: 92 + } + }) : _vm._e()], 1)], 1) : _vm._e()], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.app-discover-post[data-v-687237a2] { + max-height: 300px; + width: 100%; + background-color: var(--color-primary-element-light); + border-radius: var(--border-radius-rounded); + display: flex; + flex-direction: row; + justify-content: start; +} +.app-discover-post--reverse[data-v-687237a2] { + flex-direction: row-reverse; +} +.app-discover-post h3[data-v-687237a2], .app-discover-post h4[data-v-687237a2] { + font-size: 24px; + font-weight: 600; + margin-block: 0 1em; +} +.app-discover-post__text[data-v-687237a2] { + display: block; + width: 100%; + padding: var(--border-radius-rounded); + overflow-y: scroll; +} +.app-discover-post:has(.app-discover-post__media) .app-discover-post__text[data-v-687237a2] { + padding-block-end: 0; +} +.app-discover-post__media[data-v-687237a2] { + display: block; + overflow: hidden; + max-width: 450px; + border-radius: var(--border-radius-rounded); +} +.app-discover-post__media--fullwidth[data-v-687237a2] { + max-width: unset; + max-height: unset; +} +.app-discover-post__media--end[data-v-687237a2] { + border-end-start-radius: 0; + border-start-start-radius: 0; +} +.app-discover-post__media--start[data-v-687237a2] { + border-end-end-radius: 0; + border-start-end-radius: 0; +} +.app-discover-post__media img[data-v-687237a2], .app-discover-post__media-element[data-v-687237a2] { + height: 100%; + width: 100%; + object-fit: cover; + object-position: center; +} +.app-discover-post__play-icon[data-v-687237a2] { + position: absolute; + top: -46px; + right: -46px; +} +.app-discover-post__play-icon-wrapper[data-v-687237a2] { + position: relative; + top: -50%; + left: -50%; +} +.app-discover-post--small.app-discover-post[data-v-687237a2] { + flex-direction: column; + max-height: 500px; +} +.app-discover-post--small.app-discover-post--reverse[data-v-687237a2] { + flex-direction: column-reverse; +} +.app-discover-post--small .app-discover-post__text[data-v-687237a2] { + flex: 1 1 50%; +} +.app-discover-post--small .app-discover-post__media[data-v-687237a2] { + min-width: 100%; +} +.app-discover-post--small .app-discover-post__media--end[data-v-687237a2] { + border-radius: var(--border-radius-rounded); + border-start-end-radius: 0; + border-start-start-radius: 0; +} +.app-discover-post--small .app-discover-post__media--start[data-v-687237a2] { + border-radius: var(--border-radius-rounded); + border-end-end-radius: 0; + border-end-start-radius: 0; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_style_index_0_id_687237a2_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_style_index_0_id_687237a2_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_style_index_0_id_687237a2_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_style_index_0_id_687237a2_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_style_index_0_id_687237a2_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppLink.vue": +/*!*******************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppLink.vue ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppLink_vue_vue_type_template_id_63ee4896__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppLink.vue?vue&type=template&id=63ee4896 */ "./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=template&id=63ee4896"); +/* harmony import */ var _AppLink_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppLink.vue?vue&type=script&lang=ts */ "./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=script&lang=ts"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + + + +/* normalize component */ +; +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__["default"])( + _AppLink_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppLink_vue_vue_type_template_id_63ee4896__WEBPACK_IMPORTED_MODULE_0__.render, + _AppLink_vue_vue_type_template_id_63ee4896__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppStoreDiscover/AppLink.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/PostType.vue": +/*!********************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/PostType.vue ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _PostType_vue_vue_type_template_id_687237a2_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./PostType.vue?vue&type=template&id=687237a2&scoped=true */ "./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=template&id=687237a2&scoped=true"); +/* harmony import */ var _PostType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./PostType.vue?vue&type=script&lang=ts */ "./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=script&lang=ts"); +/* harmony import */ var _PostType_vue_vue_type_style_index_0_id_687237a2_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _PostType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _PostType_vue_vue_type_template_id_687237a2_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _PostType_vue_vue_type_template_id_687237a2_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "687237a2", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppStoreDiscover/PostType.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=script&lang=ts": +/*!*******************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=script&lang=ts ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLink_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLink.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=script&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLink_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=script&lang=ts": +/*!********************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=script&lang=ts ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=script&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=template&id=63ee4896": +/*!*************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=template&id=63ee4896 ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLink_vue_vue_type_template_id_63ee4896__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLink_vue_vue_type_template_id_63ee4896__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLink_vue_vue_type_template_id_63ee4896__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLink.vue?vue&type=template&id=63ee4896 */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=template&id=63ee4896"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=template&id=687237a2&scoped=true": +/*!**************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=template&id=687237a2&scoped=true ***! + \**************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_template_id_687237a2_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_template_id_687237a2_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_template_id_687237a2_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=template&id=687237a2&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=template&id=687237a2&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss": +/*!*****************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss ***! + \*****************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_PostType_vue_vue_type_style_index_0_id_687237a2_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss"); + + +/***/ }) + +}]); +//# sourceMappingURL=apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js.map?v=bd0718820d5bbad8c4ed \ No newline at end of file diff --git a/dist/apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js.map b/dist/apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js.map new file mode 100644 index 0000000000000..bec74383fe442 --- /dev/null +++ b/dist/apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps_settings_src_components_AppStoreDiscover_PostType_vue-apps_settings_src_components_AppStoreDiscover_PostType_vue.js?v=bd0718820d5bbad8c4ed","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC9HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA;;;;;;;;;;;;;;;ACAA","sources":["webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/common.ts","webpack:///nextcloud/apps/settings/src/composables/useGetLocalizedValue.ts","webpack:///nextcloud/apps/settings/src/constants/AppDiscoverTypes.ts","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppLink.vue?vue&type=template&id=63ee4896","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=template&id=687237a2&scoped=true","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/PostType.vue?9f50","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppLink.vue","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/PostType.vue","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/AppLink.vue?bc5a","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/PostType.vue?a2fa","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/AppLink.vue?acdf","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/PostType.vue?d604","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/PostType.vue?ab34"],"sourcesContent":["import { APP_DISCOVER_KNOWN_TYPES } from '../../constants/AppDiscoverTypes.ts';\n/**\n * Common Props for all app discover types\n */\nexport const commonAppDiscoverProps = {\n type: {\n type: String,\n required: true,\n validator: v => typeof v === 'string' && APP_DISCOVER_KNOWN_TYPES.includes(v)\n },\n id: {\n type: String,\n required: true\n },\n date: {\n type: Number,\n required: false,\n default: undefined\n },\n expiryDate: {\n type: Number,\n required: false,\n default: undefined\n },\n headline: {\n type: Object,\n required: false,\n default: () => null\n },\n link: {\n type: String,\n required: false,\n default: () => null\n }\n};","/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nimport { getLanguage } from '@nextcloud/l10n';\nimport { computed } from 'vue';\n/**\n * Helper to get the localized value for the current users language\n * @param dict The dictionary to get the value from\n * @param language The language to use\n */\nconst getLocalizedValue = (dict, language) => {\n var _ref, _ref2, _dict$language;\n return (_ref = (_ref2 = (_dict$language = dict[language]) !== null && _dict$language !== void 0 ? _dict$language : dict[language.split('_')[0]]) !== null && _ref2 !== void 0 ? _ref2 : dict.en) !== null && _ref !== void 0 ? _ref : null;\n};\n/**\n * Get the localized value of the dictionary provided\n * @param dict Dictionary\n * @return String or null if invalid dictionary\n */\nexport const useLocalizedValue = dict => {\n /**\n * Language of the current user\n */\n const language = getLanguage();\n return computed(() => !(dict !== null && dict !== void 0 && dict.value) ? null : getLocalizedValue(dict.value, language));\n};","/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n/**\n * Currently known types of app discover section elements\n */\nexport const APP_DISCOVER_KNOWN_TYPES = ['post', 'showcase', 'carousel'];","import { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nimport { RouterLink } from 'vue-router';\nconst knownRoutes = Object.fromEntries(Object.entries(loadState('core', 'apps')).map(_ref => {\n var _v$app;\n let [k, v] = _ref;\n return [(_v$app = v.app) !== null && _v$app !== void 0 ? _v$app : k, v.href];\n}));\n/**\n * This component either shows a native link to the installed app or external size - or a router link to the appstore page of the app if not installed\n */\nexport default defineComponent({\n name: 'AppLink',\n components: {\n RouterLink\n },\n props: {\n href: {\n type: String,\n required: true\n }\n },\n data() {\n return {\n routerProps: undefined,\n linkProps: undefined\n };\n },\n watch: {\n href: {\n immediate: true,\n handler() {\n var _this$$route$params$c, _this$$route$params;\n const match = this.href.match(/^app:\\/\\/([^/]+)(\\/.+)?$/);\n this.routerProps = undefined;\n this.linkProps = undefined;\n // not an app url\n if (match === null) {\n this.linkProps = {\n href: this.href,\n target: '_blank',\n rel: 'noreferrer noopener'\n };\n return;\n }\n const appId = match[1];\n // Check if specific route was requested\n if (match[2]) {\n // we do no know anything about app internal path so we only allow generic app paths\n this.linkProps = {\n href: generateUrl(\"/apps/\".concat(appId).concat(match[2]))\n };\n return;\n }\n // If we know any route for that app we open it\n if (appId in knownRoutes) {\n this.linkProps = {\n href: knownRoutes[appId]\n };\n return;\n }\n // Fallback to show the app store entry\n this.routerProps = {\n to: {\n name: 'apps-details',\n params: {\n category: (_this$$route$params$c = (_this$$route$params = this.$route.params) === null || _this$$route$params === void 0 ? void 0 : _this$$route$params.category) !== null && _this$$route$params$c !== void 0 ? _this$$route$params$c : 'discover',\n id: appId\n }\n }\n };\n }\n }\n }\n});","import { mdiPlayCircleOutline } from '@mdi/js';\nimport { generateUrl } from '@nextcloud/router';\nimport { useElementSize, useElementVisibility } from '@vueuse/core';\nimport { computed, defineComponent, ref, watchEffect } from 'vue';\nimport { commonAppDiscoverProps } from './common';\nimport { useLocalizedValue } from '../../composables/useGetLocalizedValue';\nimport NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js';\nimport AppLink from './AppLink.vue';\nexport default defineComponent({\n components: {\n AppLink,\n NcIconSvgWrapper\n },\n props: {\n ...commonAppDiscoverProps,\n text: {\n type: Object,\n required: false,\n default: () => null\n },\n media: {\n type: Object,\n required: false,\n default: () => null\n },\n inline: {\n type: Boolean,\n required: false,\n default: false\n },\n domId: {\n type: String,\n required: false,\n default: null\n }\n },\n setup(props) {\n const translatedHeadline = useLocalizedValue(computed(() => props.headline));\n const translatedText = useLocalizedValue(computed(() => props.text));\n const localizedMedia = useLocalizedValue(computed(() => {\n var _props$media;\n return (_props$media = props.media) === null || _props$media === void 0 ? void 0 : _props$media.content;\n }));\n const mediaSources = computed(() => localizedMedia.value !== null ? [localizedMedia.value.src].flat() : undefined);\n const mediaAlt = computed(() => {\n var _localizedMedia$value, _localizedMedia$value2;\n return (_localizedMedia$value = (_localizedMedia$value2 = localizedMedia.value) === null || _localizedMedia$value2 === void 0 ? void 0 : _localizedMedia$value2.alt) !== null && _localizedMedia$value !== void 0 ? _localizedMedia$value : '';\n });\n const isImage = computed(() => {\n var _mediaSources$value;\n return (mediaSources === null || mediaSources === void 0 || (_mediaSources$value = mediaSources.value) === null || _mediaSources$value === void 0 ? void 0 : _mediaSources$value[0].mime.startsWith('image/')) === true;\n });\n /**\n * Is the media is shown full width\n */\n const isFullWidth = computed(() => !translatedHeadline.value && !translatedText.value);\n /**\n * Link on the media\n * Fallback to post link to prevent link inside link (which is invalid HTML)\n */\n const mediaLink = computed(() => {\n var _localizedMedia$value3, _localizedMedia$value4;\n return (_localizedMedia$value3 = (_localizedMedia$value4 = localizedMedia.value) === null || _localizedMedia$value4 === void 0 ? void 0 : _localizedMedia$value4.link) !== null && _localizedMedia$value3 !== void 0 ? _localizedMedia$value3 : props.link;\n });\n const hasPlaybackEnded = ref(false);\n const showPlayVideo = computed(() => {\n var _localizedMedia$value5;\n return ((_localizedMedia$value5 = localizedMedia.value) === null || _localizedMedia$value5 === void 0 ? void 0 : _localizedMedia$value5.link) && hasPlaybackEnded.value;\n });\n /**\n * The content is sized / styles are applied based on the container width\n * To make it responsive even for inline usage and when opening / closing the sidebar / navigation\n */\n const container = ref();\n const {\n width: containerWidth\n } = useElementSize(container);\n const isSmallWidth = computed(() => containerWidth.value < 600);\n /**\n * Generate URL for cached media to prevent user can be tracked\n * @param url The URL to resolve\n */\n const generatePrivacyUrl = url => url.startsWith('/') ? url : generateUrl('/settings/api/apps/media?fileName={fileName}', {\n fileName: url\n });\n const mediaElement = ref();\n const mediaIsVisible = useElementVisibility(mediaElement, {\n threshold: 0.3\n });\n watchEffect(() => {\n // Only if media is video\n if (!isImage.value && mediaElement.value) {\n const video = mediaElement.value;\n if (mediaIsVisible.value) {\n // Ensure video is muted - otherwise .play() will be blocked by browsers\n video.muted = true;\n // If visible start playback\n video.play();\n } else {\n // If not visible pause the playback\n video.pause();\n // If the animation has ended reset\n if (video.ended) {\n video.currentTime = 0;\n hasPlaybackEnded.value = false;\n }\n }\n }\n });\n return {\n mdiPlayCircleOutline,\n container,\n translatedText,\n translatedHeadline,\n mediaElement,\n mediaSources,\n mediaAlt,\n mediaLink,\n hasPlaybackEnded,\n showPlayVideo,\n isFullWidth,\n isSmallWidth,\n isImage,\n generatePrivacyUrl\n };\n }\n});","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _vm.linkProps ? _c(\"a\", _vm._b({}, \"a\", _vm.linkProps, false), [_vm._t(\"default\")], 2) : _vm.routerProps ? _c(\"RouterLink\", _vm._b({}, \"RouterLink\", _vm.routerProps, false), [_vm._t(\"default\")], 2) : _vm._e();\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm$media, _vm$media2;\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"article\", {\n ref: \"container\",\n staticClass: \"app-discover-post\",\n class: {\n \"app-discover-post--reverse\": _vm.media && _vm.media.alignment === \"start\",\n \"app-discover-post--small\": _vm.isSmallWidth\n },\n attrs: {\n id: _vm.domId\n }\n }, [_vm.headline || _vm.text ? _c(_vm.link ? \"AppLink\" : \"div\", {\n tag: \"component\",\n staticClass: \"app-discover-post__text\",\n attrs: {\n href: _vm.link\n }\n }, [_c(_vm.inline ? \"h4\" : \"h3\", {\n tag: \"component\"\n }, [_vm._v(\"\\n\\t\\t\\t\" + _vm._s(_vm.translatedHeadline) + \"\\n\\t\\t\")]), _vm._v(\" \"), _c(\"p\", [_vm._v(_vm._s(_vm.translatedText))])], 1) : _vm._e(), _vm._v(\" \"), _vm.mediaSources ? _c(_vm.mediaLink ? \"AppLink\" : \"div\", {\n tag: \"component\",\n staticClass: \"app-discover-post__media\",\n class: {\n \"app-discover-post__media--fullwidth\": _vm.isFullWidth,\n \"app-discover-post__media--start\": ((_vm$media = _vm.media) === null || _vm$media === void 0 ? void 0 : _vm$media.alignment) === \"start\",\n \"app-discover-post__media--end\": ((_vm$media2 = _vm.media) === null || _vm$media2 === void 0 ? void 0 : _vm$media2.alignment) === \"end\"\n },\n attrs: {\n href: _vm.mediaLink\n }\n }, [_c(_vm.isImage ? \"picture\" : \"video\", {\n ref: \"mediaElement\",\n tag: \"component\",\n staticClass: \"app-discover-post__media-element\",\n attrs: {\n muted: !_vm.isImage,\n playsinline: !_vm.isImage,\n preload: !_vm.isImage && \"auto\"\n },\n on: {\n ended: function ($event) {\n _vm.hasPlaybackEnded = true;\n }\n }\n }, [_vm._l(_vm.mediaSources, function (source) {\n return _c(\"source\", {\n key: source.src,\n attrs: {\n src: _vm.isImage ? undefined : _vm.generatePrivacyUrl(source.src),\n srcset: _vm.isImage ? _vm.generatePrivacyUrl(source.src) : undefined,\n type: source.mime\n }\n });\n }), _vm._v(\" \"), _vm.isImage ? _c(\"img\", {\n attrs: {\n src: _vm.generatePrivacyUrl(_vm.mediaSources[0].src),\n alt: _vm.mediaAlt\n }\n }) : _vm._e()], 2), _vm._v(\" \"), _c(\"div\", {\n staticClass: \"app-discover-post__play-icon-wrapper\"\n }, [!_vm.isImage && _vm.showPlayVideo ? _c(\"NcIconSvgWrapper\", {\n staticClass: \"app-discover-post__play-icon\",\n attrs: {\n path: _vm.mdiPlayCircleOutline,\n size: 92\n }\n }) : _vm._e()], 1)], 1) : _vm._e()], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-discover-post[data-v-687237a2] {\n max-height: 300px;\n width: 100%;\n background-color: var(--color-primary-element-light);\n border-radius: var(--border-radius-rounded);\n display: flex;\n flex-direction: row;\n justify-content: start;\n}\n.app-discover-post--reverse[data-v-687237a2] {\n flex-direction: row-reverse;\n}\n.app-discover-post h3[data-v-687237a2], .app-discover-post h4[data-v-687237a2] {\n font-size: 24px;\n font-weight: 600;\n margin-block: 0 1em;\n}\n.app-discover-post__text[data-v-687237a2] {\n display: block;\n width: 100%;\n padding: var(--border-radius-rounded);\n overflow-y: scroll;\n}\n.app-discover-post:has(.app-discover-post__media) .app-discover-post__text[data-v-687237a2] {\n padding-block-end: 0;\n}\n.app-discover-post__media[data-v-687237a2] {\n display: block;\n overflow: hidden;\n max-width: 450px;\n border-radius: var(--border-radius-rounded);\n}\n.app-discover-post__media--fullwidth[data-v-687237a2] {\n max-width: unset;\n max-height: unset;\n}\n.app-discover-post__media--end[data-v-687237a2] {\n border-end-start-radius: 0;\n border-start-start-radius: 0;\n}\n.app-discover-post__media--start[data-v-687237a2] {\n border-end-end-radius: 0;\n border-start-end-radius: 0;\n}\n.app-discover-post__media img[data-v-687237a2], .app-discover-post__media-element[data-v-687237a2] {\n height: 100%;\n width: 100%;\n object-fit: cover;\n object-position: center;\n}\n.app-discover-post__play-icon[data-v-687237a2] {\n position: absolute;\n top: -46px;\n right: -46px;\n}\n.app-discover-post__play-icon-wrapper[data-v-687237a2] {\n position: relative;\n top: -50%;\n left: -50%;\n}\n.app-discover-post--small.app-discover-post[data-v-687237a2] {\n flex-direction: column;\n max-height: 500px;\n}\n.app-discover-post--small.app-discover-post--reverse[data-v-687237a2] {\n flex-direction: column-reverse;\n}\n.app-discover-post--small .app-discover-post__text[data-v-687237a2] {\n flex: 1 1 50%;\n}\n.app-discover-post--small .app-discover-post__media[data-v-687237a2] {\n min-width: 100%;\n}\n.app-discover-post--small .app-discover-post__media--end[data-v-687237a2] {\n border-radius: var(--border-radius-rounded);\n border-start-end-radius: 0;\n border-start-start-radius: 0;\n}\n.app-discover-post--small .app-discover-post__media--start[data-v-687237a2] {\n border-radius: var(--border-radius-rounded);\n border-end-end-radius: 0;\n border-end-start-radius: 0;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppLink.vue?vue&type=template&id=63ee4896\"\nimport script from \"./AppLink.vue?vue&type=script&lang=ts\"\nexport * from \"./AppLink.vue?vue&type=script&lang=ts\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('63ee4896')) {\n api.createRecord('63ee4896', component.options)\n } else {\n api.reload('63ee4896', component.options)\n }\n module.hot.accept(\"./AppLink.vue?vue&type=template&id=63ee4896\", function () {\n api.rerender('63ee4896', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppStoreDiscover/AppLink.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./PostType.vue?vue&type=template&id=687237a2&scoped=true\"\nimport script from \"./PostType.vue?vue&type=script&lang=ts\"\nexport * from \"./PostType.vue?vue&type=script&lang=ts\"\nimport style0 from \"./PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"687237a2\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('687237a2')) {\n api.createRecord('687237a2', component.options)\n } else {\n api.reload('687237a2', component.options)\n }\n module.hot.accept(\"./PostType.vue?vue&type=template&id=687237a2&scoped=true\", function () {\n api.rerender('687237a2', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppStoreDiscover/PostType.vue\"\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLink.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLink.vue?vue&type=script&lang=ts\"","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=script&lang=ts\"","export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLink.vue?vue&type=template&id=63ee4896\"","export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=template&id=687237a2&scoped=true\"","export * from \"-!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PostType.vue?vue&type=style&index=0&id=687237a2&scoped=true&lang=scss\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js b/dist/apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js new file mode 100644 index 0000000000000..c4bb88b0b9c7e --- /dev/null +++ b/dist/apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js @@ -0,0 +1,597 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue"],{ + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=script&setup=true&lang=ts": +/*!********************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=script&setup=true&lang=ts ***! + \********************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _store_apps_store_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../store/apps-store.ts */ "./apps/settings/src/store/apps-store.ts"); +/* harmony import */ var _AppList_AppItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../AppList/AppItem.vue */ "./apps/settings/src/components/AppList/AppItem.vue"); + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_2__.defineComponent)({ + __name: 'AppType', + props: { + modelValue: { + type: null, + required: true + } + }, + setup(__props) { + const props = __props; + const store = (0,_store_apps_store_ts__WEBPACK_IMPORTED_MODULE_0__.useAppsStore)(); + const app = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => store.getAppById(props.modelValue.appId)); + const appStoreLink = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => props.modelValue.appId ? "https://apps.nextcloud.com/apps/".concat(props.modelValue.appId) : '#'); + return { + __sfc: true, + props, + store, + app, + appStoreLink, + AppItem: _AppList_AppItem_vue__WEBPACK_IMPORTED_MODULE_1__["default"] + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=script&lang=ts": +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=script&lang=ts ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _vueuse_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @vueuse/core */ "./node_modules/@vueuse/core/index.mjs"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _common_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./common.ts */ "./apps/settings/src/components/AppStoreDiscover/common.ts"); +/* harmony import */ var _composables_useGetLocalizedValue_ts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../composables/useGetLocalizedValue.ts */ "./apps/settings/src/composables/useGetLocalizedValue.ts"); +/* harmony import */ var _AppType_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./AppType.vue */ "./apps/settings/src/components/AppStoreDiscover/AppType.vue"); +/* harmony import */ var _PostType_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./PostType.vue */ "./apps/settings/src/components/AppStoreDiscover/PostType.vue"); + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_5__.defineComponent)({ + name: 'ShowcaseType', + components: { + AppType: _AppType_vue__WEBPACK_IMPORTED_MODULE_3__["default"], + PostType: _PostType_vue__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + props: { + ..._common_ts__WEBPACK_IMPORTED_MODULE_1__.commonAppDiscoverProps, + /** + * The content of the carousel + */ + content: { + type: Array, + required: true + } + }, + setup(props) { + const translatedHeadline = (0,_composables_useGetLocalizedValue_ts__WEBPACK_IMPORTED_MODULE_2__.useLocalizedValue)((0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => props.headline)); + /** + * Make the element responsive based on the container width to also handle open navigation or sidebar + */ + const container = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(); + const { + width: containerWidth + } = (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_6__.useElementSize)(container); + const isSmallWidth = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => containerWidth.value < 768); + const isExtraSmallWidth = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => containerWidth.value < 512); + return { + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, + container, + isSmallWidth, + isExtraSmallWidth, + translatedHeadline + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=template&id=171ef054&scoped=true": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=template&id=171ef054&scoped=true ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _setup.app ? _c(_setup.AppItem, { + staticClass: "app-discover-app", + attrs: { + app: _setup.app, + category: "discover", + inline: "", + "list-view": false + } + }) : _c("a", { + staticClass: "app-discover-app app-discover-app__skeleton", + attrs: { + href: _setup.appStoreLink, + target: "_blank", + title: _vm.modelValue.appId, + rel: "noopener noreferrer" + } + }, [_c("span", { + staticClass: "skeleton-element" + }), _vm._v(" "), _c("span", { + staticClass: "skeleton-element" + }), _vm._v(" "), _c("span", { + staticClass: "skeleton-element" + }), _vm._v(" "), _c("span", { + staticClass: "skeleton-element" + }), _vm._v(" "), _c("span", { + staticClass: "skeleton-element" + })]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c("section", { + ref: "container", + staticClass: "app-discover-showcase", + class: { + "app-discover-showcase--small": _vm.isSmallWidth, + "app-discover-showcase--extra-small": _vm.isExtraSmallWidth + } + }, [_vm.translatedHeadline ? _c("h3", [_vm._v("\n\t\t" + _vm._s(_vm.translatedHeadline) + "\n\t")]) : _vm._e(), _vm._v(" "), _c("ul", { + staticClass: "app-discover-showcase__list" + }, _vm._l(_vm.content, function (item, index) { + var _item$id; + return _c("li", { + key: (_item$id = item.id) !== null && _item$id !== void 0 ? _item$id : index, + staticClass: "app-discover-showcase__item" + }, [item.type === "post" ? _c("PostType", _vm._b({ + attrs: { + inline: "" + } + }, "PostType", item, false)) : item.type === "app" ? _c("AppType", { + attrs: { + "model-value": item + } + }) : _vm._e()], 1); + }), 0)]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss": +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.app-discover-app[data-v-171ef054] { + width: 100% !important; +} +.app-discover-app[data-v-171ef054]:hover { + background: var(--color-background-hover); + border-radius: var(--border-radius-rounded); +} +.app-discover-app__skeleton[data-v-171ef054] { + display: flex; + flex-direction: column; + gap: 8px; + padding: 30px; +} +.app-discover-app__skeleton[data-v-171ef054] > :first-child { + height: 50%; + min-height: 130px; +} +.app-discover-app__skeleton[data-v-171ef054] > :nth-child(2) { + width: 50px; +} +.app-discover-app__skeleton[data-v-171ef054] > :nth-child(5) { + height: 20px; + width: 100px; +} +.app-discover-app__skeleton[data-v-171ef054] > :not(:first-child) { + border-radius: 4px; +} +.skeleton-element[data-v-171ef054] { + min-height: var(--default-font-size, 15px); + background: linear-gradient(90deg, var(--color-background-dark), var(--color-background-darker), var(--color-background-dark)); + background-size: 400% 400%; + animation: gradient-171ef054 6s ease infinite; +} +@keyframes gradient-171ef054 { +0% { + background-position: 0% 50%; +} +50% { + background-position: 100% 50%; +} +100% { + background-position: 0% 50%; +} +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `h3[data-v-4ed63088] { + font-size: 24px; + font-weight: 600; + margin-block: 0 1em; +} +.app-discover-showcase__list[data-v-4ed63088] { + list-style: none; + display: flex; + flex-wrap: wrap; + gap: calc(var(--default-clickable-area, 44px) / 2); +} +.app-discover-showcase__item[data-v-4ed63088] { + display: flex; + align-items: stretch; + position: relative; + width: calc(33% - var(--default-clickable-area, 44px) / 2); +} +.app-discover-showcase--small .app-discover-showcase__item[data-v-4ed63088] { + width: calc(50% - var(--default-clickable-area, 44px) / 2); +} +.app-discover-showcase--extra-small .app-discover-showcase__item[data-v-4ed63088] { + width: 100%; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_style_index_0_id_171ef054_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_style_index_0_id_171ef054_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_style_index_0_id_171ef054_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_style_index_0_id_171ef054_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_style_index_0_id_171ef054_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_style_index_0_id_4ed63088_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_style_index_0_id_4ed63088_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_style_index_0_id_4ed63088_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_style_index_0_id_4ed63088_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_style_index_0_id_4ed63088_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppType.vue": +/*!*******************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppType.vue ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppType_vue_vue_type_template_id_171ef054_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppType.vue?vue&type=template&id=171ef054&scoped=true */ "./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=template&id=171ef054&scoped=true"); +/* harmony import */ var _AppType_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppType.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _AppType_vue_vue_type_style_index_0_id_171ef054_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppType_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppType_vue_vue_type_template_id_171ef054_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppType_vue_vue_type_template_id_171ef054_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "171ef054", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppStoreDiscover/AppType.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue": +/*!************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ShowcaseType_vue_vue_type_template_id_4ed63088_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true */ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true"); +/* harmony import */ var _ShowcaseType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ShowcaseType.vue?vue&type=script&lang=ts */ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=script&lang=ts"); +/* harmony import */ var _ShowcaseType_vue_vue_type_style_index_0_id_4ed63088_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _ShowcaseType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _ShowcaseType_vue_vue_type_template_id_4ed63088_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _ShowcaseType_vue_vue_type_template_id_4ed63088_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "4ed63088", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=script&setup=true&lang=ts": +/*!******************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=script&setup=true&lang=ts ***! + \******************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=script&lang=ts": +/*!************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=script&lang=ts ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=script&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=template&id=171ef054&scoped=true": +/*!*************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=template&id=171ef054&scoped=true ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_template_id_171ef054_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_template_id_171ef054_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_template_id_171ef054_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=template&id=171ef054&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=template&id=171ef054&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true": +/*!******************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true ***! + \******************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_template_id_4ed63088_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_template_id_4ed63088_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_template_id_4ed63088_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss": +/*!****************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss ***! + \****************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppType_vue_vue_type_style_index_0_id_171ef054_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss": +/*!*********************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss ***! + \*********************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ShowcaseType_vue_vue_type_style_index_0_id_4ed63088_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss"); + + +/***/ }) + +}]); +//# sourceMappingURL=apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js.map?v=184f78de9b9e4677e874 \ No newline at end of file diff --git a/dist/apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js.map b/dist/apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js.map new file mode 100644 index 0000000000000..4141e66dd74e7 --- /dev/null +++ b/dist/apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue-apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue.js?v=184f78de9b9e4677e874","mappings":";;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA;;;;;;;;;;;;;;;ACAA","sources":["webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=script&lang=ts","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=template&id=171ef054&scoped=true","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/AppType.vue?ece1","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?cb03","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/AppType.vue","webpack:///nextcloud/apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/AppType.vue?bb05","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?0844","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/AppType.vue?b493","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?0ee5","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/AppType.vue?c01e","webpack://nextcloud/./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue?2f91"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue';\nimport { computed } from 'vue';\nimport { useAppsStore } from '../../store/apps-store.ts';\nimport AppItem from '../AppList/AppItem.vue';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AppType',\n props: {\n modelValue: {\n type: null,\n required: true\n }\n },\n setup(__props) {\n const props = __props;\n const store = useAppsStore();\n const app = computed(() => store.getAppById(props.modelValue.appId));\n const appStoreLink = computed(() => props.modelValue.appId ? \"https://apps.nextcloud.com/apps/\".concat(props.modelValue.appId) : '#');\n return {\n __sfc: true,\n props,\n store,\n app,\n appStoreLink,\n AppItem\n };\n }\n});","import { translate as t } from '@nextcloud/l10n';\nimport { useElementSize } from '@vueuse/core';\nimport { computed, defineComponent, ref } from 'vue';\nimport { commonAppDiscoverProps } from './common.ts';\nimport { useLocalizedValue } from '../../composables/useGetLocalizedValue.ts';\nimport AppType from './AppType.vue';\nimport PostType from './PostType.vue';\nexport default defineComponent({\n name: 'ShowcaseType',\n components: {\n AppType,\n PostType\n },\n props: {\n ...commonAppDiscoverProps,\n /**\n * The content of the carousel\n */\n content: {\n type: Array,\n required: true\n }\n },\n setup(props) {\n const translatedHeadline = useLocalizedValue(computed(() => props.headline));\n /**\n * Make the element responsive based on the container width to also handle open navigation or sidebar\n */\n const container = ref();\n const {\n width: containerWidth\n } = useElementSize(container);\n const isSmallWidth = computed(() => containerWidth.value < 768);\n const isExtraSmallWidth = computed(() => containerWidth.value < 512);\n return {\n t,\n container,\n isSmallWidth,\n isExtraSmallWidth,\n translatedHeadline\n };\n }\n});","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _setup.app ? _c(_setup.AppItem, {\n staticClass: \"app-discover-app\",\n attrs: {\n app: _setup.app,\n category: \"discover\",\n inline: \"\",\n \"list-view\": false\n }\n }) : _c(\"a\", {\n staticClass: \"app-discover-app app-discover-app__skeleton\",\n attrs: {\n href: _setup.appStoreLink,\n target: \"_blank\",\n title: _vm.modelValue.appId,\n rel: \"noopener noreferrer\"\n }\n }, [_c(\"span\", {\n staticClass: \"skeleton-element\"\n }), _vm._v(\" \"), _c(\"span\", {\n staticClass: \"skeleton-element\"\n }), _vm._v(\" \"), _c(\"span\", {\n staticClass: \"skeleton-element\"\n }), _vm._v(\" \"), _c(\"span\", {\n staticClass: \"skeleton-element\"\n }), _vm._v(\" \"), _c(\"span\", {\n staticClass: \"skeleton-element\"\n })]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"section\", {\n ref: \"container\",\n staticClass: \"app-discover-showcase\",\n class: {\n \"app-discover-showcase--small\": _vm.isSmallWidth,\n \"app-discover-showcase--extra-small\": _vm.isExtraSmallWidth\n }\n }, [_vm.translatedHeadline ? _c(\"h3\", [_vm._v(\"\\n\\t\\t\" + _vm._s(_vm.translatedHeadline) + \"\\n\\t\")]) : _vm._e(), _vm._v(\" \"), _c(\"ul\", {\n staticClass: \"app-discover-showcase__list\"\n }, _vm._l(_vm.content, function (item, index) {\n var _item$id;\n return _c(\"li\", {\n key: (_item$id = item.id) !== null && _item$id !== void 0 ? _item$id : index,\n staticClass: \"app-discover-showcase__item\"\n }, [item.type === \"post\" ? _c(\"PostType\", _vm._b({\n attrs: {\n inline: \"\"\n }\n }, \"PostType\", item, false)) : item.type === \"app\" ? _c(\"AppType\", {\n attrs: {\n \"model-value\": item\n }\n }) : _vm._e()], 1);\n }), 0)]);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.app-discover-app[data-v-171ef054] {\n width: 100% !important;\n}\n.app-discover-app[data-v-171ef054]:hover {\n background: var(--color-background-hover);\n border-radius: var(--border-radius-rounded);\n}\n.app-discover-app__skeleton[data-v-171ef054] {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 30px;\n}\n.app-discover-app__skeleton[data-v-171ef054] > :first-child {\n height: 50%;\n min-height: 130px;\n}\n.app-discover-app__skeleton[data-v-171ef054] > :nth-child(2) {\n width: 50px;\n}\n.app-discover-app__skeleton[data-v-171ef054] > :nth-child(5) {\n height: 20px;\n width: 100px;\n}\n.app-discover-app__skeleton[data-v-171ef054] > :not(:first-child) {\n border-radius: 4px;\n}\n.skeleton-element[data-v-171ef054] {\n min-height: var(--default-font-size, 15px);\n background: linear-gradient(90deg, var(--color-background-dark), var(--color-background-darker), var(--color-background-dark));\n background-size: 400% 400%;\n animation: gradient-171ef054 6s ease infinite;\n}\n@keyframes gradient-171ef054 {\n0% {\n background-position: 0% 50%;\n}\n50% {\n background-position: 100% 50%;\n}\n100% {\n background-position: 0% 50%;\n}\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `h3[data-v-4ed63088] {\n font-size: 24px;\n font-weight: 600;\n margin-block: 0 1em;\n}\n.app-discover-showcase__list[data-v-4ed63088] {\n list-style: none;\n display: flex;\n flex-wrap: wrap;\n gap: calc(var(--default-clickable-area, 44px) / 2);\n}\n.app-discover-showcase__item[data-v-4ed63088] {\n display: flex;\n align-items: stretch;\n position: relative;\n width: calc(33% - var(--default-clickable-area, 44px) / 2);\n}\n.app-discover-showcase--small .app-discover-showcase__item[data-v-4ed63088] {\n width: calc(50% - var(--default-clickable-area, 44px) / 2);\n}\n.app-discover-showcase--extra-small .app-discover-showcase__item[data-v-4ed63088] {\n width: 100%;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppType.vue?vue&type=template&id=171ef054&scoped=true\"\nimport script from \"./AppType.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppType.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"171ef054\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('171ef054')) {\n api.createRecord('171ef054', component.options)\n } else {\n api.reload('171ef054', component.options)\n }\n module.hot.accept(\"./AppType.vue?vue&type=template&id=171ef054&scoped=true\", function () {\n api.rerender('171ef054', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppStoreDiscover/AppType.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true\"\nimport script from \"./ShowcaseType.vue?vue&type=script&lang=ts\"\nexport * from \"./ShowcaseType.vue?vue&type=script&lang=ts\"\nimport style0 from \"./ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4ed63088\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('4ed63088')) {\n api.createRecord('4ed63088', component.options)\n } else {\n api.reload('4ed63088', component.options)\n }\n module.hot.accept(\"./ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true\", function () {\n api.rerender('4ed63088', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue\"\nexport default component.exports","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=script&setup=true&lang=ts\"","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=script&lang=ts\"","export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=template&id=171ef054&scoped=true\"","export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=template&id=4ed63088&scoped=true\"","export * from \"-!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppType.vue?vue&type=style&index=0&id=171ef054&scoped=true&lang=scss\"","export * from \"-!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ShowcaseType.vue?vue&type=style&index=0&id=4ed63088&scoped=true&lang=scss\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js b/dist/apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js new file mode 100644 index 0000000000000..1d3110ce07715 --- /dev/null +++ b/dist/apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js @@ -0,0 +1,642 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["apps_updatenotification_src_components_AppChangelogDialog_vue"],{ + +/***/ "./apps/updatenotification/src/composables/useMarkdown.ts": +/*!****************************************************************!*\ + !*** ./apps/updatenotification/src/composables/useMarkdown.ts ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ useMarkdown: () => (/* binding */ useMarkdown) +/* harmony export */ }); +/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! marked */ "./node_modules/marked/lib/marked.esm.js"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dompurify */ "./node_modules/dompurify/dist/purify.js"); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_1__); + + + +const useMarkdown = (text, minHeadingLevel) => { + const minHeading = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => { + var _minHeadingLevel$valu; + return Math.min(Math.max((_minHeadingLevel$valu = minHeadingLevel.value) !== null && _minHeadingLevel$valu !== void 0 ? _minHeadingLevel$valu : 1, 1), 6); + }); + const renderer = new marked__WEBPACK_IMPORTED_MODULE_0__.marked.Renderer(); + renderer.link = function (href, title, text) { + let out = "'; + return out; + }; + renderer.image = function (href, title, text) { + if (text) { + return text; + } + return title !== null && title !== void 0 ? title : ''; + }; + renderer.heading = (text, level) => { + const headingLevel = Math.max(minHeading.value, level); + return "").concat(text, ""); + }; + const html = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => { + var _text$value; + return dompurify__WEBPACK_IMPORTED_MODULE_1___default().sanitize((0,marked__WEBPACK_IMPORTED_MODULE_0__.marked)(((_text$value = text.value) !== null && _text$value !== void 0 ? _text$value : '').trim(), { + renderer, + gfm: false, + breaks: false, + pedantic: false + }), { + SAFE_FOR_JQUERY: true, + ALLOWED_TAGS: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'strong', 'p', 'a', 'ul', 'ol', 'li', 'em', 'del', 'blockquote'] + }); + }); + return { + html + }; +}; + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts": +/*!************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts ***! + \************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDialog.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDialog.mjs"); +/* harmony import */ var _Markdown_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Markdown.vue */ "./apps/updatenotification/src/components/Markdown.vue"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_5__.defineComponent)({ + __name: 'AppChangelogDialog', + props: { + appId: { + type: String, + required: true + }, + version: { + type: String, + required: false, + default: undefined + }, + open: { + type: Boolean, + required: false, + default: true + } + }, + emits: ["dismiss", "update:open"], + setup(__props, _ref) { + var _props$version; + let { + emit + } = _ref; + const props = __props; + const dialogButtons = [{ + label: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('updatenotification', 'Give feedback'), + callback: () => { + window.open("https://apps.nextcloud.com/apps/".concat(props.appId, "#comments"), '_blank', 'noreferrer noopener'); + } + }, { + label: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('updatenotification', 'Get started'), + type: 'primary', + callback: () => { + emit('dismiss'); + emit('update:open', false); + } + }]; + const appName = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(props.appId); + const appVersion = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)((_props$version = props.version) !== null && _props$version !== void 0 ? _props$version : ''); + const markdown = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(''); + (0,vue__WEBPACK_IMPORTED_MODULE_5__.watchEffect)(() => { + const url = props.version ? (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateOcsUrl)('/apps/updatenotification/api/v1/changelog/{app}?version={version}', { + version: props.version, + app: props.appId + }) : (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateOcsUrl)('/apps/updatenotification/api/v1/changelog/{app}', { + version: props.version, + app: props.appId + }); + _nextcloud_axios__WEBPACK_IMPORTED_MODULE_2__["default"].get(url).then(_ref2 => { + let { + data + } = _ref2; + appName.value = data.ocs.data.appName; + appVersion.value = data.ocs.data.version; + markdown.value = data.ocs.data.content; + }).catch(error => { + var _error$response; + if ((error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 404) { + appName.value = props.appId; + markdown.value = (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('updatenotification', 'No changelog available'); + } else { + console.error('Failed to load changelog entry', error); + emit('update:open', false); + } + }); + }); + return { + __sfc: true, + props, + emit, + dialogButtons, + appName, + appVersion, + markdown, + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, + NcDialog: _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_3__["default"], + Markdown: _Markdown_vue__WEBPACK_IMPORTED_MODULE_4__["default"] + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=script&setup=true&lang=ts": +/*!**************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=script&setup=true&lang=ts ***! + \**************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _composables_useMarkdown__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../composables/useMarkdown */ "./apps/updatenotification/src/composables/useMarkdown.ts"); + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_1__.defineComponent)({ + __name: 'Markdown', + props: { + markdown: { + type: String, + required: true + }, + minHeadingLevel: { + type: Number, + required: false, + default: 2 + } + }, + setup(__props) { + const props = __props; + const { + html + } = (0,_composables_useMarkdown__WEBPACK_IMPORTED_MODULE_0__.useMarkdown)((0,vue__WEBPACK_IMPORTED_MODULE_1__.toRef)(props, 'markdown'), (0,vue__WEBPACK_IMPORTED_MODULE_1__.toRef)(props, 'minHeadingLevel')); + return { + __sfc: true, + props, + html + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c(_setup.NcDialog, { + attrs: { + "content-classes": "app-changelog-dialog", + buttons: _setup.dialogButtons, + name: _setup.t("updatenotification", "What's new in {app} {version}", { + app: _setup.appName, + version: _setup.appVersion + }), + open: _vm.open && _setup.markdown !== undefined, + size: "normal" + }, + on: { + "update:open": function ($event) { + return _vm.$emit("update:open", $event); + } + } + }, [_c(_setup.Markdown, { + staticClass: "app-changelog-dialog__text", + attrs: { + markdown: _setup.markdown, + "min-heading-level": 3 + } + })], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=template&id=06e80181&scoped=true": +/*!****************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=template&id=06e80181&scoped=true ***! + \****************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c("div", { + staticClass: "markdown", + domProps: { + innerHTML: _vm._s(_setup.html) + } + }); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `[data-v-ee431ca6] .app-changelog-dialog { + min-height: 50vh !important; +} +.app-changelog-dialog__text[data-v-ee431ca6] { + padding-inline: 14px; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.markdown[data-v-06e80181] ul { + list-style: disc; + padding-inline-start: 20px; +} +.markdown[data-v-06e80181] h3, .markdown[data-v-06e80181] h4, .markdown[data-v-06e80181] h5, .markdown[data-v-06e80181] h6 { + font-weight: 600; + line-height: 1.5; + margin-top: 24px; + margin-bottom: 12px; + color: var(--color-main-text); +} +.markdown[data-v-06e80181] h3 { + font-size: 20px; +} +.markdown[data-v-06e80181] h4 { + font-size: 18px; +} +.markdown[data-v-06e80181] h5 { + font-size: 17px; +} +.markdown[data-v-06e80181] h6 { + font-size: var(--default-font-size); +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_style_index_0_id_ee431ca6_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_style_index_0_id_ee431ca6_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_style_index_0_id_ee431ca6_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_style_index_0_id_ee431ca6_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_style_index_0_id_ee431ca6_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_06e80181_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_06e80181_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_06e80181_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_06e80181_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_06e80181_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./apps/updatenotification/src/components/AppChangelogDialog.vue": +/*!***********************************************************************!*\ + !*** ./apps/updatenotification/src/components/AppChangelogDialog.vue ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppChangelogDialog_vue_vue_type_template_id_ee431ca6_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true */ "./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true"); +/* harmony import */ var _AppChangelogDialog_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts */ "./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _AppChangelogDialog_vue_vue_type_style_index_0_id_ee431ca6_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss */ "./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppChangelogDialog_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppChangelogDialog_vue_vue_type_template_id_ee431ca6_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppChangelogDialog_vue_vue_type_template_id_ee431ca6_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "ee431ca6", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/updatenotification/src/components/AppChangelogDialog.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/updatenotification/src/components/Markdown.vue": +/*!*************************************************************!*\ + !*** ./apps/updatenotification/src/components/Markdown.vue ***! + \*************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Markdown_vue_vue_type_template_id_06e80181_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Markdown.vue?vue&type=template&id=06e80181&scoped=true */ "./apps/updatenotification/src/components/Markdown.vue?vue&type=template&id=06e80181&scoped=true"); +/* harmony import */ var _Markdown_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Markdown.vue?vue&type=script&setup=true&lang=ts */ "./apps/updatenotification/src/components/Markdown.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _Markdown_vue_vue_type_style_index_0_id_06e80181_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss */ "./apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _Markdown_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _Markdown_vue_vue_type_template_id_06e80181_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _Markdown_vue_vue_type_template_id_06e80181_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "06e80181", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/updatenotification/src/components/Markdown.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts": +/*!**********************************************************************************************************!*\ + !*** ./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/updatenotification/src/components/Markdown.vue?vue&type=script&setup=true&lang=ts": +/*!************************************************************************************************!*\ + !*** ./apps/updatenotification/src/components/Markdown.vue?vue&type=script&setup=true&lang=ts ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true": +/*!*****************************************************************************************************************!*\ + !*** ./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true ***! + \*****************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_template_id_ee431ca6_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_template_id_ee431ca6_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_template_id_ee431ca6_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true"); + + +/***/ }), + +/***/ "./apps/updatenotification/src/components/Markdown.vue?vue&type=template&id=06e80181&scoped=true": +/*!*******************************************************************************************************!*\ + !*** ./apps/updatenotification/src/components/Markdown.vue?vue&type=template&id=06e80181&scoped=true ***! + \*******************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_06e80181_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_06e80181_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_06e80181_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=template&id=06e80181&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=template&id=06e80181&scoped=true"); + + +/***/ }), + +/***/ "./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss": +/*!********************************************************************************************************************************!*\ + !*** ./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss ***! + \********************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppChangelogDialog_vue_vue_type_style_index_0_id_ee431ca6_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss": +/*!**********************************************************************************************************************!*\ + !*** ./apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss ***! + \**********************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_06e80181_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss"); + + +/***/ }) + +}]); +//# sourceMappingURL=apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js.map?v=9e5f7bfe4a996916f666 \ No newline at end of file diff --git a/dist/apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js.map b/dist/apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js.map new file mode 100644 index 0000000000000..2f36e6026e873 --- /dev/null +++ b/dist/apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"apps_updatenotification_src_components_AppChangelogDialog_vue-apps_updatenotification_src_components_AppChangelogDialog_vue.js?v=9e5f7bfe4a996916f666","mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;;;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA;;;;;;;;;;;;;;;ACAA","sources":["webpack:///nextcloud/apps/updatenotification/src/composables/useMarkdown.ts","webpack:///nextcloud/apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/updatenotification/src/components/Markdown.vue?vue&type=script&setup=true&lang=ts","webpack:///nextcloud/apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true","webpack:///nextcloud/apps/updatenotification/src/components/Markdown.vue?vue&type=template&id=06e80181&scoped=true","webpack:///nextcloud/apps/updatenotification/src/components/AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss","webpack:///nextcloud/apps/updatenotification/src/components/Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss","webpack://nextcloud/./apps/updatenotification/src/components/AppChangelogDialog.vue?99f4","webpack://nextcloud/./apps/updatenotification/src/components/Markdown.vue?e216","webpack:///nextcloud/apps/updatenotification/src/components/AppChangelogDialog.vue","webpack:///nextcloud/apps/updatenotification/src/components/Markdown.vue","webpack://nextcloud/./apps/updatenotification/src/components/AppChangelogDialog.vue?6c25","webpack://nextcloud/./apps/updatenotification/src/components/Markdown.vue?75dd","webpack://nextcloud/./apps/updatenotification/src/components/AppChangelogDialog.vue?aa05","webpack://nextcloud/./apps/updatenotification/src/components/AppChangelogDialog.vue?e04f"],"sourcesContent":["import { marked } from 'marked';\nimport { computed } from 'vue';\nimport dompurify from 'dompurify';\nexport const useMarkdown = (text, minHeadingLevel) => {\n const minHeading = computed(() => {\n var _minHeadingLevel$valu;\n return Math.min(Math.max((_minHeadingLevel$valu = minHeadingLevel.value) !== null && _minHeadingLevel$valu !== void 0 ? _minHeadingLevel$valu : 1, 1), 6);\n });\n const renderer = new marked.Renderer();\n renderer.link = function (href, title, text) {\n let out = \"';\n return out;\n };\n renderer.image = function (href, title, text) {\n if (text) {\n return text;\n }\n return title !== null && title !== void 0 ? title : '';\n };\n renderer.heading = (text, level) => {\n const headingLevel = Math.max(minHeading.value, level);\n return \"\").concat(text, \"\");\n };\n const html = computed(() => {\n var _text$value;\n return dompurify.sanitize(marked(((_text$value = text.value) !== null && _text$value !== void 0 ? _text$value : '').trim(), {\n renderer,\n gfm: false,\n breaks: false,\n pedantic: false\n }), {\n SAFE_FOR_JQUERY: true,\n ALLOWED_TAGS: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'strong', 'p', 'a', 'ul', 'ol', 'li', 'em', 'del', 'blockquote']\n });\n });\n return {\n html\n };\n};","import { defineComponent as _defineComponent } from 'vue';\nimport { translate as t } from '@nextcloud/l10n';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { ref, watchEffect } from 'vue';\nimport axios from '@nextcloud/axios';\nimport NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js';\nimport Markdown from './Markdown.vue';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AppChangelogDialog',\n props: {\n appId: {\n type: String,\n required: true\n },\n version: {\n type: String,\n required: false,\n default: undefined\n },\n open: {\n type: Boolean,\n required: false,\n default: true\n }\n },\n emits: [\"dismiss\", \"update:open\"],\n setup(__props, _ref) {\n var _props$version;\n let {\n emit\n } = _ref;\n const props = __props;\n const dialogButtons = [{\n label: t('updatenotification', 'Give feedback'),\n callback: () => {\n window.open(\"https://apps.nextcloud.com/apps/\".concat(props.appId, \"#comments\"), '_blank', 'noreferrer noopener');\n }\n }, {\n label: t('updatenotification', 'Get started'),\n type: 'primary',\n callback: () => {\n emit('dismiss');\n emit('update:open', false);\n }\n }];\n const appName = ref(props.appId);\n const appVersion = ref((_props$version = props.version) !== null && _props$version !== void 0 ? _props$version : '');\n const markdown = ref('');\n watchEffect(() => {\n const url = props.version ? generateOcsUrl('/apps/updatenotification/api/v1/changelog/{app}?version={version}', {\n version: props.version,\n app: props.appId\n }) : generateOcsUrl('/apps/updatenotification/api/v1/changelog/{app}', {\n version: props.version,\n app: props.appId\n });\n axios.get(url).then(_ref2 => {\n let {\n data\n } = _ref2;\n appName.value = data.ocs.data.appName;\n appVersion.value = data.ocs.data.version;\n markdown.value = data.ocs.data.content;\n }).catch(error => {\n var _error$response;\n if ((error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 404) {\n appName.value = props.appId;\n markdown.value = t('updatenotification', 'No changelog available');\n } else {\n console.error('Failed to load changelog entry', error);\n emit('update:open', false);\n }\n });\n });\n return {\n __sfc: true,\n props,\n emit,\n dialogButtons,\n appName,\n appVersion,\n markdown,\n t,\n NcDialog,\n Markdown\n };\n }\n});","import { defineComponent as _defineComponent } from 'vue';\nimport { toRef } from 'vue';\nimport { useMarkdown } from '../composables/useMarkdown';\nexport default /*#__PURE__*/_defineComponent({\n __name: 'Markdown',\n props: {\n markdown: {\n type: String,\n required: true\n },\n minHeadingLevel: {\n type: Number,\n required: false,\n default: 2\n }\n },\n setup(__props) {\n const props = __props;\n const {\n html\n } = useMarkdown(toRef(props, 'markdown'), toRef(props, 'minHeadingLevel'));\n return {\n __sfc: true,\n props,\n html\n };\n }\n});","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(_setup.NcDialog, {\n attrs: {\n \"content-classes\": \"app-changelog-dialog\",\n buttons: _setup.dialogButtons,\n name: _setup.t(\"updatenotification\", \"What's new in {app} {version}\", {\n app: _setup.appName,\n version: _setup.appVersion\n }),\n open: _vm.open && _setup.markdown !== undefined,\n size: \"normal\"\n },\n on: {\n \"update:open\": function ($event) {\n return _vm.$emit(\"update:open\", $event);\n }\n }\n }, [_c(_setup.Markdown, {\n staticClass: \"app-changelog-dialog__text\",\n attrs: {\n markdown: _setup.markdown,\n \"min-heading-level\": 3\n }\n })], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"div\", {\n staticClass: \"markdown\",\n domProps: {\n innerHTML: _vm._s(_setup.html)\n }\n });\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `[data-v-ee431ca6] .app-changelog-dialog {\n min-height: 50vh !important;\n}\n.app-changelog-dialog__text[data-v-ee431ca6] {\n padding-inline: 14px;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.markdown[data-v-06e80181] ul {\n list-style: disc;\n padding-inline-start: 20px;\n}\n.markdown[data-v-06e80181] h3, .markdown[data-v-06e80181] h4, .markdown[data-v-06e80181] h5, .markdown[data-v-06e80181] h6 {\n font-weight: 600;\n line-height: 1.5;\n margin-top: 24px;\n margin-bottom: 12px;\n color: var(--color-main-text);\n}\n.markdown[data-v-06e80181] h3 {\n font-size: 20px;\n}\n.markdown[data-v-06e80181] h4 {\n font-size: 18px;\n}\n.markdown[data-v-06e80181] h5 {\n font-size: 17px;\n}\n.markdown[data-v-06e80181] h6 {\n font-size: var(--default-font-size);\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true\"\nimport script from \"./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ee431ca6\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('ee431ca6')) {\n api.createRecord('ee431ca6', component.options)\n } else {\n api.reload('ee431ca6', component.options)\n }\n module.hot.accept(\"./AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true\", function () {\n api.rerender('ee431ca6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/updatenotification/src/components/AppChangelogDialog.vue\"\nexport default component.exports","import { render, staticRenderFns } from \"./Markdown.vue?vue&type=template&id=06e80181&scoped=true\"\nimport script from \"./Markdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Markdown.vue?vue&type=script&setup=true&lang=ts\"\nimport style0 from \"./Markdown.vue?vue&type=style&index=0&id=06e80181&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06e80181\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('06e80181')) {\n api.createRecord('06e80181', component.options)\n } else {\n api.reload('06e80181', component.options)\n }\n module.hot.accept(\"./Markdown.vue?vue&type=template&id=06e80181&scoped=true\", function () {\n api.rerender('06e80181', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"apps/updatenotification/src/components/Markdown.vue\"\nexport default component.exports","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=script&setup=true&lang=ts\"","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&setup=true&lang=ts\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&setup=true&lang=ts\"","export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=template&id=ee431ca6&scoped=true\"","export * from \"-!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppChangelogDialog.vue?vue&type=style&index=0&id=ee431ca6&scoped=true&lang=scss\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js b/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js new file mode 100644 index 0000000000000..e1d71865bc8a2 --- /dev/null +++ b/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js @@ -0,0 +1,316 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["core_src_components_LegacyDialogPrompt_vue"],{ + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts": +/*!******************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts ***! + \******************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDialog.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDialog.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcTextField_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcTextField.js */ "./node_modules/@nextcloud/vue/dist/Components/NcTextField.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcPasswordField_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcPasswordField.js */ "./node_modules/@nextcloud/vue/dist/Components/NcPasswordField.mjs"); + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ + name: 'LegacyDialogPrompt', + components: { + NcDialog: _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_1__["default"], + NcTextField: _nextcloud_vue_dist_Components_NcTextField_js__WEBPACK_IMPORTED_MODULE_2__["default"], + NcPasswordField: _nextcloud_vue_dist_Components_NcPasswordField_js__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + name: { + type: String, + required: true + }, + text: { + type: String, + required: true + }, + isPassword: { + type: Boolean, + required: true + }, + inputName: { + type: String, + default: 'prompt-input' + } + }, + emits: ['close'], + data() { + return { + inputValue: '' + }; + }, + computed: { + buttons() { + return [{ + label: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('core', 'No'), + callback: () => this.$emit('close', false, this.inputValue) + }, { + label: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('core', 'Yes'), + type: 'primary', + callback: () => this.$emit('close', true, this.inputValue) + }]; + } + }, + mounted() { + this.$nextTick(() => { + var _this$$refs$input, _this$$refs$input$foc; + return (_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 || (_this$$refs$input$foc = _this$$refs$input.focus) === null || _this$$refs$input$foc === void 0 ? void 0 : _this$$refs$input$foc.call(_this$$refs$input); + }); + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true": +/*!*******************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true ***! + \*******************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c("NcDialog", { + attrs: { + "dialog-classes": "legacy-prompt__dialog", + buttons: _vm.buttons, + name: _vm.name + }, + on: { + "update:open": function ($event) { + return _vm.$emit("close", false, _vm.inputValue); + } + } + }, [_c("p", { + staticClass: "legacy-prompt__text", + domProps: { + textContent: _vm._s(_vm.text) + } + }), _vm._v(" "), _vm.isPassword ? _c("NcPasswordField", { + ref: "input", + staticClass: "legacy-prompt__input", + attrs: { + autocomplete: "new-password", + label: _vm.name, + name: _vm.inputName, + value: _vm.inputValue + }, + on: { + "update:value": function ($event) { + _vm.inputValue = $event; + } + } + }) : _c("NcTextField", { + ref: "input", + staticClass: "legacy-prompt__input", + attrs: { + label: _vm.name, + name: _vm.inputName, + value: _vm.inputValue + }, + on: { + "update:value": function ($event) { + _vm.inputValue = $event; + } + } + })], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.legacy-prompt__text[data-v-e8e6d9be] { + margin-block: 0 0.75em; +} +.legacy-prompt__input[data-v-e8e6d9be] { + margin-block: 0 1em; +} +[data-v-e8e6d9be] .legacy-prompt__dialog .dialog__actions { + min-width: calc(100% - 12px); + justify-content: space-between; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./core/src/components/LegacyDialogPrompt.vue": +/*!****************************************************!*\ + !*** ./core/src/components/LegacyDialogPrompt.vue ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true */ "./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true"); +/* harmony import */ var _LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LegacyDialogPrompt.vue?vue&type=script&lang=ts */ "./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts"); +/* harmony import */ var _LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss */ "./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "e8e6d9be", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "core/src/components/LegacyDialogPrompt.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts": +/*!****************************************************************************!*\ + !*** ./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true": +/*!**********************************************************************************************!*\ + !*** ./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true ***! + \**********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true"); + + +/***/ }), + +/***/ "./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss": +/*!*************************************************************************************************************!*\ + !*** ./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss"); + + +/***/ }) + +}]); +//# sourceMappingURL=core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map?v=0191abdcf4a0f3a53b42 \ No newline at end of file diff --git a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map b/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map new file mode 100644 index 0000000000000..b938c6643b2e2 --- /dev/null +++ b/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map @@ -0,0 +1 @@ +{"version":3,"file":"core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js?v=0191abdcf4a0f3a53b42","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA","sources":["webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts","webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true","webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?9901","webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?c3e8","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?4471","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?aa3c"],"sourcesContent":["import { translate as t } from '@nextcloud/l10n';\nimport { defineComponent } from 'vue';\nimport NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js';\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js';\nimport NcPasswordField from '@nextcloud/vue/dist/Components/NcPasswordField.js';\nexport default defineComponent({\n name: 'LegacyDialogPrompt',\n components: {\n NcDialog,\n NcTextField,\n NcPasswordField\n },\n props: {\n name: {\n type: String,\n required: true\n },\n text: {\n type: String,\n required: true\n },\n isPassword: {\n type: Boolean,\n required: true\n },\n inputName: {\n type: String,\n default: 'prompt-input'\n }\n },\n emits: ['close'],\n data() {\n return {\n inputValue: ''\n };\n },\n computed: {\n buttons() {\n return [{\n label: t('core', 'No'),\n callback: () => this.$emit('close', false, this.inputValue)\n }, {\n label: t('core', 'Yes'),\n type: 'primary',\n callback: () => this.$emit('close', true, this.inputValue)\n }];\n }\n },\n mounted() {\n this.$nextTick(() => {\n var _this$$refs$input, _this$$refs$input$foc;\n return (_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 || (_this$$refs$input$foc = _this$$refs$input.focus) === null || _this$$refs$input$foc === void 0 ? void 0 : _this$$refs$input$foc.call(_this$$refs$input);\n });\n }\n});","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"NcDialog\", {\n attrs: {\n \"dialog-classes\": \"legacy-prompt__dialog\",\n buttons: _vm.buttons,\n name: _vm.name\n },\n on: {\n \"update:open\": function ($event) {\n return _vm.$emit(\"close\", false, _vm.inputValue);\n }\n }\n }, [_c(\"p\", {\n staticClass: \"legacy-prompt__text\",\n domProps: {\n textContent: _vm._s(_vm.text)\n }\n }), _vm._v(\" \"), _vm.isPassword ? _c(\"NcPasswordField\", {\n ref: \"input\",\n staticClass: \"legacy-prompt__input\",\n attrs: {\n autocomplete: \"new-password\",\n label: _vm.name,\n name: _vm.inputName,\n value: _vm.inputValue\n },\n on: {\n \"update:value\": function ($event) {\n _vm.inputValue = $event;\n }\n }\n }) : _c(\"NcTextField\", {\n ref: \"input\",\n staticClass: \"legacy-prompt__input\",\n attrs: {\n label: _vm.name,\n name: _vm.inputName,\n value: _vm.inputValue\n },\n on: {\n \"update:value\": function ($event) {\n _vm.inputValue = $event;\n }\n }\n })], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.legacy-prompt__text[data-v-e8e6d9be] {\n margin-block: 0 0.75em;\n}\n.legacy-prompt__input[data-v-e8e6d9be] {\n margin-block: 0 1em;\n}\n[data-v-e8e6d9be] .legacy-prompt__dialog .dialog__actions {\n min-width: calc(100% - 12px);\n justify-content: space-between;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true\"\nimport script from \"./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"\nexport * from \"./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"\nimport style0 from \"./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8e6d9be\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('e8e6d9be')) {\n api.createRecord('e8e6d9be', component.options)\n } else {\n api.reload('e8e6d9be', component.options)\n }\n module.hot.accept(\"./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true\", function () {\n api.rerender('e8e6d9be', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"core/src/components/LegacyDialogPrompt.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"","export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true\"","export * from \"-!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js b/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js new file mode 100644 index 0000000000000..7861c7d8a3e63 --- /dev/null +++ b/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js @@ -0,0 +1,10902 @@ +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["core_src_utils_RedirectUnsupportedBrowsers_js"],{ + +/***/ "./node_modules/@nextcloud/browserslist-config/browserlist.config.js": +/*!***************************************************************************!*\ + !*** ./node_modules/@nextcloud/browserslist-config/browserlist.config.js ***! + \***************************************************************************/ +/***/ ((module) => { + +module.exports = [ + '>0.25%', + 'not op_mini all', + 'not dead', + 'Firefox ESR', +]; + + +/***/ }), + +/***/ "./core/src/logger.js": +/*!****************************!*\ + !*** ./core/src/logger.js ***! + \****************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/logger */ "./node_modules/@nextcloud/logger/dist/index.js"); +/** + * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + + + +const getLogger = user => { + if (user === null) { + return (0,_nextcloud_logger__WEBPACK_IMPORTED_MODULE_1__.getLoggerBuilder)().setApp('core').build(); + } + return (0,_nextcloud_logger__WEBPACK_IMPORTED_MODULE_1__.getLoggerBuilder)().setApp('core').setUid(user.uid).build(); +}; +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getLogger((0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__.getCurrentUser)())); + +/***/ }), + +/***/ "./core/src/services/BrowserStorageService.js": +/*!****************************************************!*\ + !*** ./core/src/services/BrowserStorageService.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_browser_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/browser-storage */ "./node_modules/@nextcloud/browser-storage/dist/index.js"); +/** + * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_nextcloud_browser_storage__WEBPACK_IMPORTED_MODULE_0__.getBuilder)('core').clearOnLogout().persist().build()); + +/***/ }), + +/***/ "./core/src/services/BrowsersListService.js": +/*!**************************************************!*\ + !*** ./core/src/services/BrowsersListService.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ supportedBrowsers: () => (/* binding */ supportedBrowsers), +/* harmony export */ supportedBrowsersRegExp: () => (/* binding */ supportedBrowsersRegExp) +/* harmony export */ }); +/* harmony import */ var browserslist_useragent_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! browserslist-useragent-regexp */ "./node_modules/browserslist-useragent-regexp/dist/index.js"); +/* harmony import */ var browserslist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! browserslist */ "./node_modules/browserslist/index.js"); +/* harmony import */ var browserslist__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(browserslist__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/browserslist-config */ "./node_modules/@nextcloud/browserslist-config/browserlist.config.js"); +/* harmony import */ var _nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2__); +/** + * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + + +// eslint-disable-next-line n/no-extraneous-import + + + +// Generate a regex that matches user agents to detect incompatible browsers +const supportedBrowsersRegExp = (0,browserslist_useragent_regexp__WEBPACK_IMPORTED_MODULE_0__.getUserAgentRegex)({ + allowHigherVersions: true, + browsers: (_nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2___default()) +}); +const supportedBrowsers = browserslist__WEBPACK_IMPORTED_MODULE_1___default()((_nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2___default())); + +/***/ }), + +/***/ "./core/src/utils/RedirectUnsupportedBrowsers.js": +/*!*******************************************************!*\ + !*** ./core/src/utils/RedirectUnsupportedBrowsers.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ browserStorageKey: () => (/* binding */ browserStorageKey), +/* harmony export */ testSupportedBrowser: () => (/* binding */ testSupportedBrowser) +/* harmony export */ }); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _services_BrowsersListService_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/BrowsersListService.js */ "./core/src/services/BrowsersListService.js"); +/* harmony import */ var _services_BrowserStorageService_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/BrowserStorageService.js */ "./core/src/services/BrowserStorageService.js"); +/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../logger.js */ "./core/src/logger.js"); +/* provided dependency */ var Buffer = __webpack_require__(/*! ./node_modules/buffer/index.js */ "./node_modules/buffer/index.js")["Buffer"]; +/** + * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ + + + + + +const browserStorageKey = 'unsupported-browser-ignore'; +const redirectPath = (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateUrl)('/unsupported'); +const isBrowserOverridden = _services_BrowserStorageService_js__WEBPACK_IMPORTED_MODULE_2__["default"].getItem(browserStorageKey) === 'true'; + +/** + * Test the current browser user agent against our official browserslist config + * and redirect if unsupported + */ +const testSupportedBrowser = function () { + if (_services_BrowsersListService_js__WEBPACK_IMPORTED_MODULE_1__.supportedBrowsersRegExp.test(navigator.userAgent)) { + _logger_js__WEBPACK_IMPORTED_MODULE_3__["default"].debug('this browser is officially supported ! 🚀'); + return; + } + + // If incompatible BUT ignored, let's keep going + if (isBrowserOverridden) { + _logger_js__WEBPACK_IMPORTED_MODULE_3__["default"].debug('this browser is NOT supported but has been manually overridden ! ⚠️'); + return; + } + + // If incompatible, NOT overridden AND NOT already on the warning page, + // redirect to the unsupported warning page + if (window.location.pathname.indexOf(redirectPath) === -1) { + const redirectUrl = window.location.href.replace(window.location.origin, ''); + const base64Param = Buffer.from(redirectUrl).toString('base64'); + history.pushState(null, null, "".concat(redirectPath, "?redirect_url=").concat(base64Param)); + window.location.reload(); + } +}; + +/***/ }), + +/***/ "./node_modules/browserslist/browser.js": +/*!**********************************************!*\ + !*** ./node_modules/browserslist/browser.js ***! + \**********************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var BrowserslistError = __webpack_require__(/*! ./error */ "./node_modules/browserslist/error.js") + +function noop() {} + +module.exports = { + loadQueries: function loadQueries() { + throw new BrowserslistError( + 'Sharable configs are not supported in client-side build of Browserslist' + ) + }, + + getStat: function getStat(opts) { + return opts.stats + }, + + loadConfig: function loadConfig(opts) { + if (opts.config) { + throw new BrowserslistError( + 'Browserslist config are not supported in client-side build' + ) + } + }, + + loadCountry: function loadCountry() { + throw new BrowserslistError( + 'Country statistics are not supported ' + + 'in client-side build of Browserslist' + ) + }, + + loadFeature: function loadFeature() { + throw new BrowserslistError( + 'Supports queries are not available in client-side build of Browserslist' + ) + }, + + currentNode: function currentNode(resolve, context) { + return resolve(['maintained node versions'], context)[0] + }, + + parseConfig: noop, + + readConfig: noop, + + findConfig: noop, + + clearCaches: noop, + + oldDataWarning: noop, + + env: {} +} + + +/***/ }), + +/***/ "./node_modules/browserslist/error.js": +/*!********************************************!*\ + !*** ./node_modules/browserslist/error.js ***! + \********************************************/ +/***/ ((module) => { + +function BrowserslistError(message) { + this.name = 'BrowserslistError' + this.message = message + this.browserslist = true + if (Error.captureStackTrace) { + Error.captureStackTrace(this, BrowserslistError) + } +} + +BrowserslistError.prototype = Error.prototype + +module.exports = BrowserslistError + + +/***/ }), + +/***/ "./node_modules/browserslist/index.js": +/*!********************************************!*\ + !*** ./node_modules/browserslist/index.js ***! + \********************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var jsReleases = __webpack_require__(/*! node-releases/data/processed/envs.json */ "./node_modules/node-releases/data/processed/envs.json") +var agents = (__webpack_require__(/*! caniuse-lite/dist/unpacker/agents */ "./node_modules/caniuse-lite/dist/unpacker/agents.js").agents) +var jsEOL = __webpack_require__(/*! node-releases/data/release-schedule/release-schedule.json */ "./node_modules/node-releases/data/release-schedule/release-schedule.json") +var path = __webpack_require__(/*! path */ "?3465") +var e2c = __webpack_require__(/*! electron-to-chromium/versions */ "./node_modules/electron-to-chromium/versions.js") + +var BrowserslistError = __webpack_require__(/*! ./error */ "./node_modules/browserslist/error.js") +var parse = __webpack_require__(/*! ./parse */ "./node_modules/browserslist/parse.js") +var env = __webpack_require__(/*! ./node */ "./node_modules/browserslist/browser.js") // Will load browser.js in webpack + +var YEAR = 365.259641 * 24 * 60 * 60 * 1000 +var ANDROID_EVERGREEN_FIRST = '37' +var OP_MOB_BLINK_FIRST = 14 + +// Helpers + +function isVersionsMatch(versionA, versionB) { + return (versionA + '.').indexOf(versionB + '.') === 0 +} + +function isEolReleased(name) { + var version = name.slice(1) + return browserslist.nodeVersions.some(function (i) { + return isVersionsMatch(i, version) + }) +} + +function normalize(versions) { + return versions.filter(function (version) { + return typeof version === 'string' + }) +} + +function normalizeElectron(version) { + var versionToUse = version + if (version.split('.').length === 3) { + versionToUse = version.split('.').slice(0, -1).join('.') + } + return versionToUse +} + +function nameMapper(name) { + return function mapName(version) { + return name + ' ' + version + } +} + +function getMajor(version) { + return parseInt(version.split('.')[0]) +} + +function getMajorVersions(released, number) { + if (released.length === 0) return [] + var majorVersions = uniq(released.map(getMajor)) + var minimum = majorVersions[majorVersions.length - number] + if (!minimum) { + return released + } + var selected = [] + for (var i = released.length - 1; i >= 0; i--) { + if (minimum > getMajor(released[i])) break + selected.unshift(released[i]) + } + return selected +} + +function uniq(array) { + var filtered = [] + for (var i = 0; i < array.length; i++) { + if (filtered.indexOf(array[i]) === -1) filtered.push(array[i]) + } + return filtered +} + +function fillUsage(result, name, data) { + for (var i in data) { + result[name + ' ' + i] = data[i] + } +} + +function generateFilter(sign, version) { + version = parseFloat(version) + if (sign === '>') { + return function (v) { + return parseFloat(v) > version + } + } else if (sign === '>=') { + return function (v) { + return parseFloat(v) >= version + } + } else if (sign === '<') { + return function (v) { + return parseFloat(v) < version + } + } else { + return function (v) { + return parseFloat(v) <= version + } + } +} + +function generateSemverFilter(sign, version) { + version = version.split('.').map(parseSimpleInt) + version[1] = version[1] || 0 + version[2] = version[2] || 0 + if (sign === '>') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(v, version) > 0 + } + } else if (sign === '>=') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(v, version) >= 0 + } + } else if (sign === '<') { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(version, v) > 0 + } + } else { + return function (v) { + v = v.split('.').map(parseSimpleInt) + return compareSemver(version, v) >= 0 + } + } +} + +function parseSimpleInt(x) { + return parseInt(x) +} + +function compare(a, b) { + if (a < b) return -1 + if (a > b) return +1 + return 0 +} + +function compareSemver(a, b) { + return ( + compare(parseInt(a[0]), parseInt(b[0])) || + compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) || + compare(parseInt(a[2] || '0'), parseInt(b[2] || '0')) + ) +} + +// this follows the npm-like semver behavior +function semverFilterLoose(operator, range) { + range = range.split('.').map(parseSimpleInt) + if (typeof range[1] === 'undefined') { + range[1] = 'x' + } + // ignore any patch version because we only return minor versions + // range[2] = 'x' + switch (operator) { + case '<=': + return function (version) { + version = version.split('.').map(parseSimpleInt) + return compareSemverLoose(version, range) <= 0 + } + case '>=': + default: + return function (version) { + version = version.split('.').map(parseSimpleInt) + return compareSemverLoose(version, range) >= 0 + } + } +} + +// this follows the npm-like semver behavior +function compareSemverLoose(version, range) { + if (version[0] !== range[0]) { + return version[0] < range[0] ? -1 : +1 + } + if (range[1] === 'x') { + return 0 + } + if (version[1] !== range[1]) { + return version[1] < range[1] ? -1 : +1 + } + return 0 +} + +function resolveVersion(data, version) { + if (data.versions.indexOf(version) !== -1) { + return version + } else if (browserslist.versionAliases[data.name][version]) { + return browserslist.versionAliases[data.name][version] + } else { + return false + } +} + +function normalizeVersion(data, version) { + var resolved = resolveVersion(data, version) + if (resolved) { + return resolved + } else if (data.versions.length === 1) { + return data.versions[0] + } else { + return false + } +} + +function filterByYear(since, context) { + since = since / 1000 + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var versions = Object.keys(data.releaseDate).filter(function (v) { + var date = data.releaseDate[v] + return date !== null && date >= since + }) + return selected.concat(versions.map(nameMapper(data.name))) + }, []) +} + +function cloneData(data) { + return { + name: data.name, + versions: data.versions, + released: data.released, + releaseDate: data.releaseDate + } +} + +function byName(name, context) { + name = name.toLowerCase() + name = browserslist.aliases[name] || name + if (context.mobileToDesktop && browserslist.desktopNames[name]) { + var desktop = browserslist.data[browserslist.desktopNames[name]] + if (name === 'android') { + return normalizeAndroidData(cloneData(browserslist.data[name]), desktop) + } else { + var cloned = cloneData(desktop) + cloned.name = name + return cloned + } + } + return browserslist.data[name] +} + +function normalizeAndroidVersions(androidVersions, chromeVersions) { + var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST) + return androidVersions + .filter(function (version) { + return /^(?:[2-4]\.|[34]$)/.test(version) + }) + .concat(chromeVersions.slice(iFirstEvergreen)) +} + +function copyObject(obj) { + var copy = {} + for (var key in obj) { + copy[key] = obj[key] + } + return copy +} + +function normalizeAndroidData(android, chrome) { + android.released = normalizeAndroidVersions(android.released, chrome.released) + android.versions = normalizeAndroidVersions(android.versions, chrome.versions) + android.releaseDate = copyObject(android.releaseDate) + android.released.forEach(function (v) { + if (android.releaseDate[v] === undefined) { + android.releaseDate[v] = chrome.releaseDate[v] + } + }) + return android +} + +function checkName(name, context) { + var data = byName(name, context) + if (!data) throw new BrowserslistError('Unknown browser ' + name) + return data +} + +function unknownQuery(query) { + return new BrowserslistError( + 'Unknown browser query `' + + query + + '`. ' + + 'Maybe you are using old Browserslist or made typo in query.' + ) +} + +// Adjusts last X versions queries for some mobile browsers, +// where caniuse data jumps from a legacy version to the latest +function filterJumps(list, name, nVersions, context) { + var jump = 1 + switch (name) { + case 'android': + if (context.mobileToDesktop) return list + var released = browserslist.data.chrome.released + jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST) + break + case 'op_mob': + var latest = browserslist.data.op_mob.released.slice(-1)[0] + jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1 + break + default: + return list + } + if (nVersions <= jump) { + return list.slice(-1) + } + return list.slice(jump - 1 - nVersions) +} + +function isSupported(flags, withPartial) { + return ( + typeof flags === 'string' && + (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0)) + ) +} + +function resolve(queries, context) { + return parse(QUERIES, queries).reduce(function (result, node, index) { + if (node.not && index === 0) { + throw new BrowserslistError( + 'Write any browsers query (for instance, `defaults`) ' + + 'before `' + + node.query + + '`' + ) + } + var type = QUERIES[node.type] + var array = type.select.call(browserslist, context, node).map(function (j) { + var parts = j.split(' ') + if (parts[1] === '0') { + return parts[0] + ' ' + byName(parts[0], context).versions[0] + } else { + return j + } + }) + + if (node.compose === 'and') { + if (node.not) { + return result.filter(function (j) { + return array.indexOf(j) === -1 + }) + } else { + return result.filter(function (j) { + return array.indexOf(j) !== -1 + }) + } + } else { + if (node.not) { + var filter = {} + array.forEach(function (j) { + filter[j] = true + }) + return result.filter(function (j) { + return !filter[j] + }) + } + return result.concat(array) + } + }, []) +} + +function prepareOpts(opts) { + if (typeof opts === 'undefined') opts = {} + + if (typeof opts.path === 'undefined') { + opts.path = path.resolve ? path.resolve('.') : '.' + } + + return opts +} + +function prepareQueries(queries, opts) { + if (typeof queries === 'undefined' || queries === null) { + var config = browserslist.loadConfig(opts) + if (config) { + queries = config + } else { + queries = browserslist.defaults + } + } + + return queries +} + +function checkQueries(queries) { + if (!(typeof queries === 'string' || Array.isArray(queries))) { + throw new BrowserslistError( + 'Browser queries must be an array or string. Got ' + typeof queries + '.' + ) + } +} + +var cache = {} + +function browserslist(queries, opts) { + opts = prepareOpts(opts) + queries = prepareQueries(queries, opts) + checkQueries(queries) + + var context = { + ignoreUnknownVersions: opts.ignoreUnknownVersions, + dangerousExtend: opts.dangerousExtend, + mobileToDesktop: opts.mobileToDesktop, + path: opts.path, + env: opts.env + } + + env.oldDataWarning(browserslist.data) + var stats = env.getStat(opts, browserslist.data) + if (stats) { + context.customUsage = {} + for (var browser in stats) { + fillUsage(context.customUsage, browser, stats[browser]) + } + } + + var cacheKey = JSON.stringify([queries, context]) + if (cache[cacheKey]) return cache[cacheKey] + + var result = uniq(resolve(queries, context)).sort(function (name1, name2) { + name1 = name1.split(' ') + name2 = name2.split(' ') + if (name1[0] === name2[0]) { + // assumptions on caniuse data + // 1) version ranges never overlaps + // 2) if version is not a range, it never contains `-` + var version1 = name1[1].split('-')[0] + var version2 = name2[1].split('-')[0] + return compareSemver(version2.split('.'), version1.split('.')) + } else { + return compare(name1[0], name2[0]) + } + }) + if (!env.env.BROWSERSLIST_DISABLE_CACHE) { + cache[cacheKey] = result + } + return result +} + +browserslist.parse = function (queries, opts) { + opts = prepareOpts(opts) + queries = prepareQueries(queries, opts) + checkQueries(queries) + return parse(QUERIES, queries) +} + +// Will be filled by Can I Use data below +browserslist.cache = {} +browserslist.data = {} +browserslist.usage = { + global: {}, + custom: null +} + +// Default browsers query +browserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead'] + +// Browser names aliases +browserslist.aliases = { + fx: 'firefox', + ff: 'firefox', + ios: 'ios_saf', + explorer: 'ie', + blackberry: 'bb', + explorermobile: 'ie_mob', + operamini: 'op_mini', + operamobile: 'op_mob', + chromeandroid: 'and_chr', + firefoxandroid: 'and_ff', + ucandroid: 'and_uc', + qqandroid: 'and_qq' +} + +// Can I Use only provides a few versions for some browsers (e.g. and_chr). +// Fallback to a similar browser for unknown versions +// Note op_mob is not included as its chromium versions are not in sync with Opera desktop +browserslist.desktopNames = { + and_chr: 'chrome', + and_ff: 'firefox', + ie_mob: 'ie', + android: 'chrome' // has extra processing logic +} + +// Aliases to work with joined versions like `ios_saf 7.0-7.1` +browserslist.versionAliases = {} + +browserslist.clearCaches = env.clearCaches +browserslist.parseConfig = env.parseConfig +browserslist.readConfig = env.readConfig +browserslist.findConfig = env.findConfig +browserslist.loadConfig = env.loadConfig + +browserslist.coverage = function (browsers, stats) { + var data + if (typeof stats === 'undefined') { + data = browserslist.usage.global + } else if (stats === 'my stats') { + var opts = {} + opts.path = path.resolve ? path.resolve('.') : '.' + var customStats = env.getStat(opts) + if (!customStats) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + data = {} + for (var browser in customStats) { + fillUsage(data, browser, customStats[browser]) + } + } else if (typeof stats === 'string') { + if (stats.length > 2) { + stats = stats.toLowerCase() + } else { + stats = stats.toUpperCase() + } + env.loadCountry(browserslist.usage, stats, browserslist.data) + data = browserslist.usage[stats] + } else { + if ('dataByBrowser' in stats) { + stats = stats.dataByBrowser + } + data = {} + for (var name in stats) { + for (var version in stats[name]) { + data[name + ' ' + version] = stats[name][version] + } + } + } + + return browsers.reduce(function (all, i) { + var usage = data[i] + if (usage === undefined) { + usage = data[i.replace(/ \S+$/, ' 0')] + } + return all + (usage || 0) + }, 0) +} + +function nodeQuery(context, node) { + var matched = browserslist.nodeVersions.filter(function (i) { + return isVersionsMatch(i, node.version) + }) + if (matched.length === 0) { + if (context.ignoreUnknownVersions) { + return [] + } else { + throw new BrowserslistError( + 'Unknown version ' + node.version + ' of Node.js' + ) + } + } + return ['node ' + matched[matched.length - 1]] +} + +function sinceQuery(context, node) { + var year = parseInt(node.year) + var month = parseInt(node.month || '01') - 1 + var day = parseInt(node.day || '01') + return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context) +} + +function coverQuery(context, node) { + var coverage = parseFloat(node.coverage) + var usage = browserslist.usage.global + if (node.place) { + if (node.place.match(/^my\s+stats$/i)) { + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + usage = context.customUsage + } else { + var place + if (node.place.length === 2) { + place = node.place.toUpperCase() + } else { + place = node.place.toLowerCase() + } + env.loadCountry(browserslist.usage, place, browserslist.data) + usage = browserslist.usage[place] + } + } + var versions = Object.keys(usage).sort(function (a, b) { + return usage[b] - usage[a] + }) + var coveraged = 0 + var result = [] + var version + for (var i = 0; i < versions.length; i++) { + version = versions[i] + if (usage[version] === 0) break + coveraged += usage[version] + result.push(version) + if (coveraged >= coverage) break + } + return result +} + +var QUERIES = { + last_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+major\s+versions?$/i, + select: function (context, node) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = getMajorVersions(data.released, node.versions) + list = list.map(nameMapper(data.name)) + list = filterJumps(list, data.name, node.versions, context) + return selected.concat(list) + }, []) + } + }, + last_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+versions?$/i, + select: function (context, node) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = data.released.slice(-node.versions) + list = list.map(nameMapper(data.name)) + list = filterJumps(list, data.name, node.versions, context) + return selected.concat(list) + }, []) + } + }, + last_electron_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i, + select: function (context, node) { + var validVersions = getMajorVersions(Object.keys(e2c), node.versions) + return validVersions.map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + last_node_major_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i, + select: function (context, node) { + return getMajorVersions(browserslist.nodeVersions, node.versions).map( + function (version) { + return 'node ' + version + } + ) + } + }, + last_browser_major_versions: { + matches: ['versions', 'browser'], + regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var validVersions = getMajorVersions(data.released, node.versions) + var list = validVersions.map(nameMapper(data.name)) + list = filterJumps(list, data.name, node.versions, context) + return list + } + }, + last_electron_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+electron\s+versions?$/i, + select: function (context, node) { + return Object.keys(e2c) + .slice(-node.versions) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + last_node_versions: { + matches: ['versions'], + regexp: /^last\s+(\d+)\s+node\s+versions?$/i, + select: function (context, node) { + return browserslist.nodeVersions + .slice(-node.versions) + .map(function (version) { + return 'node ' + version + }) + } + }, + last_browser_versions: { + matches: ['versions', 'browser'], + regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var list = data.released.slice(-node.versions).map(nameMapper(data.name)) + list = filterJumps(list, data.name, node.versions, context) + return list + } + }, + unreleased_versions: { + matches: [], + regexp: /^unreleased\s+versions$/i, + select: function (context) { + return Object.keys(agents).reduce(function (selected, name) { + var data = byName(name, context) + if (!data) return selected + var list = data.versions.filter(function (v) { + return data.released.indexOf(v) === -1 + }) + list = list.map(nameMapper(data.name)) + return selected.concat(list) + }, []) + } + }, + unreleased_electron_versions: { + matches: [], + regexp: /^unreleased\s+electron\s+versions?$/i, + select: function () { + return [] + } + }, + unreleased_browser_versions: { + matches: ['browser'], + regexp: /^unreleased\s+(\w+)\s+versions?$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + return data.versions + .filter(function (v) { + return data.released.indexOf(v) === -1 + }) + .map(nameMapper(data.name)) + } + }, + last_years: { + matches: ['years'], + regexp: /^last\s+(\d*.?\d+)\s+years?$/i, + select: function (context, node) { + return filterByYear(Date.now() - YEAR * node.years, context) + } + }, + since_y: { + matches: ['year'], + regexp: /^since (\d+)$/i, + select: sinceQuery + }, + since_y_m: { + matches: ['year', 'month'], + regexp: /^since (\d+)-(\d+)$/i, + select: sinceQuery + }, + since_y_m_d: { + matches: ['year', 'month', 'day'], + regexp: /^since (\d+)-(\d+)-(\d+)$/i, + select: sinceQuery + }, + popularity: { + matches: ['sign', 'popularity'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var usage = browserslist.usage.global + return Object.keys(usage).reduce(function (result, version) { + if (node.sign === '>') { + if (usage[version] > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (usage[version] < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (usage[version] <= popularity) { + result.push(version) + } + } else if (usage[version] >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_my_stats: { + matches: ['sign', 'popularity'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + var usage = context.customUsage + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_config_stats: { + matches: ['sign', 'popularity', 'config'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var stats = env.loadStat(context, node.config, browserslist.data) + if (stats) { + context.customUsage = {} + for (var browser in stats) { + fillUsage(context.customUsage, browser, stats[browser]) + } + } + if (!context.customUsage) { + throw new BrowserslistError('Custom usage statistics was not provided') + } + var usage = context.customUsage + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + popularity_in_place: { + matches: ['sign', 'popularity', 'place'], + regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/, + select: function (context, node) { + var popularity = parseFloat(node.popularity) + var place = node.place + if (place.length === 2) { + place = place.toUpperCase() + } else { + place = place.toLowerCase() + } + env.loadCountry(browserslist.usage, place, browserslist.data) + var usage = browserslist.usage[place] + return Object.keys(usage).reduce(function (result, version) { + var percentage = usage[version] + if (percentage == null) { + return result + } + + if (node.sign === '>') { + if (percentage > popularity) { + result.push(version) + } + } else if (node.sign === '<') { + if (percentage < popularity) { + result.push(version) + } + } else if (node.sign === '<=') { + if (percentage <= popularity) { + result.push(version) + } + } else if (percentage >= popularity) { + result.push(version) + } + return result + }, []) + } + }, + cover: { + matches: ['coverage'], + regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i, + select: coverQuery + }, + cover_in: { + matches: ['coverage', 'place'], + regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i, + select: coverQuery + }, + supports: { + matches: ['supportType', 'feature'], + regexp: /^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/, + select: function (context, node) { + env.loadFeature(browserslist.cache, node.feature) + var withPartial = node.supportType !== 'fully' + var features = browserslist.cache[node.feature] + var result = [] + for (var name in features) { + var data = byName(name, context) + // Only check desktop when latest released mobile has support + var checkDesktop = + context.mobileToDesktop && + name in browserslist.desktopNames && + isSupported(features[name][data.released.slice(-1)[0]], withPartial) + data.versions.forEach(function (version) { + var flags = features[name][version] + if (flags === undefined && checkDesktop) { + flags = features[browserslist.desktopNames[name]][version] + } + if (isSupported(flags, withPartial)) { + result.push(name + ' ' + version) + } + }) + } + return result + } + }, + electron_range: { + matches: ['from', 'to'], + regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + var fromToUse = normalizeElectron(node.from) + var toToUse = normalizeElectron(node.to) + var from = parseFloat(node.from) + var to = parseFloat(node.to) + if (!e2c[fromToUse]) { + throw new BrowserslistError('Unknown version ' + from + ' of electron') + } + if (!e2c[toToUse]) { + throw new BrowserslistError('Unknown version ' + to + ' of electron') + } + return Object.keys(e2c) + .filter(function (i) { + var parsed = parseFloat(i) + return parsed >= from && parsed <= to + }) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + node_range: { + matches: ['from', 'to'], + regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + return browserslist.nodeVersions + .filter(semverFilterLoose('>=', node.from)) + .filter(semverFilterLoose('<=', node.to)) + .map(function (v) { + return 'node ' + v + }) + } + }, + browser_range: { + matches: ['browser', 'from', 'to'], + regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i, + select: function (context, node) { + var data = checkName(node.browser, context) + var from = parseFloat(normalizeVersion(data, node.from) || node.from) + var to = parseFloat(normalizeVersion(data, node.to) || node.to) + function filter(v) { + var parsed = parseFloat(v) + return parsed >= from && parsed <= to + } + return data.released.filter(filter).map(nameMapper(data.name)) + } + }, + electron_ray: { + matches: ['sign', 'version'], + regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i, + select: function (context, node) { + var versionToUse = normalizeElectron(node.version) + return Object.keys(e2c) + .filter(generateFilter(node.sign, versionToUse)) + .map(function (i) { + return 'chrome ' + e2c[i] + }) + } + }, + node_ray: { + matches: ['sign', 'version'], + regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i, + select: function (context, node) { + return browserslist.nodeVersions + .filter(generateSemverFilter(node.sign, node.version)) + .map(function (v) { + return 'node ' + v + }) + } + }, + browser_ray: { + matches: ['browser', 'sign', 'version'], + regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/, + select: function (context, node) { + var version = node.version + var data = checkName(node.browser, context) + var alias = browserslist.versionAliases[data.name][version] + if (alias) version = alias + return data.released + .filter(generateFilter(node.sign, version)) + .map(function (v) { + return data.name + ' ' + v + }) + } + }, + firefox_esr: { + matches: [], + regexp: /^(firefox|ff|fx)\s+esr$/i, + select: function () { + return ['firefox 115'] + } + }, + opera_mini_all: { + matches: [], + regexp: /(operamini|op_mini)\s+all/i, + select: function () { + return ['op_mini all'] + } + }, + electron_version: { + matches: ['version'], + regexp: /^electron\s+([\d.]+)$/i, + select: function (context, node) { + var versionToUse = normalizeElectron(node.version) + var chrome = e2c[versionToUse] + if (!chrome) { + throw new BrowserslistError( + 'Unknown version ' + node.version + ' of electron' + ) + } + return ['chrome ' + chrome] + } + }, + node_major_version: { + matches: ['version'], + regexp: /^node\s+(\d+)$/i, + select: nodeQuery + }, + node_minor_version: { + matches: ['version'], + regexp: /^node\s+(\d+\.\d+)$/i, + select: nodeQuery + }, + node_patch_version: { + matches: ['version'], + regexp: /^node\s+(\d+\.\d+\.\d+)$/i, + select: nodeQuery + }, + current_node: { + matches: [], + regexp: /^current\s+node$/i, + select: function (context) { + return [env.currentNode(resolve, context)] + } + }, + maintained_node: { + matches: [], + regexp: /^maintained\s+node\s+versions$/i, + select: function (context) { + var now = Date.now() + var queries = Object.keys(jsEOL) + .filter(function (key) { + return ( + now < Date.parse(jsEOL[key].end) && + now > Date.parse(jsEOL[key].start) && + isEolReleased(key) + ) + }) + .map(function (key) { + return 'node ' + key.slice(1) + }) + return resolve(queries, context) + } + }, + phantomjs_1_9: { + matches: [], + regexp: /^phantomjs\s+1.9$/i, + select: function () { + return ['safari 5'] + } + }, + phantomjs_2_1: { + matches: [], + regexp: /^phantomjs\s+2.1$/i, + select: function () { + return ['safari 6'] + } + }, + browser_version: { + matches: ['browser', 'version'], + regexp: /^(\w+)\s+(tp|[\d.]+)$/i, + select: function (context, node) { + var version = node.version + if (/^tp$/i.test(version)) version = 'TP' + var data = checkName(node.browser, context) + var alias = normalizeVersion(data, version) + if (alias) { + version = alias + } else { + if (version.indexOf('.') === -1) { + alias = version + '.0' + } else { + alias = version.replace(/\.0$/, '') + } + alias = normalizeVersion(data, alias) + if (alias) { + version = alias + } else if (context.ignoreUnknownVersions) { + return [] + } else { + throw new BrowserslistError( + 'Unknown version ' + version + ' of ' + node.browser + ) + } + } + return [data.name + ' ' + version] + } + }, + browserslist_config: { + matches: [], + regexp: /^browserslist config$/i, + select: function (context) { + return browserslist(undefined, context) + } + }, + extends: { + matches: ['config'], + regexp: /^extends (.+)$/i, + select: function (context, node) { + return resolve(env.loadQueries(context, node.config), context) + } + }, + defaults: { + matches: [], + regexp: /^defaults$/i, + select: function (context) { + return resolve(browserslist.defaults, context) + } + }, + dead: { + matches: [], + regexp: /^dead$/i, + select: function (context) { + var dead = [ + 'Baidu >= 0', + 'ie <= 11', + 'ie_mob <= 11', + 'bb <= 10', + 'op_mob <= 12.1', + 'samsung 4' + ] + return resolve(dead, context) + } + }, + unknown: { + matches: [], + regexp: /^(\w+)$/i, + select: function (context, node) { + if (byName(node.query, context)) { + throw new BrowserslistError( + 'Specify versions in Browserslist query for browser ' + node.query + ) + } else { + throw unknownQuery(node.query) + } + } + } +} + +// Get and convert Can I Use data + +;(function () { + for (var name in agents) { + var browser = agents[name] + browserslist.data[name] = { + name: name, + versions: normalize(agents[name].versions), + released: normalize(agents[name].versions.slice(0, -3)), + releaseDate: agents[name].release_date + } + fillUsage(browserslist.usage.global, name, browser.usage_global) + + browserslist.versionAliases[name] = {} + for (var i = 0; i < browser.versions.length; i++) { + var full = browser.versions[i] + if (!full) continue + + if (full.indexOf('-') !== -1) { + var interval = full.split('-') + for (var j = 0; j < interval.length; j++) { + browserslist.versionAliases[name][interval[j]] = full + } + } + } + } + + browserslist.nodeVersions = jsReleases.map(function (release) { + return release.version + }) +})() + +module.exports = browserslist + + +/***/ }), + +/***/ "./node_modules/browserslist/parse.js": +/*!********************************************!*\ + !*** ./node_modules/browserslist/parse.js ***! + \********************************************/ +/***/ ((module) => { + +var AND_REGEXP = /^\s+and\s+(.*)/i +var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i + +function flatten(array) { + if (!Array.isArray(array)) return [array] + return array.reduce(function (a, b) { + return a.concat(flatten(b)) + }, []) +} + +function find(string, predicate) { + for (var n = 1, max = string.length; n <= max; n++) { + var parsed = string.substr(-n, n) + if (predicate(parsed, n, max)) { + return string.slice(0, -n) + } + } + return '' +} + +function matchQuery(all, query) { + var node = { query: query } + if (query.indexOf('not ') === 0) { + node.not = true + query = query.slice(4) + } + + for (var name in all) { + var type = all[name] + var match = query.match(type.regexp) + if (match) { + node.type = name + for (var i = 0; i < type.matches.length; i++) { + node[type.matches[i]] = match[i + 1] + } + return node + } + } + + node.type = 'unknown' + return node +} + +function matchBlock(all, string, qs) { + var node + return find(string, function (parsed, n, max) { + if (AND_REGEXP.test(parsed)) { + node = matchQuery(all, parsed.match(AND_REGEXP)[1]) + node.compose = 'and' + qs.unshift(node) + return true + } else if (OR_REGEXP.test(parsed)) { + node = matchQuery(all, parsed.match(OR_REGEXP)[1]) + node.compose = 'or' + qs.unshift(node) + return true + } else if (n === max) { + node = matchQuery(all, parsed.trim()) + node.compose = 'or' + qs.unshift(node) + return true + } + return false + }) +} + +module.exports = function parse(all, queries) { + if (!Array.isArray(queries)) queries = [queries] + return flatten( + queries.map(function (block) { + var qs = [] + do { + block = matchBlock(all, block, qs) + } while (block) + return qs + }) + ) +} + + +/***/ }), + +/***/ "./node_modules/caniuse-lite/data/agents.js": +/*!**************************************************!*\ + !*** ./node_modules/caniuse-lite/data/agents.js ***! + \**************************************************/ +/***/ ((module) => { + +module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","TC","J","D","E","F","A","B","","",""],E:"IE",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{"0":0.007984,"1":0.015968,"2":0.015968,"3":0.011976,"4":0.015968,"5":0.015968,"6":0.035928,"7":0.267464,"8":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","G","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","v","w","x","y","z","0","1","2","3","4","5","6","7","8","H","","",""],E:"Edge",F:{"0":1680825600,"1":1683158400,"2":1685664000,"3":1689897600,"4":1692576000,"5":1694649600,"6":1697155200,"7":1698969600,"8":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:"ms",K:"ms",L:"ms",G:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0.003992,"1":0.007984,"2":0.011976,"3":0.467064,"4":0.003992,"5":0.007984,"6":0.087824,"7":0.227544,"8":0.231536,"9":0,UC:0,"7B":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,"8B":0.003992,kB:0,"9B":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,"0B":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,"1B":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:"moz",C:["UC","7B","WC","XC","I","9","J","D","E","F","A","B","C","K","L","G","M","N","O","AB","q","r","s","t","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","8B","kB","9B","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","0B","P","Q","R","AC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","v","w","x","y","z","0","1","2","3","4","5","6","7","8","H","1B","BC","CC","DC","VC"],E:"Firefox",F:{"0":1681171200,"1":1683590400,"2":1686009600,"3":1688428800,"4":1690848000,"5":1693267200,"6":1695686400,"7":1698105600,"8":1700524800,"9":1308614400,UC:1161648000,"7B":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,"8B":1520985600,kB:1525824000,"9B":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,"0B":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,"1B":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{"0":0.075848,"1":0.15968,"2":0.115768,"3":0.07984,"4":0.263472,"5":0.195608,"6":0.467064,"7":2.4471,"8":15.8562,"9":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,"8B":0,kB:0.015968,"9B":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,"0B":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,"1B":0.015968,BC:0,CC:0,DC:0},B:"webkit",C:["","","","","","","I","9","J","D","E","F","A","B","C","K","L","G","M","N","O","AB","q","r","s","t","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","8B","kB","9B","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","0B","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","v","w","x","y","z","0","1","2","3","4","5","6","7","8","H","1B","BC","CC","DC"],E:"Chrome",F:{"0":1680566400,"1":1682985600,"2":1685404800,"3":1689724800,"4":1692057600,"5":1694476800,"6":1696896000,"7":1698710400,"8":1701993600,"9":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,"8B":1496707200,kB:1500940800,"9B":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,"0B":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,"1B":1708387200,BC:null,CC:null,DC:null}},E:{A:{"9":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,"2B":0.015968,"3B":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,"4B":0.043912,fC:0.2994,"5B":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,"6B":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","YC","EC","I","9","ZC","J","aC","D","bC","E","F","cC","A","FC","B","2B","C","3B","K","GC","L","dC","G","eC","HC","IC","4B","fC","5B","JC","KC","LC","MC","NC","gC","6B","OC","PC","QC","hC","iC",""],E:"Safari",F:{"9":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,"2B":1522281600,C:1537142400,"3B":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,"4B":1652745600,fC:1658275200,"5B":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,"6B":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,"0B":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,"2B":0,RC:0,nC:0,"3B":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","F","jC","kC","lC","mC","B","2B","RC","nC","C","3B","G","M","N","O","AB","q","r","s","t","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","0B","P","Q","R","AC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","","",""],E:"Opera",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,"2B":1302566400,RC:1309219200,nC:1323129600,C:1323129600,"3B":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,"0B":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:"o",B:"o",C:"o",jC:"o",kC:"o",lC:"o",mC:"o","2B":"o",RC:"o",nC:"o","3B":"o"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,"0C":0.267828,"1C":0.00451396,"2C":0.0496536,"3C":0.0135419,"4C":0.0601861,"5C":0.105326,"6C":0.160998,"7C":0.0692141,HC:0.0797466,IC:0.0932885,"4B":0.123382,"8C":0.961474,"5B":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,"9C":2.01925,"6B":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","EC","oC","SC","pC","qC","rC","E","sC","tC","uC","vC","wC","xC","yC","zC","0C","1C","2C","3C","4C","5C","6C","7C","HC","IC","4B","8C","5B","JC","KC","LC","MC","NC","9C","6B","OC","PC","QC","","",""],E:"Safari on iOS",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,"0C":1553472000,"1C":1568851200,"2C":1572220800,"3C":1580169600,"4C":1585008000,"5C":1600214400,"6C":1619395200,"7C":1632096000,HC:1639353600,IC:1647216000,"4B":1652659200,"8C":1658275200,"5B":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,"9C":1690156800,"6B":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","AD","","",""],E:"Opera Mini",F:{AD:1426464000}},I:{A:{"7B":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BD","CD","DD","7B","I","ED","SC","FD","GD","H","","",""],E:"Android Browser",F:{BD:1256515200,CD:1274313600,DD:1291593600,"7B":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","A","","",""],E:"Blackberry Browser",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,"2B":0,RC:0,"3B":0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","2B","RC","C","3B","u","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,"2B":1314835200,RC:1318291200,C:1330300800,"3B":1349740800,u:1673827200},D:{u:"webkit"}},L:{A:{H:40.5268},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","H","","",""],E:"Chrome for Android",F:{H:1705968000}},M:{A:{"1B":0.30045},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1B","","",""],E:"Firefox for Android",F:{"1B":1705968000}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{"4B":0.811215},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","4B","","",""],E:"UC Browser for Android",F:{"4B":1687132800},D:{"4B":"webkit"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,"5B":0.0107426,"6B":0.0322279,RD:0.0214852,SD:0.0322279},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","HD","ID","JD","KD","LD","FC","MD","ND","OD","PD","QD","5B","6B","RD","SD","q","r","s","t","","",""],E:"Samsung Internet",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,"5B":1640736000,"6B":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","GC","","",""],E:"QQ Browser",F:{GC:1663718400}},R:{A:{TD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","TD","","",""],E:"Baidu Browser",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","UD","VD","","",""],E:"KaiOS Browser",F:{UD:1527811200,VD:1631664000}}}; + + +/***/ }), + +/***/ "./node_modules/caniuse-lite/data/browserVersions.js": +/*!***********************************************************!*\ + !*** ./node_modules/caniuse-lite/data/browserVersions.js ***! + \***********************************************************/ +/***/ ((module) => { + +module.exports={"0":"112","1":"113","2":"114","3":"115","4":"116","5":"117","6":"118","7":"119","8":"120","9":"5",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"121",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"20",r:"21",s:"22",t:"23",u:"73",v:"107",w:"108",x:"109",y:"110",z:"111",AB:"19",BB:"24",CB:"25",DB:"26",EB:"27",FB:"28",GB:"29",HB:"30",IB:"31",JB:"32",KB:"33",LB:"34",MB:"35",NB:"36",OB:"37",PB:"38",QB:"39",RB:"40",SB:"41",TB:"42",UB:"43",VB:"44",WB:"45",XB:"46",YB:"47",ZB:"48",aB:"49",bB:"50",cB:"51",dB:"52",eB:"53",fB:"54",gB:"55",hB:"56",iB:"57",jB:"58",kB:"60",lB:"62",mB:"63",nB:"64",oB:"65",pB:"66",qB:"67",rB:"68",sB:"69",tB:"70",uB:"71",vB:"72",wB:"74",xB:"75",yB:"76",zB:"77","0B":"78","1B":"122","2B":"11.1","3B":"12.1","4B":"15.5","5B":"16.0","6B":"17.0","7B":"3","8B":"59","9B":"61",AC:"82",BC:"123",CC:"124",DC:"125",EC:"3.2",FC:"10.1",GC:"13.1",HC:"15.2-15.3",IC:"15.4",JC:"16.1",KC:"16.2",LC:"16.3",MC:"16.4",NC:"16.5",OC:"17.1",PC:"17.2",QC:"17.3",RC:"11.5",SC:"4.2-4.3",TC:"5.5",UC:"2",VC:"126",WC:"3.5",XC:"3.6",YC:"3.1",ZC:"5.1",aC:"6.1",bC:"7.1",cC:"9.1",dC:"14.1",eC:"15.1",fC:"15.6",gC:"16.6",hC:"17.4",iC:"TP",jC:"9.5-9.6",kC:"10.0-10.1",lC:"10.5",mC:"10.6",nC:"11.6",oC:"4.0-4.1",pC:"5.0-5.1",qC:"6.0-6.1",rC:"7.0-7.1",sC:"8.1-8.4",tC:"9.0-9.2",uC:"9.3",vC:"10.0-10.2",wC:"10.3",xC:"11.0-11.2",yC:"11.3-11.4",zC:"12.0-12.1","0C":"12.2-12.5","1C":"13.0-13.1","2C":"13.2","3C":"13.3","4C":"13.4-13.7","5C":"14.0-14.4","6C":"14.5-14.8","7C":"15.0-15.1","8C":"15.6-15.8","9C":"16.6-16.7",AD:"all",BD:"2.1",CD:"2.2",DD:"2.3",ED:"4.1",FD:"4.4",GD:"4.4.3-4.4.4",HD:"5.0-5.4",ID:"6.2-6.4",JD:"7.2-7.4",KD:"8.2",LD:"9.2",MD:"11.1-11.2",ND:"12.0",OD:"13.0",PD:"14.0",QD:"15.0",RD:"18.0",SD:"19.0",TD:"13.18",UD:"2.5",VD:"3.0-3.1"}; + + +/***/ }), + +/***/ "./node_modules/caniuse-lite/data/browsers.js": +/*!****************************************************!*\ + !*** ./node_modules/caniuse-lite/data/browsers.js ***! + \****************************************************/ +/***/ ((module) => { + +module.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}; + + +/***/ }), + +/***/ "./node_modules/caniuse-lite/dist/unpacker/agents.js": +/*!***********************************************************!*\ + !*** ./node_modules/caniuse-lite/dist/unpacker/agents.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +const browsers = (__webpack_require__(/*! ./browsers */ "./node_modules/caniuse-lite/dist/unpacker/browsers.js").browsers) +const versions = (__webpack_require__(/*! ./browserVersions */ "./node_modules/caniuse-lite/dist/unpacker/browserVersions.js").browserVersions) +const agentsData = __webpack_require__(/*! ../../data/agents */ "./node_modules/caniuse-lite/data/agents.js") + +function unpackBrowserVersions(versionsData) { + return Object.keys(versionsData).reduce((usage, version) => { + usage[versions[version]] = versionsData[version] + return usage + }, {}) +} + +module.exports.agents = Object.keys(agentsData).reduce((map, key) => { + let versionsData = agentsData[key] + map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => { + if (entry === 'A') { + data.usage_global = unpackBrowserVersions(versionsData[entry]) + } else if (entry === 'C') { + data.versions = versionsData[entry].reduce((list, version) => { + if (version === '') { + list.push(null) + } else { + list.push(versions[version]) + } + return list + }, []) + } else if (entry === 'D') { + data.prefix_exceptions = unpackBrowserVersions(versionsData[entry]) + } else if (entry === 'E') { + data.browser = versionsData[entry] + } else if (entry === 'F') { + data.release_date = Object.keys(versionsData[entry]).reduce( + (map2, key2) => { + map2[versions[key2]] = versionsData[entry][key2] + return map2 + }, + {} + ) + } else { + // entry is B + data.prefix = versionsData[entry] + } + return data + }, {}) + return map +}, {}) + + +/***/ }), + +/***/ "./node_modules/caniuse-lite/dist/unpacker/browserVersions.js": +/*!********************************************************************!*\ + !*** ./node_modules/caniuse-lite/dist/unpacker/browserVersions.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports.browserVersions = __webpack_require__(/*! ../../data/browserVersions */ "./node_modules/caniuse-lite/data/browserVersions.js") + + +/***/ }), + +/***/ "./node_modules/caniuse-lite/dist/unpacker/browsers.js": +/*!*************************************************************!*\ + !*** ./node_modules/caniuse-lite/dist/unpacker/browsers.js ***! + \*************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports.browsers = __webpack_require__(/*! ../../data/browsers */ "./node_modules/caniuse-lite/data/browsers.js") + + +/***/ }), + +/***/ "./node_modules/electron-to-chromium/versions.js": +/*!*******************************************************!*\ + !*** ./node_modules/electron-to-chromium/versions.js ***! + \*******************************************************/ +/***/ ((module) => { + +module.exports = { + "0.20": "39", + "0.21": "41", + "0.22": "41", + "0.23": "41", + "0.24": "41", + "0.25": "42", + "0.26": "42", + "0.27": "43", + "0.28": "43", + "0.29": "43", + "0.30": "44", + "0.31": "45", + "0.32": "45", + "0.33": "45", + "0.34": "45", + "0.35": "45", + "0.36": "47", + "0.37": "49", + "1.0": "49", + "1.1": "50", + "1.2": "51", + "1.3": "52", + "1.4": "53", + "1.5": "54", + "1.6": "56", + "1.7": "58", + "1.8": "59", + "2.0": "61", + "2.1": "61", + "3.0": "66", + "3.1": "66", + "4.0": "69", + "4.1": "69", + "4.2": "69", + "5.0": "73", + "6.0": "76", + "6.1": "76", + "7.0": "78", + "7.1": "78", + "7.2": "78", + "7.3": "78", + "8.0": "80", + "8.1": "80", + "8.2": "80", + "8.3": "80", + "8.4": "80", + "8.5": "80", + "9.0": "83", + "9.1": "83", + "9.2": "83", + "9.3": "83", + "9.4": "83", + "10.0": "85", + "10.1": "85", + "10.2": "85", + "10.3": "85", + "10.4": "85", + "11.0": "87", + "11.1": "87", + "11.2": "87", + "11.3": "87", + "11.4": "87", + "11.5": "87", + "12.0": "89", + "12.1": "89", + "12.2": "89", + "13.0": "91", + "13.1": "91", + "13.2": "91", + "13.3": "91", + "13.4": "91", + "13.5": "91", + "13.6": "91", + "14.0": "93", + "14.1": "93", + "14.2": "93", + "15.0": "94", + "15.1": "94", + "15.2": "94", + "15.3": "94", + "15.4": "94", + "15.5": "94", + "16.0": "96", + "16.1": "96", + "16.2": "96", + "17.0": "98", + "17.1": "98", + "17.2": "98", + "17.3": "98", + "17.4": "98", + "18.0": "100", + "18.1": "100", + "18.2": "100", + "18.3": "100", + "19.0": "102", + "19.1": "102", + "20.0": "104", + "20.1": "104", + "20.2": "104", + "20.3": "104", + "21.0": "106", + "21.1": "106", + "21.2": "106", + "21.3": "106", + "21.4": "106", + "22.0": "108", + "22.1": "108", + "22.2": "108", + "22.3": "108", + "23.0": "110", + "23.1": "110", + "23.2": "110", + "23.3": "110", + "24.0": "112", + "24.1": "112", + "24.2": "112", + "24.3": "112", + "24.4": "112", + "24.5": "112", + "24.6": "112", + "24.7": "112", + "24.8": "112", + "25.0": "114", + "25.1": "114", + "25.2": "114", + "25.3": "114", + "25.4": "114", + "25.5": "114", + "25.6": "114", + "25.7": "114", + "25.8": "114", + "25.9": "114", + "26.0": "116", + "26.1": "116", + "26.2": "116", + "26.3": "116", + "26.4": "116", + "26.5": "116", + "26.6": "116", + "27.0": "118", + "27.1": "118", + "27.2": "118", + "27.3": "118", + "28.0": "120", + "28.1": "120", + "28.2": "120", + "29.0": "122", + "30.0": "123" +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/compat-transpiler/index.js": +/*!******************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/compat-transpiler/index.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var compatTransforms = __webpack_require__(/*! ./transforms */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js"); +var _transform = __webpack_require__(/*! ../transform */ "./node_modules/regexp-tree/dist/transform/index.js"); + +module.exports = { + /** + * Translates a regexp in new syntax to equivalent regexp in old syntax. + * + * @param string|RegExp|AST - regexp + * @param Array transformsWhitelist - names of the transforms to apply + */ + transform: function transform(regexp) { + var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; + + var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms); + + var result = void 0; + + // Collect extra data per transform. + var extra = {}; + + transformToApply.forEach(function (transformName) { + + if (!compatTransforms.hasOwnProperty(transformName)) { + throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', ')); + } + + var handler = compatTransforms[transformName]; + + result = _transform.transform(regexp, handler); + regexp = result.getAST(); + + // Collect `extra` transform result. + if (typeof handler.getExtra === 'function') { + extra[transformName] = handler.getExtra(); + } + }); + + // Set the final extras for all transforms. + result.setExtra(extra); + + return result; + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js": +/*!**************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js ***! + \**************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * The `RegExpTree` class provides runtime support for `compat-transpiler` + * module from `regexp-tree`. + * + * E.g. it tracks names of the capturing groups, in order to access the + * names on the matched result. + * + * It's a thin-wrapper on top of original regexp. + */ + +var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var RegExpTree = function () { + /** + * Initializes a `RegExpTree` instance. + * + * @param RegExp - a regular expression + * + * @param Object state: + * + * An extra state which may store any related to transformation + * data, for example, names of the groups. + * + * - flags - original flags + * - groups - names of the groups, and their indices + * - source - original source + */ + function RegExpTree(re, _ref) { + var flags = _ref.flags, + groups = _ref.groups, + source = _ref.source; + + _classCallCheck(this, RegExpTree); + + this._re = re; + this._groups = groups; + + // Original props. + this.flags = flags; + this.source = source || re.source; + this.dotAll = flags.includes('s'); + + // Inherited directly from `re`. + this.global = re.global; + this.ignoreCase = re.ignoreCase; + this.multiline = re.multiline; + this.sticky = re.sticky; + this.unicode = re.unicode; + } + + /** + * Facade wrapper for RegExp `test` method. + */ + + + _createClass(RegExpTree, [{ + key: 'test', + value: function test(string) { + return this._re.test(string); + } + + /** + * Facade wrapper for RegExp `compile` method. + */ + + }, { + key: 'compile', + value: function compile(string) { + return this._re.compile(string); + } + + /** + * Facade wrapper for RegExp `toString` method. + */ + + }, { + key: 'toString', + value: function toString() { + if (!this._toStringResult) { + this._toStringResult = '/' + this.source + '/' + this.flags; + } + return this._toStringResult; + } + + /** + * Facade wrapper for RegExp `exec` method. + */ + + }, { + key: 'exec', + value: function exec(string) { + var result = this._re.exec(string); + + if (!this._groups || !result) { + return result; + } + + result.groups = {}; + + for (var group in this._groups) { + var groupNumber = this._groups[group]; + result.groups[group] = result[groupNumber]; + } + + return result; + } + }]); + + return RegExpTree; +}(); + +module.exports = { + RegExpTree: RegExpTree +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js ***! + \*************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to translate `/./s` to `/[\0-\uFFFF]/`. + */ + +module.exports = { + + // Whether `u` flag present. In which case we transform to + // \u{10FFFF} instead of \uFFFF. + _hasUFlag: false, + + // Only run this plugin if we have `s` flag. + shouldRun: function shouldRun(ast) { + var shouldRun = ast.flags.includes('s'); + + if (!shouldRun) { + return false; + } + + // Strip the `s` flag. + ast.flags = ast.flags.replace('s', ''); + + // Whether we have also `u`. + this._hasUFlag = ast.flags.includes('u'); + + return true; + }, + Char: function Char(path) { + var node = path.node; + + + if (node.kind !== 'meta' || node.value !== '.') { + return; + } + + var toValue = '\\uFFFF'; + var toSymbol = '\uFFFF'; + + if (this._hasUFlag) { + toValue = '\\u{10FFFF}'; + toSymbol = '\uDBFF\uDFFF'; + } + + path.replace({ + type: 'CharacterClass', + expressions: [{ + type: 'ClassRange', + from: { + type: 'Char', + value: '\\0', + kind: 'decimal', + symbol: '\0' + }, + to: { + type: 'Char', + value: toValue, + kind: 'unicode', + symbol: toSymbol + } + }] + }); + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js": +/*!***************************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js ***! + \***************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to translate `/(?a)\k/` to `/(a)\1/`. + */ + +module.exports = { + // To track the names of the groups, and return them + // in the transform result state. + // + // A map from name to number: {foo: 2, bar: 4} + _groupNames: {}, + + /** + * Initialises the trasnform. + */ + init: function init() { + this._groupNames = {}; + }, + + + /** + * Returns extra state, which eventually is returned to + */ + getExtra: function getExtra() { + return this._groupNames; + }, + Group: function Group(path) { + var node = path.node; + + + if (!node.name) { + return; + } + + // Record group name. + this._groupNames[node.name] = node.number; + + delete node.name; + delete node.nameRaw; + }, + Backreference: function Backreference(path) { + var node = path.node; + + + if (node.kind !== 'name') { + return; + } + + node.kind = 'number'; + node.reference = node.number; + delete node.referenceRaw; + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js ***! + \***********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`. + * + * Note: other features of `x` flags (whitespace, comments) are + * already removed at parsing stage. + */ + +module.exports = { + RegExp: function RegExp(_ref) { + var node = _ref.node; + + if (node.flags.includes('x')) { + node.flags = node.flags.replace('x', ''); + } + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +module.exports = { + // "dotAll" `s` flag + dotAll: __webpack_require__(/*! ./compat-dotall-s-transform */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js"), + + // Named capturing groups. + namedCapturingGroups: __webpack_require__(/*! ./compat-named-capturing-groups-transform */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js"), + + // `x` flag + xFlag: __webpack_require__(/*! ./compat-x-flag-transform */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js") +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/generator/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/regexp-tree/dist/generator/index.js ***! + \**********************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * Helper `gen` function calls node type handler. + */ + +function gen(node) { + return node ? generator[node.type](node) : ''; +} + +/** + * AST handler. + */ +var generator = { + RegExp: function RegExp(node) { + return '/' + gen(node.body) + '/' + node.flags; + }, + Alternative: function Alternative(node) { + return (node.expressions || []).map(gen).join(''); + }, + Disjunction: function Disjunction(node) { + return gen(node.left) + '|' + gen(node.right); + }, + Group: function Group(node) { + var expression = gen(node.expression); + + if (node.capturing) { + // A named group. + if (node.name) { + return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')'; + } + + return '(' + expression + ')'; + } + + return '(?:' + expression + ')'; + }, + Backreference: function Backreference(node) { + switch (node.kind) { + case 'number': + return '\\' + node.reference; + case 'name': + return '\\k<' + (node.referenceRaw || node.reference) + '>'; + default: + throw new TypeError('Unknown Backreference kind: ' + node.kind); + } + }, + Assertion: function Assertion(node) { + switch (node.kind) { + case '^': + case '$': + case '\\b': + case '\\B': + return node.kind; + + case 'Lookahead': + { + var assertion = gen(node.assertion); + + if (node.negative) { + return '(?!' + assertion + ')'; + } + + return '(?=' + assertion + ')'; + } + + case 'Lookbehind': + { + var _assertion = gen(node.assertion); + + if (node.negative) { + return '(? { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +// DFA minization. + +/** + * Map from state to current set it goes. + */ + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); } + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var currentTransitionMap = null; + +/** + * Takes a DFA, and returns a minimized version of it + * compressing some states to groups (using standard, 0-, 1-, + * 2-, ... N-equivalence algorithm). + */ +function minimize(dfa) { + var table = dfa.getTransitionTable(); + var allStates = Object.keys(table); + var alphabet = dfa.getAlphabet(); + var accepting = dfa.getAcceptingStateNumbers(); + + currentTransitionMap = {}; + + var nonAccepting = new Set(); + + allStates.forEach(function (state) { + state = Number(state); + var isAccepting = accepting.has(state); + + if (isAccepting) { + currentTransitionMap[state] = accepting; + } else { + nonAccepting.add(state); + currentTransitionMap[state] = nonAccepting; + } + }); + + // --------------------------------------------------------------------------- + // Step 1: build equivalent sets. + + // All [1..N] equivalent sets. + var all = [ + // 0-equivalent sets. + [nonAccepting, accepting].filter(function (set) { + return set.size > 0; + })]; + + var current = void 0; + var previous = void 0; + + // Top of the stack is the current list of sets to analyze. + current = all[all.length - 1]; + + // Previous set (to check whether we need to stop). + previous = all[all.length - 2]; + + // Until we'll not have the same N and N-1 equivalent rows. + + var _loop = function _loop() { + var newTransitionMap = {}; + + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var _set = _step3.value; + + // Handled states for this set. + var handledStates = {}; + + var _set2 = _toArray(_set), + first = _set2[0], + rest = _set2.slice(1); + + handledStates[first] = new Set([first]); + + // Have to compare each from the rest states with + // the already handled states, and see if they are equivalent. + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; + + try { + restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var state = _step4.value; + var _iteratorNormalCompletion5 = true; + var _didIteratorError5 = false; + var _iteratorError5 = undefined; + + try { + for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { + var handledState = _step5.value; + + // This and some previously handled state are equivalent -- + // just append this state to the same set. + if (areEquivalent(state, handledState, table, alphabet)) { + handledStates[handledState].add(state); + handledStates[state] = handledStates[handledState]; + continue restSets; + } + } + // Else, this state is not equivalent to any of the + // handled states -- allocate a new set for it. + } catch (err) { + _didIteratorError5 = true; + _iteratorError5 = err; + } finally { + try { + if (!_iteratorNormalCompletion5 && _iterator5.return) { + _iterator5.return(); + } + } finally { + if (_didIteratorError5) { + throw _iteratorError5; + } + } + } + + handledStates[state] = new Set([state]); + } + } catch (err) { + _didIteratorError4 = true; + _iteratorError4 = err; + } finally { + try { + if (!_iteratorNormalCompletion4 && _iterator4.return) { + _iterator4.return(); + } + } finally { + if (_didIteratorError4) { + throw _iteratorError4; + } + } + } + + // Add these handled states to all states map. + + + Object.assign(newTransitionMap, handledStates); + } + + // Update current transition map for the handled row. + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + + currentTransitionMap = newTransitionMap; + + var newSets = new Set(Object.keys(newTransitionMap).map(function (state) { + return newTransitionMap[state]; + })); + + all.push([].concat(_toConsumableArray(newSets))); + + // Top of the stack is the current. + current = all[all.length - 1]; + + // Previous set. + previous = all[all.length - 2]; + }; + + while (!sameRow(current, previous)) { + _loop(); + } + + // --------------------------------------------------------------------------- + // Step 2: build minimized table from the equivalent sets. + + // Remap state numbers from sets to index-based. + var remaped = new Map(); + var idx = 1; + current.forEach(function (set) { + return remaped.set(set, idx++); + }); + + // Build the minimized table from the calculated equivalent sets. + var minimizedTable = {}; + + var minimizedAcceptingStates = new Set(); + + var updateAcceptingStates = function updateAcceptingStates(set, idx) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var state = _step.value; + + if (accepting.has(state)) { + minimizedAcceptingStates.add(idx); + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }; + + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var _ref = _step2.value; + + var _ref2 = _slicedToArray(_ref, 2); + + var set = _ref2[0]; + var _idx = _ref2[1]; + + minimizedTable[_idx] = {}; + var _iteratorNormalCompletion6 = true; + var _didIteratorError6 = false; + var _iteratorError6 = undefined; + + try { + for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { + var symbol = _step6.value; + + updateAcceptingStates(set, _idx); + + // Determine original transition for this symbol from the set. + var originalTransition = void 0; + var _iteratorNormalCompletion7 = true; + var _didIteratorError7 = false; + var _iteratorError7 = undefined; + + try { + for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { + var originalState = _step7.value; + + originalTransition = table[originalState][symbol]; + if (originalTransition) { + break; + } + } + } catch (err) { + _didIteratorError7 = true; + _iteratorError7 = err; + } finally { + try { + if (!_iteratorNormalCompletion7 && _iterator7.return) { + _iterator7.return(); + } + } finally { + if (_didIteratorError7) { + throw _iteratorError7; + } + } + } + + if (originalTransition) { + minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]); + } + } + } catch (err) { + _didIteratorError6 = true; + _iteratorError6 = err; + } finally { + try { + if (!_iteratorNormalCompletion6 && _iterator6.return) { + _iterator6.return(); + } + } finally { + if (_didIteratorError6) { + throw _iteratorError6; + } + } + } + } + + // Update the table, and accepting states on the original DFA. + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + dfa.setTransitionTable(minimizedTable); + dfa.setAcceptingStateNumbers(minimizedAcceptingStates); + + return dfa; +} + +function sameRow(r1, r2) { + if (!r2) { + return false; + } + + if (r1.length !== r2.length) { + return false; + } + + for (var i = 0; i < r1.length; i++) { + var s1 = r1[i]; + var s2 = r2[i]; + + if (s1.size !== s2.size) { + return false; + } + + if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) { + return false; + } + } + + return true; +} + +/** + * Checks whether two states are N-equivalent, i.e. whether they go + * to the same set on a symbol. + */ +function areEquivalent(s1, s2, table, alphabet) { + var _iteratorNormalCompletion8 = true; + var _didIteratorError8 = false; + var _iteratorError8 = undefined; + + try { + for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { + var symbol = _step8.value; + + if (!goToSameSet(s1, s2, table, symbol)) { + return false; + } + } + } catch (err) { + _didIteratorError8 = true; + _iteratorError8 = err; + } finally { + try { + if (!_iteratorNormalCompletion8 && _iterator8.return) { + _iterator8.return(); + } + } finally { + if (_didIteratorError8) { + throw _iteratorError8; + } + } + } + + return true; +} + +/** + * Checks whether states go to the same set. + */ +function goToSameSet(s1, s2, table, symbol) { + if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) { + return false; + } + + var originalTransitionS1 = table[s1][symbol]; + var originalTransitionS2 = table[s2][symbol]; + + // If no actual transition on this symbol, treat it as positive. + if (!originalTransitionS1 && !originalTransitionS2) { + return true; + } + + // Otherwise, check if they are in the same sets. + return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2); +} + +module.exports = { + minimize: minimize +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js ***! + \*******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var DFAMinimizer = __webpack_require__(/*! ./dfa-minimizer */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js"); + +var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), + EPSILON_CLOSURE = _require.EPSILON_CLOSURE; + +/** + * DFA is build by converting from NFA (subset construction). + */ + + +var DFA = function () { + function DFA(nfa) { + _classCallCheck(this, DFA); + + this._nfa = nfa; + } + + /** + * Minimizes DFA. + */ + + + _createClass(DFA, [{ + key: 'minimize', + value: function minimize() { + this.getTransitionTable(); + + this._originalAcceptingStateNumbers = this._acceptingStateNumbers; + this._originalTransitionTable = this._transitionTable; + + DFAMinimizer.minimize(this); + } + + /** + * Returns alphabet for this DFA. + */ + + }, { + key: 'getAlphabet', + value: function getAlphabet() { + return this._nfa.getAlphabet(); + } + + /** + * Returns accepting states. + */ + + }, { + key: 'getAcceptingStateNumbers', + value: function getAcceptingStateNumbers() { + if (!this._acceptingStateNumbers) { + // Accepting states are determined during table construction. + this.getTransitionTable(); + } + + return this._acceptingStateNumbers; + } + + /** + * Returns original accepting states. + */ + + }, { + key: 'getOriginaAcceptingStateNumbers', + value: function getOriginaAcceptingStateNumbers() { + if (!this._originalAcceptingStateNumbers) { + // Accepting states are determined during table construction. + this.getTransitionTable(); + } + + return this._originalAcceptingStateNumbers; + } + + /** + * Sets transition table. + */ + + }, { + key: 'setTransitionTable', + value: function setTransitionTable(table) { + this._transitionTable = table; + } + + /** + * Sets accepting states. + */ + + }, { + key: 'setAcceptingStateNumbers', + value: function setAcceptingStateNumbers(stateNumbers) { + this._acceptingStateNumbers = stateNumbers; + } + + /** + * DFA transition table is built from NFA table. + */ + + }, { + key: 'getTransitionTable', + value: function getTransitionTable() { + var _this = this; + + if (this._transitionTable) { + return this._transitionTable; + } + + // Calculate from NFA transition table. + var nfaTable = this._nfa.getTransitionTable(); + var nfaStates = Object.keys(nfaTable); + + this._acceptingStateNumbers = new Set(); + + // Start state of DFA is E(S[nfa]) + var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE]; + + // Init the worklist (states which should be in the DFA). + var worklist = [startState]; + + var alphabet = this.getAlphabet(); + var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers(); + + var dfaTable = {}; + + // Determine whether the combined DFA state is accepting. + var updateAcceptingStates = function updateAcceptingStates(states) { + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var nfaAcceptingState = _step.value; + + // If any of the states from NFA is accepting, DFA's + // state is accepting as well. + if (states.indexOf(nfaAcceptingState) !== -1) { + _this._acceptingStateNumbers.add(states.join(',')); + break; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }; + + while (worklist.length > 0) { + var states = worklist.shift(); + var dfaStateLabel = states.join(','); + dfaTable[dfaStateLabel] = {}; + + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var symbol = _step2.value; + + var onSymbol = []; + + // Determine whether the combined state is accepting. + updateAcceptingStates(states); + + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var state = _step3.value; + + var nfaStatesOnSymbol = nfaTable[state][symbol]; + if (!nfaStatesOnSymbol) { + continue; + } + + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; + + try { + for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var nfaStateOnSymbol = _step4.value; + + if (!nfaTable[nfaStateOnSymbol]) { + continue; + } + onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE])); + } + } catch (err) { + _didIteratorError4 = true; + _iteratorError4 = err; + } finally { + try { + if (!_iteratorNormalCompletion4 && _iterator4.return) { + _iterator4.return(); + } + } finally { + if (_didIteratorError4) { + throw _iteratorError4; + } + } + } + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + + var dfaStatesOnSymbolSet = new Set(onSymbol); + var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet)); + + if (dfaStatesOnSymbol.length > 0) { + var dfaOnSymbolStr = dfaStatesOnSymbol.join(','); + + dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr; + + if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) { + worklist.unshift(dfaStatesOnSymbol); + } + } + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + } + + return this._transitionTable = this._remapStateNumbers(dfaTable); + } + + /** + * Remaps state numbers in the resulting table: + * combined states '1,2,3' -> 1, '3,4' -> 2, etc. + */ + + }, { + key: '_remapStateNumbers', + value: function _remapStateNumbers(calculatedDFATable) { + var newStatesMap = {}; + + this._originalTransitionTable = calculatedDFATable; + var transitionTable = {}; + + Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) { + newStatesMap[originalNumber] = newNumber + 1; + }); + + for (var originalNumber in calculatedDFATable) { + var originalRow = calculatedDFATable[originalNumber]; + var row = {}; + + for (var symbol in originalRow) { + row[symbol] = newStatesMap[originalRow[symbol]]; + } + + transitionTable[newStatesMap[originalNumber]] = row; + } + + // Remap accepting states. + this._originalAcceptingStateNumbers = this._acceptingStateNumbers; + this._acceptingStateNumbers = new Set(); + + var _iteratorNormalCompletion5 = true; + var _didIteratorError5 = false; + var _iteratorError5 = undefined; + + try { + for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { + var _originalNumber = _step5.value; + + this._acceptingStateNumbers.add(newStatesMap[_originalNumber]); + } + } catch (err) { + _didIteratorError5 = true; + _iteratorError5 = err; + } finally { + try { + if (!_iteratorNormalCompletion5 && _iterator5.return) { + _iterator5.return(); + } + } finally { + if (_didIteratorError5) { + throw _iteratorError5; + } + } + } + + return transitionTable; + } + + /** + * Returns original DFA table, where state numbers + * are combined numbers from NFA. + */ + + }, { + key: 'getOriginalTransitionTable', + value: function getOriginalTransitionTable() { + if (!this._originalTransitionTable) { + // Original table is determined during table construction. + this.getTransitionTable(); + } + return this._originalTransitionTable; + } + + /** + * Checks whether this DFA accepts a string. + */ + + }, { + key: 'matches', + value: function matches(string) { + var state = 1; + var i = 0; + var table = this.getTransitionTable(); + + while (string[i]) { + state = table[state][string[i++]]; + if (!state) { + return false; + } + } + + if (!this.getAcceptingStateNumbers().has(state)) { + return false; + } + + return true; + } + }]); + + return DFA; +}(); + +module.exports = DFA; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var NFA = __webpack_require__(/*! ./nfa/nfa */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js"); +var DFA = __webpack_require__(/*! ./dfa/dfa */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js"); + +var nfaFromRegExp = __webpack_require__(/*! ./nfa/nfa-from-regexp */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js"); +var builders = __webpack_require__(/*! ./nfa/builders */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js"); + +module.exports = { + + /** + * Export NFA and DFA classes. + */ + NFA: NFA, + DFA: DFA, + + /** + * Expose builders. + */ + builders: builders, + + /** + * Builds an NFA for the passed regexp. + * + * @param string | AST | RegExp: + * + * a regular expression in different representations: a string, + * a RegExp object, or an AST. + */ + toNFA: function toNFA(regexp) { + return nfaFromRegExp.build(regexp); + }, + + + /** + * Builds DFA for the passed regexp. + * + * @param string | AST | RegExp: + * + * a regular expression in different representations: a string, + * a RegExp object, or an AST. + */ + toDFA: function toDFA(regexp) { + return new DFA(this.toNFA(regexp)); + }, + + + /** + * Returns true if regexp accepts the string. + */ + test: function test(regexp, string) { + return this.toDFA(regexp).matches(string); + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js": +/*!************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js ***! + \************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var NFA = __webpack_require__(/*! ./nfa */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js"); +var NFAState = __webpack_require__(/*! ./nfa-state */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js"); + +var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), + EPSILON = _require.EPSILON; + +// ----------------------------------------------------------------------------- +// Char NFA fragment: `c` + +/** + * Char factory. + * + * Creates an NFA fragment for a single char. + * + * [in] --c--> [out] + */ + + +function char(c) { + var inState = new NFAState(); + var outState = new NFAState({ + accepting: true + }); + + return new NFA(inState.addTransition(c, outState), outState); +} + +// ----------------------------------------------------------------------------- +// Epsilon NFA fragment + +/** + * Epsilon factory. + * + * Creates an NFA fragment for ε (recognizes an empty string). + * + * [in] --ε--> [out] + */ +function e() { + return char(EPSILON); +} + +// ----------------------------------------------------------------------------- +// Alteration NFA fragment: `abc` + +/** + * Creates a connection between two NFA fragments on epsilon transition. + * + * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b] + */ +function altPair(first, second) { + first.out.accepting = false; + second.out.accepting = true; + + first.out.addTransition(EPSILON, second.in); + + return new NFA(first.in, second.out); +} + +/** + * Alteration factory. + * + * Creates a alteration NFA for (at least) two NFA-fragments. + */ +function alt(first) { + for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + fragments[_key - 1] = arguments[_key]; + } + + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var fragment = _step.value; + + first = altPair(first, fragment); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return first; +} + +// ----------------------------------------------------------------------------- +// Disjunction NFA fragment: `a|b` + +/** + * Creates a disjunction choice between two fragments. + */ +function orPair(first, second) { + var inState = new NFAState(); + var outState = new NFAState(); + + inState.addTransition(EPSILON, first.in); + inState.addTransition(EPSILON, second.in); + + outState.accepting = true; + first.out.accepting = false; + second.out.accepting = false; + + first.out.addTransition(EPSILON, outState); + second.out.addTransition(EPSILON, outState); + + return new NFA(inState, outState); +} + +/** + * Disjunction factory. + * + * Creates a disjunction NFA for (at least) two NFA-fragments. + */ +function or(first) { + for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + fragments[_key2 - 1] = arguments[_key2]; + } + + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var fragment = _step2.value; + + first = orPair(first, fragment); + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + return first; +} + +// ----------------------------------------------------------------------------- +// Kleene-closure + +/** + * Kleene star/closure. + * + * a* + */ +function repExplicit(fragment) { + var inState = new NFAState(); + var outState = new NFAState({ + accepting: true + }); + + // 0 or more. + inState.addTransition(EPSILON, fragment.in); + inState.addTransition(EPSILON, outState); + + fragment.out.accepting = false; + fragment.out.addTransition(EPSILON, outState); + outState.addTransition(EPSILON, fragment.in); + + return new NFA(inState, outState); +} + +/** + * Optimized Kleene-star: just adds ε-transitions from + * input to the output, and back. + */ +function rep(fragment) { + fragment.in.addTransition(EPSILON, fragment.out); + fragment.out.addTransition(EPSILON, fragment.in); + return fragment; +} + +/** + * Optimized Plus: just adds ε-transitions from + * the output to the input. + */ +function plusRep(fragment) { + fragment.out.addTransition(EPSILON, fragment.in); + return fragment; +} + +/** + * Optimized ? repetition: just adds ε-transitions from + * the input to the output. + */ +function questionRep(fragment) { + fragment.in.addTransition(EPSILON, fragment.out); + return fragment; +} + +module.exports = { + alt: alt, + char: char, + e: e, + or: or, + rep: rep, + repExplicit: repExplicit, + plusRep: plusRep, + questionRep: questionRep +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js ***! + \*******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var parser = __webpack_require__(/*! ../../../parser */ "./node_modules/regexp-tree/dist/parser/index.js"); + +var _require = __webpack_require__(/*! ./builders */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js"), + alt = _require.alt, + char = _require.char, + or = _require.or, + rep = _require.rep, + plusRep = _require.plusRep, + questionRep = _require.questionRep; + +/** + * Helper `gen` function calls node type handler. + */ + + +function gen(node) { + if (node && !generator[node.type]) { + throw new Error(node.type + ' is not supported in NFA/DFA interpreter.'); + } + + return node ? generator[node.type](node) : ''; +} + +/** + * AST handler. + */ +var generator = { + RegExp: function RegExp(node) { + if (node.flags !== '') { + throw new Error('NFA/DFA: Flags are not supported yet.'); + } + + return gen(node.body); + }, + Alternative: function Alternative(node) { + var fragments = (node.expressions || []).map(gen); + return alt.apply(undefined, _toConsumableArray(fragments)); + }, + Disjunction: function Disjunction(node) { + return or(gen(node.left), gen(node.right)); + }, + Repetition: function Repetition(node) { + switch (node.quantifier.kind) { + case '*': + return rep(gen(node.expression)); + case '+': + return plusRep(gen(node.expression)); + case '?': + return questionRep(gen(node.expression)); + default: + throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.'); + } + }, + Char: function Char(node) { + if (node.kind !== 'simple') { + throw new Error('NFA/DFA: Only simple chars are supported yet.'); + } + + return char(node.value); + }, + Group: function Group(node) { + return gen(node.expression); + } +}; + +module.exports = { + /** + * Builds an NFA from the passed regexp. + */ + build: function build(regexp) { + var ast = regexp; + + if (regexp instanceof RegExp) { + regexp = '' + regexp; + } + + if (typeof regexp === 'string') { + ast = parser.parse(regexp, { + captureLocations: true + }); + } + + return gen(ast); + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js ***! + \*************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _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; } + +function _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; } + +var State = __webpack_require__(/*! ../state */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js"); + +var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), + EPSILON = _require.EPSILON; + +/** + * NFA state. + * + * Allows nondeterministic transitions to several states on the + * same symbol, and also epsilon-transitions. + */ + + +var NFAState = function (_State) { + _inherits(NFAState, _State); + + function NFAState() { + _classCallCheck(this, NFAState); + + return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments)); + } + + _createClass(NFAState, [{ + key: 'matches', + + + /** + * Whether this state matches a string. + * + * We maintain set of visited epsilon-states to avoid infinite loops + * when an epsilon-transition goes eventually to itself. + * + * NOTE: this function is rather "educational", since we use DFA for strings + * matching. DFA is built on top of NFA, and uses fast transition table. + */ + value: function matches(string) { + var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set(); + + // An epsilon-state has been visited, stop to avoid infinite loop. + if (visited.has(this)) { + return false; + } + + visited.add(this); + + // No symbols left.. + if (string.length === 0) { + // .. and we're in the accepting state. + if (this.accepting) { + return true; + } + + // Check if we can reach any accepting state from + // on the epsilon transitions. + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var nextState = _step.value; + + if (nextState.matches('', visited)) { + return true; + } + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return false; + } + + // Else, we get some symbols. + var symbol = string[0]; + var rest = string.slice(1); + + var symbolTransitions = this.getTransitionsOnSymbol(symbol); + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var _nextState = _step2.value; + + if (_nextState.matches(rest)) { + return true; + } + } + + // If we couldn't match on symbol, check still epsilon-transitions + // without consuming the symbol (i.e. continue from `string`, not `rest`). + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var _nextState2 = _step3.value; + + if (_nextState2.matches(string, visited)) { + return true; + } + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + + return false; + } + + /** + * Returns an ε-closure for this state: + * self + all states following ε-transitions. + */ + + }, { + key: 'getEpsilonClosure', + value: function getEpsilonClosure() { + var _this2 = this; + + if (!this._epsilonClosure) { + (function () { + var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON); + var closure = _this2._epsilonClosure = new Set(); + closure.add(_this2); + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; + + try { + for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var nextState = _step4.value; + + if (!closure.has(nextState)) { + closure.add(nextState); + var nextClosure = nextState.getEpsilonClosure(); + nextClosure.forEach(function (state) { + return closure.add(state); + }); + } + } + } catch (err) { + _didIteratorError4 = true; + _iteratorError4 = err; + } finally { + try { + if (!_iteratorNormalCompletion4 && _iterator4.return) { + _iterator4.return(); + } + } finally { + if (_didIteratorError4) { + throw _iteratorError4; + } + } + } + })(); + } + + return this._epsilonClosure; + } + }]); + + return NFAState; +}(State); + +module.exports = NFAState; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js ***! + \*******************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), + EPSILON = _require.EPSILON, + EPSILON_CLOSURE = _require.EPSILON_CLOSURE; + +/** + * NFA fragment. + * + * NFA sub-fragments can be combined to a larger NFAs building + * the resulting machine. Combining the fragments is done by patching + * edges of the in- and out-states. + * + * 2-states implementation, `in`, and `out`. Eventually all transitions + * go to the same `out`, which can further be connected via ε-transition + * with other fragment. + */ + + +var NFA = function () { + function NFA(inState, outState) { + _classCallCheck(this, NFA); + + this.in = inState; + this.out = outState; + } + + /** + * Tries to recognize a string based on this NFA fragment. + */ + + + _createClass(NFA, [{ + key: 'matches', + value: function matches(string) { + return this.in.matches(string); + } + + /** + * Returns an alphabet for this NFA. + */ + + }, { + key: 'getAlphabet', + value: function getAlphabet() { + if (!this._alphabet) { + this._alphabet = new Set(); + var table = this.getTransitionTable(); + for (var state in table) { + var transitions = table[state]; + for (var symbol in transitions) { + if (symbol !== EPSILON_CLOSURE) { + this._alphabet.add(symbol); + } + } + } + } + return this._alphabet; + } + + /** + * Returns set of accepting states. + */ + + }, { + key: 'getAcceptingStates', + value: function getAcceptingStates() { + if (!this._acceptingStates) { + // States are determined during table construction. + this.getTransitionTable(); + } + return this._acceptingStates; + } + + /** + * Returns accepting state numbers. + */ + + }, { + key: 'getAcceptingStateNumbers', + value: function getAcceptingStateNumbers() { + if (!this._acceptingStateNumbers) { + this._acceptingStateNumbers = new Set(); + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var acceptingState = _step.value; + + this._acceptingStateNumbers.add(acceptingState.number); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + } + return this._acceptingStateNumbers; + } + + /** + * Builds and returns transition table. + */ + + }, { + key: 'getTransitionTable', + value: function getTransitionTable() { + var _this = this; + + if (!this._transitionTable) { + this._transitionTable = {}; + this._acceptingStates = new Set(); + + var visited = new Set(); + var symbols = new Set(); + + var visitState = function visitState(state) { + if (visited.has(state)) { + return; + } + + visited.add(state); + state.number = visited.size; + _this._transitionTable[state.number] = {}; + + if (state.accepting) { + _this._acceptingStates.add(state); + } + + var transitions = state.getTransitions(); + + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var _ref = _step2.value; + + var _ref2 = _slicedToArray(_ref, 2); + + var symbol = _ref2[0]; + var symbolTransitions = _ref2[1]; + + var combinedState = []; + symbols.add(symbol); + var _iteratorNormalCompletion3 = true; + var _didIteratorError3 = false; + var _iteratorError3 = undefined; + + try { + for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { + var nextState = _step3.value; + + visitState(nextState); + combinedState.push(nextState.number); + } + } catch (err) { + _didIteratorError3 = true; + _iteratorError3 = err; + } finally { + try { + if (!_iteratorNormalCompletion3 && _iterator3.return) { + _iterator3.return(); + } + } finally { + if (_didIteratorError3) { + throw _iteratorError3; + } + } + } + + _this._transitionTable[state.number][symbol] = combinedState; + } + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + }; + + // Traverse the graph starting from the `in`. + visitState(this.in); + + // Append epsilon-closure column. + visited.forEach(function (state) { + delete _this._transitionTable[state.number][EPSILON]; + _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) { + return s.number; + }); + }); + } + + return this._transitionTable; + } + }]); + + return NFA; +}(); + +module.exports = NFA; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js ***! + \***************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * Epsilon, the empty string. + */ + +var EPSILON = 'ε'; + +/** + * Epsilon-closure. + */ +var EPSILON_CLOSURE = EPSILON + '*'; + +module.exports = { + EPSILON: EPSILON, + EPSILON_CLOSURE: EPSILON_CLOSURE +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js ***! + \*****************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A generic FA State class (base for NFA and DFA). + * + * Maintains the transition map, and the flag whether + * the state is accepting. + */ + +var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var State = function () { + function State() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + _ref$accepting = _ref.accepting, + accepting = _ref$accepting === undefined ? false : _ref$accepting; + + _classCallCheck(this, State); + + /** + * Outgoing transitions to other states. + */ + this._transitions = new Map(); + + /** + * Whether the state is accepting. + */ + this.accepting = accepting; + } + + /** + * Returns transitions for this state. + */ + + + _createClass(State, [{ + key: 'getTransitions', + value: function getTransitions() { + return this._transitions; + } + + /** + * Creates a transition on symbol. + */ + + }, { + key: 'addTransition', + value: function addTransition(symbol, toState) { + this.getTransitionsOnSymbol(symbol).add(toState); + return this; + } + + /** + * Returns transitions set on symbol. + */ + + }, { + key: 'getTransitionsOnSymbol', + value: function getTransitionsOnSymbol(symbol) { + var transitions = this._transitions.get(symbol); + + if (!transitions) { + transitions = new Set(); + this._transitions.set(symbol, transitions); + } + + return transitions; + } + }]); + + return State; +}(); + +module.exports = State; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/index.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var clone = __webpack_require__(/*! ../utils/clone */ "./node_modules/regexp-tree/dist/utils/clone.js"); +var parser = __webpack_require__(/*! ../parser */ "./node_modules/regexp-tree/dist/parser/index.js"); +var transform = __webpack_require__(/*! ../transform */ "./node_modules/regexp-tree/dist/transform/index.js"); +var optimizationTransforms = __webpack_require__(/*! ./transforms */ "./node_modules/regexp-tree/dist/optimizer/transforms/index.js"); + +module.exports = { + /** + * Optimizer transforms a regular expression into an optimized version, + * replacing some sub-expressions with their idiomatic patterns. + * + * @param string | RegExp | AST - a regexp to optimize. + * + * @return TransformResult - an optimized regexp. + * + * Example: + * + * /[a-zA-Z_0-9][a-zA-Z_0-9]*\e{1,}/ + * + * Optimized to: + * + * /\w+e+/ + */ + optimize: function optimize(regexp) { + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$whitelist = _ref.whitelist, + whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist, + _ref$blacklist = _ref.blacklist, + blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist; + + var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys()); + + var transformToApply = transformsRaw.filter(function (transform) { + return !blacklist.includes(transform); + }); + + var ast = regexp; + if (regexp instanceof RegExp) { + regexp = '' + regexp; + } + + if (typeof regexp === 'string') { + ast = parser.parse(regexp); + } + + var result = new transform.TransformResult(ast); + var prevResultString = void 0; + + do { + // Get a copy of the current state here so + // we can compare it with the state at the + // end of the loop. + prevResultString = result.toString(); + ast = clone(result.getAST()); + + transformToApply.forEach(function (transformName) { + if (!optimizationTransforms.has(transformName)) { + throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', ')); + } + + var transformer = optimizationTransforms.get(transformName); + + // Don't override result just yet since we + // might want to rollback the transform + var newResult = transform.transform(ast, transformer); + + if (newResult.toString() !== result.toString()) { + if (newResult.toString().length <= result.toString().length) { + result = newResult; + } else { + // Result has changed but is not shorter: + // restore ast to its previous state. + + ast = clone(result.getAST()); + } + } + }); + + // Keep running the optimizer until it stops + // making any change to the regexp. + } while (result.toString() !== prevResultString); + + return result; + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js ***! + \*********************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var UPPER_A_CP = 'A'.codePointAt(0); +var UPPER_Z_CP = 'Z'.codePointAt(0); +/** + * Transforms case-insensitive regexp to lowercase + * + * /AaBbÏ/i -> /aabbï/i + */ +module.exports = { + _AZClassRanges: null, + _hasUFlag: false, + init: function init(ast) { + this._AZClassRanges = new Set(); + this._hasUFlag = ast.flags.includes('u'); + }, + shouldRun: function shouldRun(ast) { + return ast.flags.includes('i'); + }, + Char: function Char(path) { + var node = path.node, + parent = path.parent; + + if (isNaN(node.codePoint)) { + return; + } + + // Engine support for case-insensitive matching without the u flag + // for characters above \u1000 does not seem reliable. + if (!this._hasUFlag && node.codePoint >= 0x1000) { + return; + } + + if (parent.type === 'ClassRange') { + // The only class ranges we handle must be inside A-Z. + // After the `from` char is processed, the isAZClassRange test + // will be false, so we use a Set to keep track of parents and + // process the `to` char. + if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) { + return; + } + this._AZClassRanges.add(parent); + } + + var lower = node.symbol.toLowerCase(); + if (lower !== node.symbol) { + node.value = displaySymbolAsValue(lower, node); + node.symbol = lower; + node.codePoint = lower.codePointAt(0); + } + } +}; + +function isAZClassRange(classRange) { + var from = classRange.from, + to = classRange.to; + // A-Z + + return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP; +} + +function displaySymbolAsValue(symbol, node) { + var codePoint = symbol.codePointAt(0); + if (node.kind === 'decimal') { + return '\\' + codePoint; + } + if (node.kind === 'oct') { + return '\\0' + codePoint.toString(8); + } + if (node.kind === 'hex') { + return '\\x' + codePoint.toString(16); + } + if (node.kind === 'unicode') { + if (node.isSurrogatePair) { + var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint), + lead = _getSurrogatePairFrom.lead, + trail = _getSurrogatePairFrom.trail; + + return '\\u' + '0'.repeat(4 - lead.length) + lead + '\\u' + '0'.repeat(4 - trail.length) + trail; + } else if (node.value.includes('{')) { + return '\\u{' + codePoint.toString(16) + '}'; + } else { + var code = codePoint.toString(16); + return '\\u' + '0'.repeat(4 - code.length) + code; + } + } + // simple + return symbol; +} + +/** + * Converts a code point to a surrogate pair. + * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7 + * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf) + * @param {number} codePoint - Between 0x10000 and 0x10ffff + * @returns {{lead: string, trail: string}} + */ +function getSurrogatePairFromCodePoint(codePoint) { + var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800; + var trail = (codePoint - 0x10000) % 0x400 + 0xdc00; + return { + lead: lead.toString(16), + trail: trail.toString(16) + }; +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js ***! + \******************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to merge class ranges. + * + * [a-ec] -> [a-e] + * [a-ec-e] -> [a-e] + * [\w\da-f] -> [\w] + * [abcdef] -> [a-f] + */ + +module.exports = { + _hasIUFlags: false, + init: function init(ast) { + this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u'); + }, + CharacterClass: function CharacterClass(path) { + var node = path.node; + + var expressions = node.expressions; + + var metas = []; + // Extract metas + expressions.forEach(function (expression) { + if (isMeta(expression)) { + metas.push(expression.value); + } + }); + + expressions.sort(sortCharClass); + + for (var i = 0; i < expressions.length; i++) { + var expression = expressions[i]; + if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) { + expressions.splice(i, 1); + i--; + } else { + var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions); + expressions.splice(i - nbMergedChars + 1, nbMergedChars); + i -= nbMergedChars; + } + } + } +}; + +/** + * Sorts expressions in char class in the following order: + * - meta chars, ordered alphabetically by value + * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges) + * - if ambiguous, class range comes before char + * - if ambiguous between two class ranges, orders alphabetically by `to` char + * - control chars, ordered alphabetically by value + * @param {Object} a - Left Char or ClassRange node + * @param {Object} b - Right Char or ClassRange node + * @returns {number} + */ +function sortCharClass(a, b) { + var aValue = getSortValue(a); + var bValue = getSortValue(b); + + if (aValue === bValue) { + // We want ClassRange before Char + // [bb-d] -> [b-db] + if (a.type === 'ClassRange' && b.type !== 'ClassRange') { + return -1; + } + if (b.type === 'ClassRange' && a.type !== 'ClassRange') { + return 1; + } + if (a.type === 'ClassRange' && b.type === 'ClassRange') { + return getSortValue(a.to) - getSortValue(b.to); + } + if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) { + return a.value < b.value ? -1 : 1; + } + } + return aValue - bValue; +} + +/** + * @param {Object} expression - Char or ClassRange node + * @returns {number} + */ +function getSortValue(expression) { + if (expression.type === 'Char') { + if (expression.value === '-') { + return Infinity; + } + if (expression.kind === 'control') { + return Infinity; + } + if (expression.kind === 'meta' && isNaN(expression.codePoint)) { + return -1; + } + return expression.codePoint; + } + // ClassRange + return expression.from.codePoint; +} + +/** + * Checks if a node is a meta char from the set \d\w\s\D\W\S + * @param {Object} expression - Char or ClassRange node + * @param {?string} value + * @returns {boolean} + */ +function isMeta(expression) { + var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\[dws]$/i.test(expression.value)); +} + +/** + * @param {Object} expression - Char or ClassRange node + * @returns {boolean} + */ +function isControl(expression) { + return expression.type === 'Char' && expression.kind === 'control'; +} + +/** + * @param {Object} expression - Char or ClassRange node + * @param {string[]} metas - Array of meta chars, e.g. ["\\w", "\\s"] + * @param {boolean} hasIUFlags + * @returns {boolean} + */ +function fitsInMetas(expression, metas, hasIUFlags) { + for (var i = 0; i < metas.length; i++) { + if (fitsInMeta(expression, metas[i], hasIUFlags)) { + return true; + } + } + return false; +} + +/** + * @param {Object} expression - Char or ClassRange node + * @param {string} meta - e.g. "\\w" + * @param {boolean} hasIUFlags + * @returns {boolean} + */ +function fitsInMeta(expression, meta, hasIUFlags) { + if (expression.type === 'ClassRange') { + return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags); + } + + // Special cases: + // \S contains \w and \d + if (meta === '\\S' && (isMeta(expression, '\\w') || isMeta(expression, '\\d'))) { + return true; + } + // \D contains \W and \s + if (meta === '\\D' && (isMeta(expression, '\\W') || isMeta(expression, '\\s'))) { + return true; + } + // \w contains \d + if (meta === '\\w' && isMeta(expression, '\\d')) { + return true; + } + // \W contains \s + if (meta === '\\W' && isMeta(expression, '\\s')) { + return true; + } + + if (expression.type !== 'Char' || isNaN(expression.codePoint)) { + return false; + } + + if (meta === '\\s') { + return fitsInMetaS(expression); + } + if (meta === '\\S') { + return !fitsInMetaS(expression); + } + if (meta === '\\d') { + return fitsInMetaD(expression); + } + if (meta === '\\D') { + return !fitsInMetaD(expression); + } + if (meta === '\\w') { + return fitsInMetaW(expression, hasIUFlags); + } + if (meta === '\\W') { + return !fitsInMetaW(expression, hasIUFlags); + } + return false; +} + +/** + * @param {Object} expression - Char node with codePoint + * @returns {boolean} + */ +function fitsInMetaS(expression) { + return expression.codePoint === 0x0009 || // \t + expression.codePoint === 0x000a || // \n + expression.codePoint === 0x000b || // \v + expression.codePoint === 0x000c || // \f + expression.codePoint === 0x000d || // \r + expression.codePoint === 0x0020 || // space + expression.codePoint === 0x00a0 || // nbsp + expression.codePoint === 0x1680 || // part of Zs + expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs + expression.codePoint === 0x2028 || // line separator + expression.codePoint === 0x2029 || // paragraph separator + expression.codePoint === 0x202f || // part of Zs + expression.codePoint === 0x205f || // part of Zs + expression.codePoint === 0x3000 || // part of Zs + expression.codePoint === 0xfeff; // zwnbsp +} + +/** + * @param {Object} expression - Char node with codePoint + * @returns {boolean} + */ +function fitsInMetaD(expression) { + return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9 +} + +/** + * @param {Object} expression - Char node with codePoint + * @param {boolean} hasIUFlags + * @returns {boolean} + */ +function fitsInMetaW(expression, hasIUFlags) { + return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z + expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z + expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a); +} + +/** + * @param {Object} expression - Char or ClassRange node + * @param {Object} classRange - Char or ClassRange node + * @returns {boolean} + */ +function combinesWithPrecedingClassRange(expression, classRange) { + if (classRange && classRange.type === 'ClassRange') { + if (fitsInClassRange(expression, classRange)) { + // [a-gc] -> [a-g] + // [a-gc-e] -> [a-g] + return true; + } else if ( + // We only want \w chars or char codes to keep readability + isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) { + // [a-de] -> [a-e] + classRange.to = expression; + return true; + } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) { + // [a-db-f] -> [a-f] + // [b-fa-d] -> [a-f] + // [a-cd-f] -> [a-f] + if (expression.from.codePoint < classRange.from.codePoint) { + classRange.from = expression.from; + } + if (expression.to.codePoint > classRange.to.codePoint) { + classRange.to = expression.to; + } + return true; + } + } + return false; +} + +/** + * @param {Object} expression - Char or ClassRange node + * @param {Object} classRange - Char or ClassRange node + * @returns {boolean} + */ +function combinesWithFollowingClassRange(expression, classRange) { + if (classRange && classRange.type === 'ClassRange') { + // Considering the elements were ordered alphabetically, + // there is only one case to handle + // [ab-e] -> [a-e] + if ( + // We only want \w chars or char codes to keep readability + isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) { + classRange.from = expression; + return true; + } + } + + return false; +} + +/** + * @param {Object} expression - Char or ClassRange node + * @param {Object} classRange - ClassRange node + * @returns {boolean} + */ +function fitsInClassRange(expression, classRange) { + if (expression.type === 'Char' && isNaN(expression.codePoint)) { + return false; + } + if (expression.type === 'ClassRange') { + return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange); + } + return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint; +} + +/** + * @param {Object} expression - Char or ClassRange node + * @param {Number} index + * @param {Object[]} expressions - expressions in CharClass + * @returns {number} - Number of characters combined with expression + */ +function charCombinesWithPrecedingChars(expression, index, expressions) { + // We only want \w chars or char codes to keep readability + if (!isMetaWCharOrCode(expression)) { + return 0; + } + var nbMergedChars = 0; + while (index > 0) { + var currentExpression = expressions[index]; + var precedingExpresion = expressions[index - 1]; + if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) { + nbMergedChars++; + index--; + } else { + break; + } + } + + if (nbMergedChars > 1) { + expressions[index] = { + type: 'ClassRange', + from: expressions[index], + to: expression + }; + return nbMergedChars; + } + return 0; +} + +function isMetaWCharOrCode(expression) { + return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal'); +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js ***! + \*********************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to simplify character classes + * spanning only one or two chars. + * + * [a-a] -> [a] + * [a-b] -> [ab] + */ + +module.exports = { + ClassRange: function ClassRange(path) { + var node = path.node; + + + if (node.from.codePoint === node.to.codePoint) { + + path.replace(node.from); + } else if (node.from.codePoint === node.to.codePoint - 1) { + + path.getParent().insertChildAt(node.to, path.index + 1); + path.replace(node.from); + } + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js ***! + \******************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to remove duplicates from character classes. + */ + +module.exports = { + CharacterClass: function CharacterClass(path) { + var node = path.node; + + var sources = {}; + + for (var i = 0; i < node.expressions.length; i++) { + var childPath = path.getChild(i); + var source = childPath.jsonEncode(); + + if (sources.hasOwnProperty(source)) { + childPath.remove(); + + // Since we remove the current node. + // TODO: make it simpler for users with a method. + i--; + } + + sources[source] = true; + } + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js ***! + \********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to replace standard character classes with + * their meta symbols equivalents. + */ + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +module.exports = { + _hasIFlag: false, + _hasUFlag: false, + init: function init(ast) { + this._hasIFlag = ast.flags.includes('i'); + this._hasUFlag = ast.flags.includes('u'); + }, + CharacterClass: function CharacterClass(path) { + // [0-9] -> \d + rewriteNumberRanges(path); + + // [a-zA-Z_0-9] -> \w + rewriteWordRanges(path, this._hasIFlag, this._hasUFlag); + + // [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] -> \s + rewriteWhitespaceRanges(path); + } +}; + +/** + * Rewrites number ranges: [0-9] -> \d + */ +function rewriteNumberRanges(path) { + var node = path.node; + + + node.expressions.forEach(function (expression, i) { + if (isFullNumberRange(expression)) { + path.getChild(i).replace({ + type: 'Char', + value: '\\d', + kind: 'meta' + }); + } + }); +} + +/** + * Rewrites word ranges: [a-zA-Z_0-9] -> \w + * Thus, the ranges may go in any order, and other symbols/ranges + * are kept untouched, e.g. [a-z_\dA-Z$] -> [\w$] + */ +function rewriteWordRanges(path, hasIFlag, hasUFlag) { + var node = path.node; + + + var numberPath = null; + var lowerCasePath = null; + var upperCasePath = null; + var underscorePath = null; + var u017fPath = null; + var u212aPath = null; + + node.expressions.forEach(function (expression, i) { + // \d + if (isMetaChar(expression, '\\d')) { + numberPath = path.getChild(i); + } + + // a-z + else if (isLowerCaseRange(expression)) { + lowerCasePath = path.getChild(i); + } + + // A-Z + else if (isUpperCaseRange(expression)) { + upperCasePath = path.getChild(i); + } + + // _ + else if (isUnderscore(expression)) { + underscorePath = path.getChild(i); + } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) { + u017fPath = path.getChild(i); + } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) { + u212aPath = path.getChild(i); + } + }); + + // If we found the whole pattern, replace it. + if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) { + // Put \w in place of \d. + numberPath.replace({ + type: 'Char', + value: '\\w', + kind: 'meta' + }); + + // Other paths are removed. + if (lowerCasePath) { + lowerCasePath.remove(); + } + if (upperCasePath) { + upperCasePath.remove(); + } + underscorePath.remove(); + if (u017fPath) { + u017fPath.remove(); + } + if (u212aPath) { + u212aPath.remove(); + } + } +} + +/** + * Rewrites whitespace ranges: [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] -> \s. + */ +var whitespaceRangeTests = [function (node) { + return isChar(node, ' '); +}].concat(_toConsumableArray(['\\f', '\\n', '\\r', '\\t', '\\v'].map(function (char) { + return function (node) { + return isMetaChar(node, char); + }; +})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) { + return function (node) { + return isCodePoint(node, codePoint); + }; +})), [function (node) { + return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a); +}]); + +function rewriteWhitespaceRanges(path) { + var node = path.node; + + + if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) { + return node.expressions.some(function (expression) { + return test(expression); + }); + })) { + return; + } + + // If we found the whole pattern, replace it. + + // Put \s in place of \n. + var nNode = node.expressions.find(function (expression) { + return isMetaChar(expression, '\\n'); + }); + nNode.value = '\\s'; + nNode.symbol = undefined; + nNode.codePoint = NaN; + + // Other paths are removed. + node.expressions.map(function (expression, i) { + return whitespaceRangeTests.some(function (test) { + return test(expression); + }) ? path.getChild(i) : undefined; + }).filter(Boolean).forEach(function (path) { + return path.remove(); + }); +} + +function isFullNumberRange(node) { + return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9'; +} + +function isChar(node, value) { + var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple'; + + return node.type === 'Char' && node.value === value && node.kind === kind; +} + +function isMetaChar(node, value) { + return isChar(node, value, 'meta'); +} + +function isLowerCaseRange(node) { + return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z'; +} + +function isUpperCaseRange(node) { + return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z'; +} + +function isUnderscore(node) { + return node.type === 'Char' && node.value === '_' && node.kind === 'simple'; +} + +function isCodePoint(node, codePoint) { + return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint; +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js ***! + \***************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to replace single char character classes with + * just that character. + * + * [\d] -> \d, [^\w] -> \W + */ + +module.exports = { + CharacterClass: function CharacterClass(path) { + var node = path.node; + + + if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) { + return; + } + + var _node$expressions$ = node.expressions[0], + value = _node$expressions$.value, + kind = _node$expressions$.kind, + escaped = _node$expressions$.escaped; + + + if (node.negative) { + // For negative can extract only meta chars like [^\w] -> \W + // cannot do for [^a] -> a (wrong). + if (!isMeta(value)) { + return; + } + + value = getInverseMeta(value); + } + + path.replace({ + type: 'Char', + value: value, + kind: kind, + escaped: escaped || shouldEscape(value) + }); + } +}; + +function isAppropriateChar(node) { + return node.type === 'Char' && + // We don't extract [\b] (backspace) since \b has different + // semantics (word boundary). + node.value !== '\\b'; +} + +function isMeta(value) { + return (/^\\[dwsDWS]$/.test(value) + ); +} + +function getInverseMeta(value) { + return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase() + ); +} + +function hasAppropriateSiblings(path) { + var parent = path.parent, + index = path.index; + + + if (parent.type !== 'Alternative') { + return true; + } + + var previousNode = parent.expressions[index - 1]; + if (previousNode == null) { + return true; + } + + // Don't optimized \1[0] to \10 + if (previousNode.type === 'Backreference' && previousNode.kind === 'number') { + return false; + } + + // Don't optimized \2[0] to \20 + if (previousNode.type === 'Char' && previousNode.kind === 'decimal') { + return false; + } + + return true; +} + +// Note: \{ and \} are always preserved to avoid `a[{]2[}]` turning +// into `a{2}`. +function shouldEscape(value) { + return (/[*[()+?$./{}|]/.test(value) + ); +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js": +/*!**************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js ***! + \**************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var UPPER_A_CP = 'A'.codePointAt(0); +var UPPER_Z_CP = 'Z'.codePointAt(0); +var LOWER_A_CP = 'a'.codePointAt(0); +var LOWER_Z_CP = 'z'.codePointAt(0); +var DIGIT_0_CP = '0'.codePointAt(0); +var DIGIT_9_CP = '9'.codePointAt(0); + +/** + * A regexp-tree plugin to transform coded chars into simple chars. + * + * \u0061 -> a + */ +module.exports = { + Char: function Char(path) { + var node = path.node, + parent = path.parent; + + if (isNaN(node.codePoint) || node.kind === 'simple') { + return; + } + + if (parent.type === 'ClassRange') { + if (!isSimpleRange(parent)) { + return; + } + } + + if (!isPrintableASCIIChar(node.codePoint)) { + return; + } + + var symbol = String.fromCodePoint(node.codePoint); + var newChar = { + type: 'Char', + kind: 'simple', + value: symbol, + symbol: symbol, + codePoint: node.codePoint + }; + if (needsEscape(symbol, parent.type)) { + newChar.escaped = true; + } + path.replace(newChar); + } +}; + +/** + * Checks if a range is included either in 0-9, a-z or A-Z + * @param classRange + * @returns {boolean} + */ +function isSimpleRange(classRange) { + var from = classRange.from, + to = classRange.to; + + return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP; +} + +/** + * Checks if a code point in the range of printable ASCII chars + * (DEL char excluded) + * @param codePoint + * @returns {boolean} + */ +function isPrintableASCIIChar(codePoint) { + return codePoint >= 0x20 && codePoint <= 0x7e; +} + +function needsEscape(symbol, parentType) { + if (parentType === 'ClassRange' || parentType === 'CharacterClass') { + return (/[\]\\^-]/.test(symbol) + ); + } + + return (/[*[()+?^$./\\|{}]/.test(symbol) + ); +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js": +/*!**********************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js ***! + \**********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to remove unnecessary escape. + * + * \e -> e + * + * [\(] -> [(] + */ + +module.exports = { + _hasXFlag: false, + init: function init(ast) { + this._hasXFlag = ast.flags.includes('x'); + }, + Char: function Char(path) { + var node = path.node; + + + if (!node.escaped) { + return; + } + + if (shouldUnescape(path, this._hasXFlag)) { + delete node.escaped; + } + } +}; + +function shouldUnescape(path, hasXFlag) { + var value = path.node.value, + index = path.index, + parent = path.parent; + + // In char class (, etc are allowed. + + if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') { + return !preservesEscape(value, index, parent, hasXFlag); + } + + return !preservesInCharClass(value, index, parent); +} + +/** + * \], \\, \^, \- + */ +function preservesInCharClass(value, index, parent) { + if (value === '^') { + // Avoid [\^a] turning into [^a] + return index === 0 && !parent.negative; + } + if (value === '-') { + // Avoid [a\-z] turning into [a-z] + return true; + } + return (/[\]\\]/.test(value) + ); +} + +function preservesEscape(value, index, parent, hasXFlag) { + if (value === '{') { + return preservesOpeningCurlyBraceEscape(index, parent); + } + + if (value === '}') { + return preservesClosingCurlyBraceEscape(index, parent); + } + + if (hasXFlag && /[ #]/.test(value)) { + return true; + } + + return (/[*[()+?^$./\\|]/.test(value) + ); +} + +function consumeNumbers(startIndex, parent, rtl) { + var i = startIndex; + var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i]; + + while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\d/.test(siblingNode.value)) { + rtl ? i-- : i++; + siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i]; + } + + return Math.abs(startIndex - i); +} + +function isSimpleChar(node, value) { + return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value; +} + +function preservesOpeningCurlyBraceEscape(index, parent) { + // (?:\{) -> (?:{) + if (index == null) { + return false; + } + + var nbFollowingNumbers = consumeNumbers(index + 1, parent); + var i = index + nbFollowingNumbers + 1; + var nextSiblingNode = i < parent.expressions.length && parent.expressions[i]; + + if (nbFollowingNumbers) { + // Avoid \{3} turning into {3} + if (isSimpleChar(nextSiblingNode, '}')) { + return true; + } + + if (isSimpleChar(nextSiblingNode, ',')) { + nbFollowingNumbers = consumeNumbers(i + 1, parent); + i = i + nbFollowingNumbers + 1; + nextSiblingNode = i < parent.expressions.length && parent.expressions[i]; + + // Avoid \{3,} turning into {3,} + return isSimpleChar(nextSiblingNode, '}'); + } + } + return false; +} + +function preservesClosingCurlyBraceEscape(index, parent) { + // (?:\{) -> (?:{) + if (index == null) { + return false; + } + + var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true); + var i = index - nbPrecedingNumbers - 1; + var previousSiblingNode = i >= 0 && parent.expressions[i]; + + // Avoid {3\} turning into {3} + if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) { + return true; + } + + if (isSimpleChar(previousSiblingNode, ',')) { + nbPrecedingNumbers = consumeNumbers(i - 1, parent, true); + i = i - nbPrecedingNumbers - 1; + previousSiblingNode = i < parent.expressions.length && parent.expressions[i]; + + // Avoid {3,\} turning into {3,} + return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{'); + } + return false; +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js": +/*!***************************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js ***! + \***************************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to transform surrogate pairs into single unicode code point + * + * \ud83d\ude80 -> \u{1f680} + */ + +module.exports = { + shouldRun: function shouldRun(ast) { + return ast.flags.includes('u'); + }, + Char: function Char(path) { + var node = path.node; + + if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) { + return; + } + node.value = '\\u{' + node.codePoint.toString(16) + '}'; + delete node.isSurrogatePair; + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js ***! + \****************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var NodePath = __webpack_require__(/*! ../../traverse/node-path */ "./node_modules/regexp-tree/dist/traverse/node-path.js"); + +var _require = __webpack_require__(/*! ../../transform/utils */ "./node_modules/regexp-tree/dist/transform/utils.js"), + increaseQuantifierByOne = _require.increaseQuantifierByOne; + +/** + * A regexp-tree plugin to combine repeating patterns. + * + * /^abcabcabc/ -> /^abc{3}/ + * /^(?:abc){2}abc/ -> /^(?:abc){3}/ + * /^abc(?:abc){2}/ -> /^(?:abc){3}/ + */ + +module.exports = { + Alternative: function Alternative(path) { + var node = path.node; + + // We can skip the first child + + var index = 1; + while (index < node.expressions.length) { + var child = path.getChild(index); + index = Math.max(1, combineRepeatingPatternLeft(path, child, index)); + + if (index >= node.expressions.length) { + break; + } + + child = path.getChild(index); + index = Math.max(1, combineWithPreviousRepetition(path, child, index)); + + if (index >= node.expressions.length) { + break; + } + + child = path.getChild(index); + index = Math.max(1, combineRepetitionWithPrevious(path, child, index)); + + index++; + } + } +}; + +// abcabc -> (?:abc){2} +function combineRepeatingPatternLeft(alternative, child, index) { + var node = alternative.node; + + + var nbPossibleLengths = Math.ceil(index / 2); + var i = 0; + + while (i < nbPossibleLengths) { + var startIndex = index - 2 * i - 1; + var right = void 0, + left = void 0; + + if (i === 0) { + right = child; + left = alternative.getChild(startIndex); + } else { + right = NodePath.getForNode({ + type: 'Alternative', + expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node]) + }); + + left = NodePath.getForNode({ + type: 'Alternative', + expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i))) + }); + } + + if (right.hasEqualSource(left)) { + for (var j = 0; j < 2 * i + 1; j++) { + alternative.getChild(startIndex).remove(); + } + + child.replace({ + type: 'Repetition', + expression: i === 0 && right.node.type !== 'Repetition' ? right.node : { + type: 'Group', + capturing: false, + expression: right.node + }, + quantifier: { + type: 'Quantifier', + kind: 'Range', + from: 2, + to: 2, + greedy: true + } + }); + return startIndex; + } + + i++; + } + + return index; +} + +// (?:abc){2}abc -> (?:abc){3} +function combineWithPreviousRepetition(alternative, child, index) { + var node = alternative.node; + + + var i = 0; + while (i < index) { + var previousChild = alternative.getChild(i); + + if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) { + var left = previousChild.getChild(); + var right = void 0; + + if (left.node.type === 'Group' && !left.node.capturing) { + left = left.getChild(); + } + + if (i + 1 === index) { + right = child; + if (right.node.type === 'Group' && !right.node.capturing) { + right = right.getChild(); + } + } else { + right = NodePath.getForNode({ + type: 'Alternative', + expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1))) + }); + } + + if (left.hasEqualSource(right)) { + for (var j = i; j < index; j++) { + alternative.getChild(i + 1).remove(); + } + + increaseQuantifierByOne(previousChild.node.quantifier); + + return i; + } + } + + i++; + } + return index; +} + +// abc(?:abc){2} -> (?:abc){3} +function combineRepetitionWithPrevious(alternative, child, index) { + var node = alternative.node; + + + if (child.node.type === 'Repetition' && child.node.quantifier.greedy) { + var right = child.getChild(); + var left = void 0; + + if (right.node.type === 'Group' && !right.node.capturing) { + right = right.getChild(); + } + + var rightLength = void 0; + if (right.node.type === 'Alternative') { + rightLength = right.node.expressions.length; + left = NodePath.getForNode({ + type: 'Alternative', + expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index))) + }); + } else { + rightLength = 1; + left = alternative.getChild(index - 1); + if (left.node.type === 'Group' && !left.node.capturing) { + left = left.getChild(); + } + } + + if (left.hasEqualSource(right)) { + for (var j = index - rightLength; j < index; j++) { + alternative.getChild(index - rightLength).remove(); + } + + increaseQuantifierByOne(child.node.quantifier); + + return index - rightLength; + } + } + return index; +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js": +/*!*******************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js ***! + \*******************************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var NodePath = __webpack_require__(/*! ../../traverse/node-path */ "./node_modules/regexp-tree/dist/traverse/node-path.js"); + +var _require = __webpack_require__(/*! ../../transform/utils */ "./node_modules/regexp-tree/dist/transform/utils.js"), + disjunctionToList = _require.disjunctionToList, + listToDisjunction = _require.listToDisjunction; + +/** + * Removes duplicates from a disjunction sequence: + * + * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/ + */ + + +module.exports = { + Disjunction: function Disjunction(path) { + var node = path.node; + + // Make unique nodes. + + var uniqueNodesMap = {}; + + var parts = disjunctionToList(node).filter(function (part) { + var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null'; + + // Already recorded this part, filter out. + if (uniqueNodesMap.hasOwnProperty(encoded)) { + return false; + } + + uniqueNodesMap[encoded] = part; + return true; + }); + + // Replace with the optimized disjunction. + path.replace(listToDisjunction(parts)); + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js ***! + \************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to replace single char group disjunction to char group + * + * a|b|c -> [abc] + * [12]|3|4 -> [1234] + * (a|b|c) -> ([abc]) + * (?:a|b|c) -> [abc] + */ + +module.exports = { + Disjunction: function Disjunction(path) { + var node = path.node, + parent = path.parent; + + + if (!handlers[parent.type]) { + return; + } + + var charset = new Map(); + + if (!shouldProcess(node, charset) || !charset.size) { + return; + } + + var characterClass = { + type: 'CharacterClass', + expressions: Array.from(charset.keys()).sort().map(function (key) { + return charset.get(key); + }) + }; + + handlers[parent.type](path.getParent(), characterClass); + } +}; + +var handlers = { + RegExp: function RegExp(path, characterClass) { + var node = path.node; + + + node.body = characterClass; + }, + Group: function Group(path, characterClass) { + var node = path.node; + + + if (node.capturing) { + node.expression = characterClass; + } else { + path.replace(characterClass); + } + } +}; + +function shouldProcess(expression, charset) { + if (!expression) { + // Abort on empty disjunction part + return false; + } + + var type = expression.type; + + + if (type === 'Disjunction') { + var left = expression.left, + right = expression.right; + + + return shouldProcess(left, charset) && shouldProcess(right, charset); + } else if (type === 'Char') { + if (expression.kind === 'meta' && expression.symbol === '.') { + return false; + } + + var value = expression.value; + + + charset.set(value, expression); + + return true; + } else if (type === 'CharacterClass' && !expression.negative) { + return expression.expressions.every(function (expression) { + return shouldProcess(expression, charset); + }); + } + + return false; +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/index.js": +/*!*********************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/index.js ***! + \*********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +module.exports = new Map([ +// \ud83d\ude80 -> \u{1f680} +['charSurrogatePairToSingleUnicode', __webpack_require__(/*! ./char-surrogate-pair-to-single-unicode-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js")], + +// \u0061 -> a +['charCodeToSimpleChar', __webpack_require__(/*! ./char-code-to-simple-char-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js")], + +// /Aa/i -> /aa/i +['charCaseInsensitiveLowerCaseTransform', __webpack_require__(/*! ./char-case-insensitive-lowercase-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js")], + +// [\d\d] -> [\d] +['charClassRemoveDuplicates', __webpack_require__(/*! ./char-class-remove-duplicates-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js")], + +// a{1,2}a{2,3} -> a{3,5} +['quantifiersMerge', __webpack_require__(/*! ./quantifiers-merge-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js")], + +// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a +['quantifierRangeToSymbol', __webpack_require__(/*! ./quantifier-range-to-symbol-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js")], + +// [a-a] -> [a], [a-b] -> [ab] +['charClassClassrangesToChars', __webpack_require__(/*! ./char-class-classranges-to-chars-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js")], + +// [0-9] -> [\d] +['charClassToMeta', __webpack_require__(/*! ./char-class-to-meta-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js")], + +// [\d] -> \d, [^\w] -> \W +['charClassToSingleChar', __webpack_require__(/*! ./char-class-to-single-char-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js")], + +// \e -> e +['charEscapeUnescape', __webpack_require__(/*! ./char-escape-unescape-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js")], + +// [a-de-f] -> [a-f] +['charClassClassrangesMerge', __webpack_require__(/*! ./char-class-classranges-merge-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js")], + +// (ab|ab) -> (ab) +['disjunctionRemoveDuplicates', __webpack_require__(/*! ./disjunction-remove-duplicates-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js")], + +// (a|b|c) -> [abc] +['groupSingleCharsToCharClass', __webpack_require__(/*! ./group-single-chars-to-char-class */ "./node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js")], + +// (?:)a -> a +['removeEmptyGroup', __webpack_require__(/*! ./remove-empty-group-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js")], + +// (?:a) -> a +['ungroup', __webpack_require__(/*! ./ungroup-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js")], + +// abcabcabc -> (?:abc){3} +['combineRepeatingPatterns', __webpack_require__(/*! ./combine-repeating-patterns-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js")]]); + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js ***! + \****************************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to replace different range-based quantifiers + * with their symbol equivalents. + * + * a{0,} -> a* + * a{1,} -> a+ + * a{1} -> a + * + * NOTE: the following is automatically handled in the generator: + * + * a{3,3} -> a{3} + */ + +module.exports = { + Quantifier: function Quantifier(path) { + var node = path.node; + + + if (node.kind !== 'Range') { + return; + } + + // a{0,} -> a* + rewriteOpenZero(path); + + // a{1,} -> a+ + rewriteOpenOne(path); + + // a{1} -> a + rewriteExactOne(path); + } +}; + +function rewriteOpenZero(path) { + var node = path.node; + + + if (node.from !== 0 || node.to) { + return; + } + + node.kind = '*'; + delete node.from; +} + +function rewriteOpenOne(path) { + var node = path.node; + + + if (node.from !== 1 || node.to) { + return; + } + + node.kind = '+'; + delete node.from; +} + +function rewriteExactOne(path) { + var node = path.node; + + + if (node.from !== 1 || node.to !== 1) { + return; + } + + path.parentPath.replace(path.parentPath.node.expression); +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js ***! + \*******************************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var _require = __webpack_require__(/*! ../../transform/utils */ "./node_modules/regexp-tree/dist/transform/utils.js"), + increaseQuantifierByOne = _require.increaseQuantifierByOne; + +/** + * A regexp-tree plugin to merge quantifiers + * + * a+a+ -> a{2,} + * a{2}a{3} -> a{5} + * a{1,2}a{2,3} -> a{3,5} + */ + + +module.exports = { + Repetition: function Repetition(path) { + var node = path.node, + parent = path.parent; + + + if (parent.type !== 'Alternative' || !path.index) { + return; + } + + var previousSibling = path.getPreviousSibling(); + + if (!previousSibling) { + return; + } + + if (previousSibling.node.type === 'Repetition') { + if (!previousSibling.getChild().hasEqualSource(path.getChild())) { + return; + } + + var _extractFromTo = extractFromTo(previousSibling.node.quantifier), + previousSiblingFrom = _extractFromTo.from, + previousSiblingTo = _extractFromTo.to; + + var _extractFromTo2 = extractFromTo(node.quantifier), + nodeFrom = _extractFromTo2.from, + nodeTo = _extractFromTo2.to; + + // It's does not seem reliable to merge quantifiers with different greediness + // when none of both is a greedy open range + + + if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) { + return; + } + + // a*a* -> a* + // a*a+ -> a+ + // a+a+ -> a{2,} + // a{2}a{4} -> a{6} + // a{1,2}a{2,3} -> a{3,5} + // a{1,}a{2,} -> a{3,} + // a+a{2,} -> a{3,} + + // a??a{2,} -> a{2,} + // a*?a{2,} -> a{2,} + // a+?a{2,} -> a{3,} + + node.quantifier.kind = 'Range'; + node.quantifier.from = previousSiblingFrom + nodeFrom; + if (previousSiblingTo && nodeTo) { + node.quantifier.to = previousSiblingTo + nodeTo; + } else { + delete node.quantifier.to; + } + if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) { + node.quantifier.greedy = true; + } + + previousSibling.remove(); + } else { + if (!previousSibling.hasEqualSource(path.getChild())) { + return; + } + + increaseQuantifierByOne(node.quantifier); + previousSibling.remove(); + } + } +}; + +function isGreedyOpenRange(quantifier) { + return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to); +} + +function extractFromTo(quantifier) { + var from = void 0, + to = void 0; + if (quantifier.kind === '*') { + from = 0; + } else if (quantifier.kind === '+') { + from = 1; + } else if (quantifier.kind === '?') { + from = 0; + to = 1; + } else { + from = quantifier.from; + if (quantifier.to) { + to = quantifier.to; + } + } + return { from: from, to: to }; +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js ***! + \********************************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to remove non-capturing empty groups. + * + * /(?:)a/ -> /a/ + * /a|(?:)/ -> /a|/ + */ + +module.exports = { + Group: function Group(path) { + var node = path.node, + parent = path.parent; + + var childPath = path.getChild(); + + if (node.capturing || childPath) { + return; + } + + if (parent.type === 'Repetition') { + + path.getParent().replace(node); + } else if (parent.type !== 'RegExp') { + + path.remove(); + } + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js ***! + \*********************************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * A regexp-tree plugin to remove unnecessary groups. + * + * /(?:a)/ -> /a/ + */ + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +module.exports = { + Group: function Group(path) { + var node = path.node, + parent = path.parent; + + var childPath = path.getChild(); + + if (node.capturing || !childPath) { + return; + } + + // Don't optimize \1(?:0) to \10 + if (!hasAppropriateSiblings(path)) { + return; + } + + // Don't optimize /a(?:b|c)/ to /ab|c/ + // but /(?:b|c)/ to /b|c/ is ok + if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') { + return; + } + + // Don't optimize /(?:ab)+/ to /ab+/ + // but /(?:a)+/ to /a+/ is ok + // and /(?:[a-d])+/ to /[a-d]+/ is ok too + if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') { + return; + } + + if (childPath.node.type === 'Alternative') { + var parentPath = path.getParent(); + if (parentPath.node.type === 'Alternative') { + // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative + + parentPath.replace({ + type: 'Alternative', + expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1))) + }); + } + } else { + path.replace(childPath.node); + } + } +}; + +function hasAppropriateSiblings(path) { + var parent = path.parent, + index = path.index; + + + if (parent.type !== 'Alternative') { + return true; + } + + var previousNode = parent.expressions[index - 1]; + if (previousNode == null) { + return true; + } + + // Don't optimized \1(?:0) to \10 + if (previousNode.type === 'Backreference' && previousNode.kind === 'number') { + return false; + } + + // Don't optimized \2(?:0) to \20 + if (previousNode.type === 'Char' && previousNode.kind === 'decimal') { + return false; + } + + return true; +} + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/parser/generated/regexp-tree.js": +/*!***********************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/parser/generated/regexp-tree.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * LR parser generated by the Syntax tool. + * + * https://www.npmjs.com/package/syntax-cli + * + * npm install -g syntax-cli + * + * syntax-cli --help + * + * To regenerate run: + * + * syntax-cli \ + * --grammar ~/path-to-grammar-file \ + * --mode \ + * --output ~/path-to-output-parser-file.js + */ + + + +/** + * Matched token text. + */ + +var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +var yytext = void 0; + +/** + * Length of the matched token text. + */ +var yyleng = void 0; + +/** + * Storage object. + */ +var yy = {}; + +/** + * Result of semantic action. + */ +var __ = void 0; + +/** + * Result location object. + */ +var __loc = void 0; + +function yyloc(start, end) { + if (!yy.options.captureLocations) { + return null; + } + + // Epsilon doesn't produce location. + if (!start || !end) { + return start || end; + } + + return { + startOffset: start.startOffset, + endOffset: end.endOffset, + startLine: start.startLine, + endLine: end.endLine, + startColumn: start.startColumn, + endColumn: end.endColumn + }; +} + +var EOF = '$'; + +/** + * List of productions (generated by Syntax tool). + */ +var productions = [[-1, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) { + __loc = yyloc(_1loc, _4loc); + __ = Node({ + type: 'RegExp', + body: _2, + flags: checkFlags(_4) + }, loc(_1loc, _4loc || _3loc)); +}], [1, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [1, 0, function () { + __loc = null;__ = ''; +}], [2, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [2, 2, function (_1, _2, _1loc, _2loc) { + __loc = yyloc(_1loc, _2loc);__ = _1 + _2; +}], [3, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [4, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + // Location for empty disjunction: /|/ + var _loc = null; + + if (_2loc) { + _loc = loc(_1loc || _2loc, _3loc || _2loc); + }; + + __ = Node({ + type: 'Disjunction', + left: _1, + right: _3 + }, _loc); +}], [5, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc); + if (_1.length === 0) { + __ = null; + return; + } + + if (_1.length === 1) { + __ = Node(_1[0], __loc); + } else { + __ = Node({ + type: 'Alternative', + expressions: _1 + }, __loc); + } +}], [6, 0, function () { + __loc = null;__ = []; +}], [6, 2, function (_1, _2, _1loc, _2loc) { + __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2); +}], [7, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc); +}], [7, 2, function (_1, _2, _1loc, _2loc) { + __loc = yyloc(_1loc, _2loc); + __ = _1; + + if (_2) { + __ = Node({ + type: 'Repetition', + expression: _1, + quantifier: _2 + }, __loc); + } +}], [8, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = { kind: '^' }; +}], [8, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = { kind: '$' }; +}], [8, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = { kind: '\\b' }; +}], [8, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = { kind: '\\B' }; +}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + __ = { + kind: 'Lookahead', + assertion: _2 + }; +}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + __ = { + kind: 'Lookahead', + negative: true, + assertion: _2 + }; +}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + __ = { + kind: 'Lookbehind', + assertion: _2 + }; +}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + __ = { + kind: 'Lookbehind', + negative: true, + assertion: _2 + }; +}], [9, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [9, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [9, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc); +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true; +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true; +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc); +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc); +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc); +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc); +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc); +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc); +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc); +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc); +}], [10, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc); +}], [11, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [11, 0], [12, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [12, 2, function (_1, _2, _1loc, _2loc) { + __loc = yyloc(_1loc, _2loc); + _1.greedy = false; + __ = _1; +}], [13, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc); + __ = Node({ + type: 'Quantifier', + kind: _1, + greedy: true + }, __loc); +}], [13, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc); + __ = Node({ + type: 'Quantifier', + kind: _1, + greedy: true + }, __loc); +}], [13, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc); + __ = Node({ + type: 'Quantifier', + kind: _1, + greedy: true + }, __loc); +}], [13, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc); + var range = getRange(_1); + __ = Node({ + type: 'Quantifier', + kind: 'Range', + from: range[0], + to: range[0], + greedy: true + }, __loc); +}], [13, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc); + __ = Node({ + type: 'Quantifier', + kind: 'Range', + from: getRange(_1)[0], + greedy: true + }, __loc); +}], [13, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc); + var range = getRange(_1); + __ = Node({ + type: 'Quantifier', + kind: 'Range', + from: range[0], + to: range[1], + greedy: true + }, __loc); +}], [14, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [14, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + var nameRaw = String(_1); + var name = decodeUnicodeGroupName(nameRaw); + if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) { + throw new SyntaxError('Duplicate of the named group "' + name + '".'); + } + + namedGroups[name] = _1.groupNumber; + + __ = Node({ + type: 'Group', + capturing: true, + name: name, + nameRaw: nameRaw, + number: _1.groupNumber, + expression: _2 + }, __loc); +}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + __ = Node({ + type: 'Group', + capturing: true, + number: _1.groupNumber, + expression: _2 + }, __loc); +}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + __ = Node({ + type: 'Group', + capturing: false, + expression: _2 + }, __loc); +}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + __ = Node({ + type: 'CharacterClass', + negative: true, + expressions: _2 + }, __loc); +}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { + __loc = yyloc(_1loc, _3loc); + __ = Node({ + type: 'CharacterClass', + expressions: _2 + }, __loc); +}], [18, 0, function () { + __loc = null;__ = []; +}], [18, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [19, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = [_1]; +}], [19, 2, function (_1, _2, _1loc, _2loc) { + __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2); +}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) { + __loc = yyloc(_1loc, _4loc); + checkClassRange(_1, _3); + + __ = [Node({ + type: 'ClassRange', + from: _1, + to: _3 + }, loc(_1loc, _3loc))]; + + if (_4) { + __ = __.concat(_4); + } +}], [20, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [20, 2, function (_1, _2, _1loc, _2loc) { + __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2); +}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) { + __loc = yyloc(_1loc, _4loc); + checkClassRange(_1, _3); + + __ = [Node({ + type: 'ClassRange', + from: _1, + to: _3 + }, loc(_1loc, _3loc))]; + + if (_4) { + __ = __.concat(_4); + } +}], [21, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc); +}], [21, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [22, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = _1; +}], [22, 1, function (_1, _1loc) { + __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc); +}]]; + +/** + * Encoded tokens map. + */ +var tokens = { "SLASH": "23", "CHAR": "24", "BAR": "25", "BOS": "26", "EOS": "27", "ESC_b": "28", "ESC_B": "29", "POS_LA_ASSERT": "30", "R_PAREN": "31", "NEG_LA_ASSERT": "32", "POS_LB_ASSERT": "33", "NEG_LB_ASSERT": "34", "ESC_CHAR": "35", "U_CODE_SURROGATE": "36", "U_CODE": "37", "U_PROP_VALUE_EXP": "38", "CTRL_CH": "39", "HEX_CODE": "40", "OCT_CODE": "41", "DEC_CODE": "42", "META_CHAR": "43", "ANY": "44", "NAMED_GROUP_REF": "45", "Q_MARK": "46", "STAR": "47", "PLUS": "48", "RANGE_EXACT": "49", "RANGE_OPEN": "50", "RANGE_CLOSED": "51", "NAMED_CAPTURE_GROUP": "52", "L_PAREN": "53", "NON_CAPTURE_GROUP": "54", "NEG_CLASS": "55", "R_BRACKET": "56", "L_BRACKET": "57", "DASH": "58", "$": "59" }; + +/** + * Parsing table (generated by Syntax tool). + */ +var table = [{ "0": 1, "23": "s2" }, { "59": "acc" }, { "3": 3, "4": 4, "5": 5, "6": 6, "23": "r10", "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "s7" }, { "23": "r6", "25": "s12" }, { "23": "r7", "25": "r7", "31": "r7" }, { "7": 14, "8": 15, "9": 16, "10": 25, "14": 27, "15": 42, "16": 43, "17": 26, "23": "r9", "24": "s28", "25": "r9", "26": "s17", "27": "s18", "28": "s19", "29": "s20", "30": "s21", "31": "r9", "32": "s22", "33": "s23", "34": "s24", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "52": "s44", "53": "s45", "54": "s46", "55": "s40", "57": "s41" }, { "1": 8, "2": 9, "24": "s10", "59": "r3" }, { "59": "r1" }, { "24": "s11", "59": "r2" }, { "24": "r4", "59": "r4" }, { "24": "r5", "59": "r5" }, { "5": 13, "6": 6, "23": "r10", "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r8", "25": "r8", "31": "r8" }, { "23": "r11", "24": "r11", "25": "r11", "26": "r11", "27": "r11", "28": "r11", "29": "r11", "30": "r11", "31": "r11", "32": "r11", "33": "r11", "34": "r11", "35": "r11", "36": "r11", "37": "r11", "38": "r11", "39": "r11", "40": "r11", "41": "r11", "42": "r11", "43": "r11", "44": "r11", "45": "r11", "52": "r11", "53": "r11", "54": "r11", "55": "r11", "57": "r11" }, { "23": "r12", "24": "r12", "25": "r12", "26": "r12", "27": "r12", "28": "r12", "29": "r12", "30": "r12", "31": "r12", "32": "r12", "33": "r12", "34": "r12", "35": "r12", "36": "r12", "37": "r12", "38": "r12", "39": "r12", "40": "r12", "41": "r12", "42": "r12", "43": "r12", "44": "r12", "45": "r12", "52": "r12", "53": "r12", "54": "r12", "55": "r12", "57": "r12" }, { "11": 47, "12": 48, "13": 49, "23": "r38", "24": "r38", "25": "r38", "26": "r38", "27": "r38", "28": "r38", "29": "r38", "30": "r38", "31": "r38", "32": "r38", "33": "r38", "34": "r38", "35": "r38", "36": "r38", "37": "r38", "38": "r38", "39": "r38", "40": "r38", "41": "r38", "42": "r38", "43": "r38", "44": "r38", "45": "r38", "46": "s52", "47": "s50", "48": "s51", "49": "s53", "50": "s54", "51": "s55", "52": "r38", "53": "r38", "54": "r38", "55": "r38", "57": "r38" }, { "23": "r14", "24": "r14", "25": "r14", "26": "r14", "27": "r14", "28": "r14", "29": "r14", "30": "r14", "31": "r14", "32": "r14", "33": "r14", "34": "r14", "35": "r14", "36": "r14", "37": "r14", "38": "r14", "39": "r14", "40": "r14", "41": "r14", "42": "r14", "43": "r14", "44": "r14", "45": "r14", "52": "r14", "53": "r14", "54": "r14", "55": "r14", "57": "r14" }, { "23": "r15", "24": "r15", "25": "r15", "26": "r15", "27": "r15", "28": "r15", "29": "r15", "30": "r15", "31": "r15", "32": "r15", "33": "r15", "34": "r15", "35": "r15", "36": "r15", "37": "r15", "38": "r15", "39": "r15", "40": "r15", "41": "r15", "42": "r15", "43": "r15", "44": "r15", "45": "r15", "52": "r15", "53": "r15", "54": "r15", "55": "r15", "57": "r15" }, { "23": "r16", "24": "r16", "25": "r16", "26": "r16", "27": "r16", "28": "r16", "29": "r16", "30": "r16", "31": "r16", "32": "r16", "33": "r16", "34": "r16", "35": "r16", "36": "r16", "37": "r16", "38": "r16", "39": "r16", "40": "r16", "41": "r16", "42": "r16", "43": "r16", "44": "r16", "45": "r16", "52": "r16", "53": "r16", "54": "r16", "55": "r16", "57": "r16" }, { "23": "r17", "24": "r17", "25": "r17", "26": "r17", "27": "r17", "28": "r17", "29": "r17", "30": "r17", "31": "r17", "32": "r17", "33": "r17", "34": "r17", "35": "r17", "36": "r17", "37": "r17", "38": "r17", "39": "r17", "40": "r17", "41": "r17", "42": "r17", "43": "r17", "44": "r17", "45": "r17", "52": "r17", "53": "r17", "54": "r17", "55": "r17", "57": "r17" }, { "4": 57, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 59, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 61, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 63, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r22", "24": "r22", "25": "r22", "26": "r22", "27": "r22", "28": "r22", "29": "r22", "30": "r22", "31": "r22", "32": "r22", "33": "r22", "34": "r22", "35": "r22", "36": "r22", "37": "r22", "38": "r22", "39": "r22", "40": "r22", "41": "r22", "42": "r22", "43": "r22", "44": "r22", "45": "r22", "46": "r22", "47": "r22", "48": "r22", "49": "r22", "50": "r22", "51": "r22", "52": "r22", "53": "r22", "54": "r22", "55": "r22", "57": "r22" }, { "23": "r23", "24": "r23", "25": "r23", "26": "r23", "27": "r23", "28": "r23", "29": "r23", "30": "r23", "31": "r23", "32": "r23", "33": "r23", "34": "r23", "35": "r23", "36": "r23", "37": "r23", "38": "r23", "39": "r23", "40": "r23", "41": "r23", "42": "r23", "43": "r23", "44": "r23", "45": "r23", "46": "r23", "47": "r23", "48": "r23", "49": "r23", "50": "r23", "51": "r23", "52": "r23", "53": "r23", "54": "r23", "55": "r23", "57": "r23" }, { "23": "r24", "24": "r24", "25": "r24", "26": "r24", "27": "r24", "28": "r24", "29": "r24", "30": "r24", "31": "r24", "32": "r24", "33": "r24", "34": "r24", "35": "r24", "36": "r24", "37": "r24", "38": "r24", "39": "r24", "40": "r24", "41": "r24", "42": "r24", "43": "r24", "44": "r24", "45": "r24", "46": "r24", "47": "r24", "48": "r24", "49": "r24", "50": "r24", "51": "r24", "52": "r24", "53": "r24", "54": "r24", "55": "r24", "57": "r24" }, { "23": "r25", "24": "r25", "25": "r25", "26": "r25", "27": "r25", "28": "r25", "29": "r25", "30": "r25", "31": "r25", "32": "r25", "33": "r25", "34": "r25", "35": "r25", "36": "r25", "37": "r25", "38": "r25", "39": "r25", "40": "r25", "41": "r25", "42": "r25", "43": "r25", "44": "r25", "45": "r25", "46": "r25", "47": "r25", "48": "r25", "49": "r25", "50": "r25", "51": "r25", "52": "r25", "53": "r25", "54": "r25", "55": "r25", "56": "r25", "57": "r25", "58": "r25" }, { "23": "r26", "24": "r26", "25": "r26", "26": "r26", "27": "r26", "28": "r26", "29": "r26", "30": "r26", "31": "r26", "32": "r26", "33": "r26", "34": "r26", "35": "r26", "36": "r26", "37": "r26", "38": "r26", "39": "r26", "40": "r26", "41": "r26", "42": "r26", "43": "r26", "44": "r26", "45": "r26", "46": "r26", "47": "r26", "48": "r26", "49": "r26", "50": "r26", "51": "r26", "52": "r26", "53": "r26", "54": "r26", "55": "r26", "56": "r26", "57": "r26", "58": "r26" }, { "23": "r27", "24": "r27", "25": "r27", "26": "r27", "27": "r27", "28": "r27", "29": "r27", "30": "r27", "31": "r27", "32": "r27", "33": "r27", "34": "r27", "35": "r27", "36": "r27", "37": "r27", "38": "r27", "39": "r27", "40": "r27", "41": "r27", "42": "r27", "43": "r27", "44": "r27", "45": "r27", "46": "r27", "47": "r27", "48": "r27", "49": "r27", "50": "r27", "51": "r27", "52": "r27", "53": "r27", "54": "r27", "55": "r27", "56": "r27", "57": "r27", "58": "r27" }, { "23": "r28", "24": "r28", "25": "r28", "26": "r28", "27": "r28", "28": "r28", "29": "r28", "30": "r28", "31": "r28", "32": "r28", "33": "r28", "34": "r28", "35": "r28", "36": "r28", "37": "r28", "38": "r28", "39": "r28", "40": "r28", "41": "r28", "42": "r28", "43": "r28", "44": "r28", "45": "r28", "46": "r28", "47": "r28", "48": "r28", "49": "r28", "50": "r28", "51": "r28", "52": "r28", "53": "r28", "54": "r28", "55": "r28", "56": "r28", "57": "r28", "58": "r28" }, { "23": "r29", "24": "r29", "25": "r29", "26": "r29", "27": "r29", "28": "r29", "29": "r29", "30": "r29", "31": "r29", "32": "r29", "33": "r29", "34": "r29", "35": "r29", "36": "r29", "37": "r29", "38": "r29", "39": "r29", "40": "r29", "41": "r29", "42": "r29", "43": "r29", "44": "r29", "45": "r29", "46": "r29", "47": "r29", "48": "r29", "49": "r29", "50": "r29", "51": "r29", "52": "r29", "53": "r29", "54": "r29", "55": "r29", "56": "r29", "57": "r29", "58": "r29" }, { "23": "r30", "24": "r30", "25": "r30", "26": "r30", "27": "r30", "28": "r30", "29": "r30", "30": "r30", "31": "r30", "32": "r30", "33": "r30", "34": "r30", "35": "r30", "36": "r30", "37": "r30", "38": "r30", "39": "r30", "40": "r30", "41": "r30", "42": "r30", "43": "r30", "44": "r30", "45": "r30", "46": "r30", "47": "r30", "48": "r30", "49": "r30", "50": "r30", "51": "r30", "52": "r30", "53": "r30", "54": "r30", "55": "r30", "56": "r30", "57": "r30", "58": "r30" }, { "23": "r31", "24": "r31", "25": "r31", "26": "r31", "27": "r31", "28": "r31", "29": "r31", "30": "r31", "31": "r31", "32": "r31", "33": "r31", "34": "r31", "35": "r31", "36": "r31", "37": "r31", "38": "r31", "39": "r31", "40": "r31", "41": "r31", "42": "r31", "43": "r31", "44": "r31", "45": "r31", "46": "r31", "47": "r31", "48": "r31", "49": "r31", "50": "r31", "51": "r31", "52": "r31", "53": "r31", "54": "r31", "55": "r31", "56": "r31", "57": "r31", "58": "r31" }, { "23": "r32", "24": "r32", "25": "r32", "26": "r32", "27": "r32", "28": "r32", "29": "r32", "30": "r32", "31": "r32", "32": "r32", "33": "r32", "34": "r32", "35": "r32", "36": "r32", "37": "r32", "38": "r32", "39": "r32", "40": "r32", "41": "r32", "42": "r32", "43": "r32", "44": "r32", "45": "r32", "46": "r32", "47": "r32", "48": "r32", "49": "r32", "50": "r32", "51": "r32", "52": "r32", "53": "r32", "54": "r32", "55": "r32", "56": "r32", "57": "r32", "58": "r32" }, { "23": "r33", "24": "r33", "25": "r33", "26": "r33", "27": "r33", "28": "r33", "29": "r33", "30": "r33", "31": "r33", "32": "r33", "33": "r33", "34": "r33", "35": "r33", "36": "r33", "37": "r33", "38": "r33", "39": "r33", "40": "r33", "41": "r33", "42": "r33", "43": "r33", "44": "r33", "45": "r33", "46": "r33", "47": "r33", "48": "r33", "49": "r33", "50": "r33", "51": "r33", "52": "r33", "53": "r33", "54": "r33", "55": "r33", "56": "r33", "57": "r33", "58": "r33" }, { "23": "r34", "24": "r34", "25": "r34", "26": "r34", "27": "r34", "28": "r34", "29": "r34", "30": "r34", "31": "r34", "32": "r34", "33": "r34", "34": "r34", "35": "r34", "36": "r34", "37": "r34", "38": "r34", "39": "r34", "40": "r34", "41": "r34", "42": "r34", "43": "r34", "44": "r34", "45": "r34", "46": "r34", "47": "r34", "48": "r34", "49": "r34", "50": "r34", "51": "r34", "52": "r34", "53": "r34", "54": "r34", "55": "r34", "56": "r34", "57": "r34", "58": "r34" }, { "23": "r35", "24": "r35", "25": "r35", "26": "r35", "27": "r35", "28": "r35", "29": "r35", "30": "r35", "31": "r35", "32": "r35", "33": "r35", "34": "r35", "35": "r35", "36": "r35", "37": "r35", "38": "r35", "39": "r35", "40": "r35", "41": "r35", "42": "r35", "43": "r35", "44": "r35", "45": "r35", "46": "r35", "47": "r35", "48": "r35", "49": "r35", "50": "r35", "51": "r35", "52": "r35", "53": "r35", "54": "r35", "55": "r35", "56": "r35", "57": "r35", "58": "r35" }, { "23": "r36", "24": "r36", "25": "r36", "26": "r36", "27": "r36", "28": "r36", "29": "r36", "30": "r36", "31": "r36", "32": "r36", "33": "r36", "34": "r36", "35": "r36", "36": "r36", "37": "r36", "38": "r36", "39": "r36", "40": "r36", "41": "r36", "42": "r36", "43": "r36", "44": "r36", "45": "r36", "46": "r36", "47": "r36", "48": "r36", "49": "r36", "50": "r36", "51": "r36", "52": "r36", "53": "r36", "54": "r36", "55": "r36", "56": "r36", "57": "r36", "58": "r36" }, { "10": 70, "18": 65, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "10": 70, "18": 83, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "23": "r47", "24": "r47", "25": "r47", "26": "r47", "27": "r47", "28": "r47", "29": "r47", "30": "r47", "31": "r47", "32": "r47", "33": "r47", "34": "r47", "35": "r47", "36": "r47", "37": "r47", "38": "r47", "39": "r47", "40": "r47", "41": "r47", "42": "r47", "43": "r47", "44": "r47", "45": "r47", "46": "r47", "47": "r47", "48": "r47", "49": "r47", "50": "r47", "51": "r47", "52": "r47", "53": "r47", "54": "r47", "55": "r47", "57": "r47" }, { "23": "r48", "24": "r48", "25": "r48", "26": "r48", "27": "r48", "28": "r48", "29": "r48", "30": "r48", "31": "r48", "32": "r48", "33": "r48", "34": "r48", "35": "r48", "36": "r48", "37": "r48", "38": "r48", "39": "r48", "40": "r48", "41": "r48", "42": "r48", "43": "r48", "44": "r48", "45": "r48", "46": "r48", "47": "r48", "48": "r48", "49": "r48", "50": "r48", "51": "r48", "52": "r48", "53": "r48", "54": "r48", "55": "r48", "57": "r48" }, { "4": 85, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 87, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 89, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r13", "24": "r13", "25": "r13", "26": "r13", "27": "r13", "28": "r13", "29": "r13", "30": "r13", "31": "r13", "32": "r13", "33": "r13", "34": "r13", "35": "r13", "36": "r13", "37": "r13", "38": "r13", "39": "r13", "40": "r13", "41": "r13", "42": "r13", "43": "r13", "44": "r13", "45": "r13", "52": "r13", "53": "r13", "54": "r13", "55": "r13", "57": "r13" }, { "23": "r37", "24": "r37", "25": "r37", "26": "r37", "27": "r37", "28": "r37", "29": "r37", "30": "r37", "31": "r37", "32": "r37", "33": "r37", "34": "r37", "35": "r37", "36": "r37", "37": "r37", "38": "r37", "39": "r37", "40": "r37", "41": "r37", "42": "r37", "43": "r37", "44": "r37", "45": "r37", "52": "r37", "53": "r37", "54": "r37", "55": "r37", "57": "r37" }, { "23": "r39", "24": "r39", "25": "r39", "26": "r39", "27": "r39", "28": "r39", "29": "r39", "30": "r39", "31": "r39", "32": "r39", "33": "r39", "34": "r39", "35": "r39", "36": "r39", "37": "r39", "38": "r39", "39": "r39", "40": "r39", "41": "r39", "42": "r39", "43": "r39", "44": "r39", "45": "r39", "46": "s56", "52": "r39", "53": "r39", "54": "r39", "55": "r39", "57": "r39" }, { "23": "r41", "24": "r41", "25": "r41", "26": "r41", "27": "r41", "28": "r41", "29": "r41", "30": "r41", "31": "r41", "32": "r41", "33": "r41", "34": "r41", "35": "r41", "36": "r41", "37": "r41", "38": "r41", "39": "r41", "40": "r41", "41": "r41", "42": "r41", "43": "r41", "44": "r41", "45": "r41", "46": "r41", "52": "r41", "53": "r41", "54": "r41", "55": "r41", "57": "r41" }, { "23": "r42", "24": "r42", "25": "r42", "26": "r42", "27": "r42", "28": "r42", "29": "r42", "30": "r42", "31": "r42", "32": "r42", "33": "r42", "34": "r42", "35": "r42", "36": "r42", "37": "r42", "38": "r42", "39": "r42", "40": "r42", "41": "r42", "42": "r42", "43": "r42", "44": "r42", "45": "r42", "46": "r42", "52": "r42", "53": "r42", "54": "r42", "55": "r42", "57": "r42" }, { "23": "r43", "24": "r43", "25": "r43", "26": "r43", "27": "r43", "28": "r43", "29": "r43", "30": "r43", "31": "r43", "32": "r43", "33": "r43", "34": "r43", "35": "r43", "36": "r43", "37": "r43", "38": "r43", "39": "r43", "40": "r43", "41": "r43", "42": "r43", "43": "r43", "44": "r43", "45": "r43", "46": "r43", "52": "r43", "53": "r43", "54": "r43", "55": "r43", "57": "r43" }, { "23": "r44", "24": "r44", "25": "r44", "26": "r44", "27": "r44", "28": "r44", "29": "r44", "30": "r44", "31": "r44", "32": "r44", "33": "r44", "34": "r44", "35": "r44", "36": "r44", "37": "r44", "38": "r44", "39": "r44", "40": "r44", "41": "r44", "42": "r44", "43": "r44", "44": "r44", "45": "r44", "46": "r44", "52": "r44", "53": "r44", "54": "r44", "55": "r44", "57": "r44" }, { "23": "r45", "24": "r45", "25": "r45", "26": "r45", "27": "r45", "28": "r45", "29": "r45", "30": "r45", "31": "r45", "32": "r45", "33": "r45", "34": "r45", "35": "r45", "36": "r45", "37": "r45", "38": "r45", "39": "r45", "40": "r45", "41": "r45", "42": "r45", "43": "r45", "44": "r45", "45": "r45", "46": "r45", "52": "r45", "53": "r45", "54": "r45", "55": "r45", "57": "r45" }, { "23": "r46", "24": "r46", "25": "r46", "26": "r46", "27": "r46", "28": "r46", "29": "r46", "30": "r46", "31": "r46", "32": "r46", "33": "r46", "34": "r46", "35": "r46", "36": "r46", "37": "r46", "38": "r46", "39": "r46", "40": "r46", "41": "r46", "42": "r46", "43": "r46", "44": "r46", "45": "r46", "46": "r46", "52": "r46", "53": "r46", "54": "r46", "55": "r46", "57": "r46" }, { "23": "r40", "24": "r40", "25": "r40", "26": "r40", "27": "r40", "28": "r40", "29": "r40", "30": "r40", "31": "r40", "32": "r40", "33": "r40", "34": "r40", "35": "r40", "36": "r40", "37": "r40", "38": "r40", "39": "r40", "40": "r40", "41": "r40", "42": "r40", "43": "r40", "44": "r40", "45": "r40", "52": "r40", "53": "r40", "54": "r40", "55": "r40", "57": "r40" }, { "25": "s12", "31": "s58" }, { "23": "r18", "24": "r18", "25": "r18", "26": "r18", "27": "r18", "28": "r18", "29": "r18", "30": "r18", "31": "r18", "32": "r18", "33": "r18", "34": "r18", "35": "r18", "36": "r18", "37": "r18", "38": "r18", "39": "r18", "40": "r18", "41": "r18", "42": "r18", "43": "r18", "44": "r18", "45": "r18", "52": "r18", "53": "r18", "54": "r18", "55": "r18", "57": "r18" }, { "25": "s12", "31": "s60" }, { "23": "r19", "24": "r19", "25": "r19", "26": "r19", "27": "r19", "28": "r19", "29": "r19", "30": "r19", "31": "r19", "32": "r19", "33": "r19", "34": "r19", "35": "r19", "36": "r19", "37": "r19", "38": "r19", "39": "r19", "40": "r19", "41": "r19", "42": "r19", "43": "r19", "44": "r19", "45": "r19", "52": "r19", "53": "r19", "54": "r19", "55": "r19", "57": "r19" }, { "25": "s12", "31": "s62" }, { "23": "r20", "24": "r20", "25": "r20", "26": "r20", "27": "r20", "28": "r20", "29": "r20", "30": "r20", "31": "r20", "32": "r20", "33": "r20", "34": "r20", "35": "r20", "36": "r20", "37": "r20", "38": "r20", "39": "r20", "40": "r20", "41": "r20", "42": "r20", "43": "r20", "44": "r20", "45": "r20", "52": "r20", "53": "r20", "54": "r20", "55": "r20", "57": "r20" }, { "25": "s12", "31": "s64" }, { "23": "r21", "24": "r21", "25": "r21", "26": "r21", "27": "r21", "28": "r21", "29": "r21", "30": "r21", "31": "r21", "32": "r21", "33": "r21", "34": "r21", "35": "r21", "36": "r21", "37": "r21", "38": "r21", "39": "r21", "40": "r21", "41": "r21", "42": "r21", "43": "r21", "44": "r21", "45": "r21", "52": "r21", "53": "r21", "54": "r21", "55": "r21", "57": "r21" }, { "56": "s72" }, { "56": "r55" }, { "10": 70, "20": 73, "21": 75, "22": 76, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r56", "58": "s74" }, { "24": "r62", "28": "r62", "35": "r62", "36": "r62", "37": "r62", "38": "r62", "39": "r62", "40": "r62", "41": "r62", "42": "r62", "43": "r62", "44": "r62", "45": "r62", "56": "r62", "58": "r62" }, { "24": "r63", "28": "r63", "35": "r63", "36": "r63", "37": "r63", "38": "r63", "39": "r63", "40": "r63", "41": "r63", "42": "r63", "43": "r63", "44": "r63", "45": "r63", "56": "r63", "58": "r63" }, { "24": "r64", "28": "r64", "35": "r64", "36": "r64", "37": "r64", "38": "r64", "39": "r64", "40": "r64", "41": "r64", "42": "r64", "43": "r64", "44": "r64", "45": "r64", "56": "r64", "58": "r64" }, { "24": "r65", "28": "r65", "35": "r65", "36": "r65", "37": "r65", "38": "r65", "39": "r65", "40": "r65", "41": "r65", "42": "r65", "43": "r65", "44": "r65", "45": "r65", "56": "r65", "58": "r65" }, { "23": "r52", "24": "r52", "25": "r52", "26": "r52", "27": "r52", "28": "r52", "29": "r52", "30": "r52", "31": "r52", "32": "r52", "33": "r52", "34": "r52", "35": "r52", "36": "r52", "37": "r52", "38": "r52", "39": "r52", "40": "r52", "41": "r52", "42": "r52", "43": "r52", "44": "r52", "45": "r52", "46": "r52", "47": "r52", "48": "r52", "49": "r52", "50": "r52", "51": "r52", "52": "r52", "53": "r52", "54": "r52", "55": "r52", "57": "r52" }, { "56": "r57" }, { "10": 70, "21": 77, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r62", "58": "s68" }, { "56": "r59" }, { "10": 70, "20": 79, "21": 75, "22": 76, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r63", "58": "s80" }, { "10": 70, "18": 78, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "56": "r58" }, { "56": "r60" }, { "10": 70, "21": 81, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r62", "58": "s68" }, { "10": 70, "18": 82, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "56": "r61" }, { "56": "s84" }, { "23": "r53", "24": "r53", "25": "r53", "26": "r53", "27": "r53", "28": "r53", "29": "r53", "30": "r53", "31": "r53", "32": "r53", "33": "r53", "34": "r53", "35": "r53", "36": "r53", "37": "r53", "38": "r53", "39": "r53", "40": "r53", "41": "r53", "42": "r53", "43": "r53", "44": "r53", "45": "r53", "46": "r53", "47": "r53", "48": "r53", "49": "r53", "50": "r53", "51": "r53", "52": "r53", "53": "r53", "54": "r53", "55": "r53", "57": "r53" }, { "25": "s12", "31": "s86" }, { "23": "r49", "24": "r49", "25": "r49", "26": "r49", "27": "r49", "28": "r49", "29": "r49", "30": "r49", "31": "r49", "32": "r49", "33": "r49", "34": "r49", "35": "r49", "36": "r49", "37": "r49", "38": "r49", "39": "r49", "40": "r49", "41": "r49", "42": "r49", "43": "r49", "44": "r49", "45": "r49", "46": "r49", "47": "r49", "48": "r49", "49": "r49", "50": "r49", "51": "r49", "52": "r49", "53": "r49", "54": "r49", "55": "r49", "57": "r49" }, { "25": "s12", "31": "s88" }, { "23": "r50", "24": "r50", "25": "r50", "26": "r50", "27": "r50", "28": "r50", "29": "r50", "30": "r50", "31": "r50", "32": "r50", "33": "r50", "34": "r50", "35": "r50", "36": "r50", "37": "r50", "38": "r50", "39": "r50", "40": "r50", "41": "r50", "42": "r50", "43": "r50", "44": "r50", "45": "r50", "46": "r50", "47": "r50", "48": "r50", "49": "r50", "50": "r50", "51": "r50", "52": "r50", "53": "r50", "54": "r50", "55": "r50", "57": "r50" }, { "25": "s12", "31": "s90" }, { "23": "r51", "24": "r51", "25": "r51", "26": "r51", "27": "r51", "28": "r51", "29": "r51", "30": "r51", "31": "r51", "32": "r51", "33": "r51", "34": "r51", "35": "r51", "36": "r51", "37": "r51", "38": "r51", "39": "r51", "40": "r51", "41": "r51", "42": "r51", "43": "r51", "44": "r51", "45": "r51", "46": "r51", "47": "r51", "48": "r51", "49": "r51", "50": "r51", "51": "r51", "52": "r51", "53": "r51", "54": "r51", "55": "r51", "57": "r51" }]; + +/** + * Parsing stack. + */ +var stack = []; + +/** + * Tokenizer instance. + */ +var tokenizer = void 0; +/** + * Generic tokenizer used by the parser in the Syntax tool. + * + * https://www.npmjs.com/package/syntax-cli + * + * See `--custom-tokinzer` to skip this generation, and use a custom one. + */ + +var lexRules = [[/^#[^\n]+/, function () {/* skip comments */}], [/^\s+/, function () {/* skip whitespace */}], [/^-/, function () { + return 'DASH'; +}], [/^\//, function () { + return 'CHAR'; +}], [/^#/, function () { + return 'CHAR'; +}], [/^\|/, function () { + return 'CHAR'; +}], [/^\./, function () { + return 'CHAR'; +}], [/^\{/, function () { + return 'CHAR'; +}], [/^\{\d+\}/, function () { + return 'RANGE_EXACT'; +}], [/^\{\d+,\}/, function () { + return 'RANGE_OPEN'; +}], [/^\{\d+,\d+\}/, function () { + return 'RANGE_CLOSED'; +}], [/^\\k<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/, function () { + var groupName = yytext.slice(3, -1); + validateUnicodeGroupName(groupName, this.getCurrentState()); + return 'NAMED_GROUP_REF'; +}], [/^\\b/, function () { + return 'ESC_b'; +}], [/^\\B/, function () { + return 'ESC_B'; +}], [/^\\c[a-zA-Z]/, function () { + return 'CTRL_CH'; +}], [/^\\0\d{1,2}/, function () { + return 'OCT_CODE'; +}], [/^\\0/, function () { + return 'DEC_CODE'; +}], [/^\\\d{1,3}/, function () { + return 'DEC_CODE'; +}], [/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () { + return 'U_CODE_SURROGATE'; +}], [/^\\u\{[0-9a-fA-F]{1,}\}/, function () { + return 'U_CODE'; +}], [/^\\u[0-9a-fA-F]{4}/, function () { + return 'U_CODE'; +}], [/^\\[pP]\{\w+(?:=\w+)?\}/, function () { + return 'U_PROP_VALUE_EXP'; +}], [/^\\x[0-9a-fA-F]{2}/, function () { + return 'HEX_CODE'; +}], [/^\\[tnrdDsSwWvf]/, function () { + return 'META_CHAR'; +}], [/^\\\//, function () { + return 'ESC_CHAR'; +}], [/^\\[ #]/, function () { + return 'ESC_CHAR'; +}], [/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/, function () { + return 'ESC_CHAR'; +}], [/^\\[^*?+\[()\\|]/, function () { + var s = this.getCurrentState(); + if (s === 'u_class' && yytext === "\\-") { + return 'ESC_CHAR'; + } else if (s === 'u' || s === 'xu' || s === 'u_class') { + throw new SyntaxError('invalid Unicode escape ' + yytext); + } + return 'ESC_CHAR'; +}], [/^\(/, function () { + return 'CHAR'; +}], [/^\)/, function () { + return 'CHAR'; +}], [/^\(\?=/, function () { + return 'POS_LA_ASSERT'; +}], [/^\(\?!/, function () { + return 'NEG_LA_ASSERT'; +}], [/^\(\?<=/, function () { + return 'POS_LB_ASSERT'; +}], [/^\(\?/, function () { + yytext = yytext.slice(3, -1); + validateUnicodeGroupName(yytext, this.getCurrentState()); + return 'NAMED_CAPTURE_GROUP'; +}], [/^\(/, function () { + return 'L_PAREN'; +}], [/^\)/, function () { + return 'R_PAREN'; +}], [/^[*?+[^$]/, function () { + return 'CHAR'; +}], [/^\\\]/, function () { + return 'ESC_CHAR'; +}], [/^\]/, function () { + this.popState();return 'R_BRACKET'; +}], [/^\^/, function () { + return 'BOS'; +}], [/^\$/, function () { + return 'EOS'; +}], [/^\*/, function () { + return 'STAR'; +}], [/^\?/, function () { + return 'Q_MARK'; +}], [/^\+/, function () { + return 'PLUS'; +}], [/^\|/, function () { + return 'BAR'; +}], [/^\./, function () { + return 'ANY'; +}], [/^\//, function () { + return 'SLASH'; +}], [/^[^*?+\[()\\|]/, function () { + return 'CHAR'; +}], [/^\[\^/, function () { + var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS'; +}], [/^\[/, function () { + var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET'; +}]]; +var lexRulesByConditions = { "INITIAL": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "u": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "xu": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "x": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "u_class": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 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], "class": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 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] }; + +var EOF_TOKEN = { + type: EOF, + value: '' +}; + +tokenizer = { + initString: function initString(string) { + this._string = string; + this._cursor = 0; + + this._states = ['INITIAL']; + this._tokensQueue = []; + + this._currentLine = 1; + this._currentColumn = 0; + this._currentLineBeginOffset = 0; + + /** + * Matched token location data. + */ + this._tokenStartOffset = 0; + this._tokenEndOffset = 0; + this._tokenStartLine = 1; + this._tokenEndLine = 1; + this._tokenStartColumn = 0; + this._tokenEndColumn = 0; + + return this; + }, + + + /** + * Returns tokenizer states. + */ + getStates: function getStates() { + return this._states; + }, + getCurrentState: function getCurrentState() { + return this._states[this._states.length - 1]; + }, + pushState: function pushState(state) { + this._states.push(state); + }, + begin: function begin(state) { + this.pushState(state); + }, + popState: function popState() { + if (this._states.length > 1) { + return this._states.pop(); + } + return this._states[0]; + }, + getNextToken: function getNextToken() { + // Something was queued, return it. + if (this._tokensQueue.length > 0) { + return this.onToken(this._toToken(this._tokensQueue.shift())); + } + + if (!this.hasMoreTokens()) { + return this.onToken(EOF_TOKEN); + } + + var string = this._string.slice(this._cursor); + var lexRulesForState = lexRulesByConditions[this.getCurrentState()]; + + for (var i = 0; i < lexRulesForState.length; i++) { + var lexRuleIndex = lexRulesForState[i]; + var lexRule = lexRules[lexRuleIndex]; + + var matched = this._match(string, lexRule[0]); + + // Manual handling of EOF token (the end of string). Return it + // as `EOF` symbol. + if (string === '' && matched === '') { + this._cursor++; + } + + if (matched !== null) { + yytext = matched; + yyleng = yytext.length; + var token = lexRule[1].call(this); + + if (!token) { + return this.getNextToken(); + } + + // If multiple tokens are returned, save them to return + // on next `getNextToken` call. + + if (Array.isArray(token)) { + var tokensToQueue = token.slice(1); + token = token[0]; + if (tokensToQueue.length > 0) { + var _tokensQueue; + + (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue)); + } + } + + return this.onToken(this._toToken(token, yytext)); + } + } + + if (this.isEOF()) { + this._cursor++; + return EOF_TOKEN; + } + + this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn); + }, + + + /** + * Throws default "Unexpected token" exception, showing the actual + * line from the source, pointing with the ^ marker to the bad token. + * In addition, shows `line:column` location. + */ + throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) { + var lineSource = this._string.split('\n')[line - 1]; + var lineData = ''; + + if (lineSource) { + var pad = ' '.repeat(column); + lineData = '\n\n' + lineSource + '\n' + pad + '^\n'; + } + + throw new SyntaxError(lineData + 'Unexpected token: "' + symbol + '" ' + ('at ' + line + ':' + column + '.')); + }, + getCursor: function getCursor() { + return this._cursor; + }, + getCurrentLine: function getCurrentLine() { + return this._currentLine; + }, + getCurrentColumn: function getCurrentColumn() { + return this._currentColumn; + }, + _captureLocation: function _captureLocation(matched) { + var nlRe = /\n/g; + + // Absolute offsets. + this._tokenStartOffset = this._cursor; + + // Line-based locations, start. + this._tokenStartLine = this._currentLine; + this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset; + + // Extract `\n` in the matched token. + var nlMatch = void 0; + while ((nlMatch = nlRe.exec(matched)) !== null) { + this._currentLine++; + this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1; + } + + this._tokenEndOffset = this._cursor + matched.length; + + // Line-based locations, end. + this._tokenEndLine = this._currentLine; + this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset; + }, + _toToken: function _toToken(tokenType) { + var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; + + return { + // Basic data. + type: tokenType, + value: yytext, + + // Location data. + startOffset: this._tokenStartOffset, + endOffset: this._tokenEndOffset, + startLine: this._tokenStartLine, + endLine: this._tokenEndLine, + startColumn: this._tokenStartColumn, + endColumn: this._tokenEndColumn + }; + }, + isEOF: function isEOF() { + return this._cursor === this._string.length; + }, + hasMoreTokens: function hasMoreTokens() { + return this._cursor <= this._string.length; + }, + _match: function _match(string, regexp) { + var matched = string.match(regexp); + if (matched) { + // Handle `\n` in the matched token to track line numbers. + this._captureLocation(matched[0]); + this._cursor += matched[0].length; + return matched[0]; + } + return null; + }, + + + /** + * Allows analyzing, and transforming token. Default implementation + * just passes the token through. + */ + onToken: function onToken(token) { + return token; + } +}; + +/** + * Expose tokenizer so it can be accessed in semantic actions. + */ +yy.lexer = tokenizer; +yy.tokenizer = tokenizer; + +/** + * Global parsing options. Some options can be shadowed per + * each `parse` call, if the optations are passed. + * + * Initalized to the `captureLocations` which is passed + * from the generator. Other options can be added at runtime. + */ +yy.options = { + captureLocations: true +}; + +/** + * Parsing module. + */ +var yyparse = { + /** + * Sets global parsing options. + */ + setOptions: function setOptions(options) { + yy.options = options; + return this; + }, + + + /** + * Returns parsing options. + */ + getOptions: function getOptions() { + return yy.options; + }, + + + /** + * Parses a string. + */ + parse: function parse(string, parseOptions) { + if (!tokenizer) { + throw new Error('Tokenizer instance wasn\'t specified.'); + } + + tokenizer.initString(string); + + /** + * If parse options are passed, override global parse options for + * this call, and later restore global options. + */ + var globalOptions = yy.options; + if (parseOptions) { + yy.options = Object.assign({}, yy.options, parseOptions); + } + + /** + * Allow callers to do setup work based on the + * parsing string, and passed options. + */ + yyparse.onParseBegin(string, tokenizer, yy.options); + + stack.length = 0; + stack.push(0); + + var token = tokenizer.getNextToken(); + var shiftedToken = null; + + do { + if (!token) { + // Restore options. + yy.options = globalOptions; + unexpectedEndOfInput(); + } + + var state = stack[stack.length - 1]; + var column = tokens[token.type]; + + if (!table[state].hasOwnProperty(column)) { + yy.options = globalOptions; + unexpectedToken(token); + } + + var entry = table[state][column]; + + // Shift action. + if (entry[0] === 's') { + var _loc2 = null; + + if (yy.options.captureLocations) { + _loc2 = { + startOffset: token.startOffset, + endOffset: token.endOffset, + startLine: token.startLine, + endLine: token.endLine, + startColumn: token.startColumn, + endColumn: token.endColumn + }; + } + + shiftedToken = this.onShift(token); + + stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1))); + + token = tokenizer.getNextToken(); + } + + // Reduce action. + else if (entry[0] === 'r') { + var productionNumber = entry.slice(1); + var production = productions[productionNumber]; + var hasSemanticAction = typeof production[2] === 'function'; + var semanticValueArgs = hasSemanticAction ? [] : null; + + var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null; + + if (production[1] !== 0) { + var rhsLength = production[1]; + while (rhsLength-- > 0) { + stack.pop(); + var stackEntry = stack.pop(); + + if (hasSemanticAction) { + semanticValueArgs.unshift(stackEntry.semanticValue); + + if (locationArgs) { + locationArgs.unshift(stackEntry.loc); + } + } + } + } + + var reduceStackEntry = { symbol: production[0] }; + + if (hasSemanticAction) { + yytext = shiftedToken ? shiftedToken.value : null; + yyleng = shiftedToken ? shiftedToken.value.length : null; + + var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs; + + production[2].apply(production, _toConsumableArray(semanticActionArgs)); + + reduceStackEntry.semanticValue = __; + + if (locationArgs) { + reduceStackEntry.loc = __loc; + } + } + + var nextState = stack[stack.length - 1]; + var symbolToReduceWith = production[0]; + + stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]); + } + + // Accept. + else if (entry === 'acc') { + stack.pop(); + var parsed = stack.pop(); + + if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) { + // Restore options. + yy.options = globalOptions; + unexpectedToken(token); + } + + if (parsed.hasOwnProperty('semanticValue')) { + yy.options = globalOptions; + yyparse.onParseEnd(parsed.semanticValue); + return parsed.semanticValue; + } + + yyparse.onParseEnd(); + + // Restore options. + yy.options = globalOptions; + return true; + } + } while (tokenizer.hasMoreTokens() || stack.length > 1); + }, + setTokenizer: function setTokenizer(customTokenizer) { + tokenizer = customTokenizer; + return yyparse; + }, + getTokenizer: function getTokenizer() { + return tokenizer; + }, + onParseBegin: function onParseBegin(string, tokenizer, options) {}, + onParseEnd: function onParseEnd(parsed) {}, + + + /** + * Allows analyzing, and transforming shifted token. Default implementation + * just passes the token through. + */ + onShift: function onShift(token) { + return token; + } +}; + +/** + * Tracks capturing groups. + */ +var capturingGroupsCount = 0; + +/** + * Tracks named groups. + */ +var namedGroups = {}; + +/** + * Parsing string. + */ +var parsingString = ''; + +yyparse.onParseBegin = function (string, lexer) { + parsingString = string; + capturingGroupsCount = 0; + namedGroups = {}; + + var lastSlash = string.lastIndexOf('/'); + var flags = string.slice(lastSlash); + + if (flags.includes('x') && flags.includes('u')) { + lexer.pushState('xu'); + } else { + if (flags.includes('x')) { + lexer.pushState('x'); + } + if (flags.includes('u')) { + lexer.pushState('u'); + } + } +}; + +/** + * On shifting `(` remember its number to used on reduce. + */ +yyparse.onShift = function (token) { + if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') { + token.value = new String(token.value); + token.value.groupNumber = ++capturingGroupsCount; + } + return token; +}; + +/** + * Extracts ranges from the range string. + */ +function getRange(text) { + var range = text.match(/\d+/g).map(Number); + + if (Number.isFinite(range[1]) && range[1] < range[0]) { + throw new SyntaxError('Numbers out of order in ' + text + ' quantifier'); + } + + return range; +} + +/** + * Checks class range + */ +function checkClassRange(from, to) { + if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) { + throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class'); + } +} + +// ---------------------- Unicode property ------------------------------------------- + +var unicodeProperties = __webpack_require__(/*! ../unicode/parser-unicode-properties.js */ "./node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js"); + +/** + * Unicode property. + */ +function UnicodeProperty(matched, loc) { + var negative = matched[1] === 'P'; + var separatorIdx = matched.indexOf('='); + + var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1); + var value = void 0; + + // General_Category allows using only value as a shorthand. + var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name); + + // Binary propery name. + var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name); + + if (isShorthand) { + value = name; + name = 'General_Category'; + } else if (isBinaryProperty) { + value = name; + } else { + if (!unicodeProperties.isValidName(name)) { + throw new SyntaxError('Invalid unicode property name: ' + name + '.'); + } + + value = matched.slice(separatorIdx + 1, -1); + + if (!unicodeProperties.isValidValue(name, value)) { + throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.'); + } + } + + return Node({ + type: 'UnicodeProperty', + name: name, + value: value, + negative: negative, + shorthand: isShorthand, + binary: isBinaryProperty, + canonicalName: unicodeProperties.getCanonicalName(name) || name, + canonicalValue: unicodeProperties.getCanonicalValue(value) || value + }, loc); +} + +// ---------------------------------------------------------------------------------- + + +/** + * Creates a character node. + */ +function Char(value, kind, loc) { + var symbol = void 0; + var codePoint = void 0; + + switch (kind) { + case 'decimal': + { + codePoint = Number(value.slice(1)); + symbol = String.fromCodePoint(codePoint); + break; + } + case 'oct': + { + codePoint = parseInt(value.slice(1), 8); + symbol = String.fromCodePoint(codePoint); + break; + } + case 'hex': + case 'unicode': + { + if (value.lastIndexOf('\\u') > 0) { + var _value$split$slice = value.split('\\u').slice(1), + _value$split$slice2 = _slicedToArray(_value$split$slice, 2), + lead = _value$split$slice2[0], + trail = _value$split$slice2[1]; + + lead = parseInt(lead, 16); + trail = parseInt(trail, 16); + codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000; + + symbol = String.fromCodePoint(codePoint); + } else { + var hex = value.slice(2).replace('{', ''); + codePoint = parseInt(hex, 16); + if (codePoint > 0x10ffff) { + throw new SyntaxError('Bad character escape sequence: ' + value); + } + + symbol = String.fromCodePoint(codePoint); + } + break; + } + case 'meta': + { + switch (value) { + case '\\t': + symbol = '\t'; + codePoint = symbol.codePointAt(0); + break; + case '\\n': + symbol = '\n'; + codePoint = symbol.codePointAt(0); + break; + case '\\r': + symbol = '\r'; + codePoint = symbol.codePointAt(0); + break; + case '\\v': + symbol = '\v'; + codePoint = symbol.codePointAt(0); + break; + case '\\f': + symbol = '\f'; + codePoint = symbol.codePointAt(0); + break; + case '\\b': + symbol = '\b'; + codePoint = symbol.codePointAt(0); + case '\\0': + symbol = '\0'; + codePoint = 0; + case '.': + symbol = '.'; + codePoint = NaN; + break; + default: + codePoint = NaN; + } + break; + } + case 'simple': + { + symbol = value; + codePoint = symbol.codePointAt(0); + break; + } + } + + return Node({ + type: 'Char', + value: value, + kind: kind, + symbol: symbol, + codePoint: codePoint + }, loc); +} + +/** + * Valid flags per current ECMAScript spec and + * stage 3+ proposals. + */ +var validFlags = 'gimsuxy'; + +/** + * Checks the flags are valid, and that + * we don't duplicate flags. + */ +function checkFlags(flags) { + var seen = new Set(); + + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var flag = _step.value; + + if (seen.has(flag) || !validFlags.includes(flag)) { + throw new SyntaxError('Invalid flags: ' + flags); + } + seen.add(flag); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + + return flags.split('').sort().join(''); +} + +/** + * Parses patterns like \1, \2, etc. either as a backreference + * to a group, or a deciaml char code. + */ +function GroupRefOrDecChar(text, textLoc) { + var reference = Number(text.slice(1)); + + if (reference > 0 && reference <= capturingGroupsCount) { + return Node({ + type: 'Backreference', + kind: 'number', + number: reference, + reference: reference + }, textLoc); + } + + return Char(text, 'decimal', textLoc); +} + +/** + * Unicode names. + */ +var uReStart = /^\\u[0-9a-fA-F]{4}/; // only matches start of string +var ucpReStart = /^\\u\{[0-9a-fA-F]{1,}\}/; // only matches start of string +var ucpReAnywhere = /\\u\{[0-9a-fA-F]{1,}\}/; // matches anywhere in string + +/** + * Validates Unicode group name. + */ +function validateUnicodeGroupName(name, state) { + var isUnicodeName = ucpReAnywhere.test(name); + var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class'; + + if (isUnicodeName && !isUnicodeState) { + throw new SyntaxError('invalid group Unicode name "' + name + '", use `u` flag.'); + } + + return name; +} + +// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence +// +// RegExpUnicodeEscapeSequence :: +// `u` LeadSurrogate `\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate' +// `u` LeadSurrogate # as 'leadSurrogateOnly' +// `u` TrailSurrogate # as 'trailSurrogateOnly' +// `u` NonSurrogate # as 'nonSurrogate' +// `u` `{` CodePoint `}` # as 'codePoint' +// +// LeadSurrogate :: +// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2} +// +// TrailSurrogate :: +// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2} +// +// NonSurrogate :: +// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2} +// +// CodePoint :: +// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}) +// +var uidRe = /\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/; + +function decodeUnicodeGroupName(name) { + return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) { + if (leadSurrogate) { + return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16)); + } + if (leadSurrogateOnly) { + return String.fromCodePoint(parseInt(leadSurrogateOnly, 16)); + } + if (trailSurrogateOnly) { + // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence + // > Each `\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\u` TrailSurrogate. + return String.fromCodePoint(parseInt(trailSurrogateOnly, 16)); + } + if (nonSurrogate) { + return String.fromCodePoint(parseInt(nonSurrogate, 16)); + } + if (codePoint) { + return String.fromCodePoint(parseInt(codePoint, 16)); + } + return _; + }); +} + +/** + * Extracts from `\k` pattern either a backreference + * to a named capturing group (if it presents), or parses it + * as a list of char: `\k`, `<`, `f`, etc. + */ +function NamedGroupRefOrChars(text, textLoc) { + var referenceRaw = text.slice(3, -1); + var reference = decodeUnicodeGroupName(referenceRaw); + + if (namedGroups.hasOwnProperty(reference)) { + return Node({ + type: 'Backreference', + kind: 'name', + number: namedGroups[reference], + reference: reference, + referenceRaw: referenceRaw + }, textLoc); + } + + // Else `\k` should be parsed as a list of `Char`s. + // This is really a 0.01% edge case, but we should handle it. + + var startOffset = null; + var startLine = null; + var endLine = null; + var startColumn = null; + + if (textLoc) { + startOffset = textLoc.startOffset; + startLine = textLoc.startLine; + endLine = textLoc.endLine; + startColumn = textLoc.startColumn; + } + + var charRe = /^[\w$<>]/; + var loc = void 0; + + var chars = [ + // Init to first \k, taking 2 symbols. + Char(text.slice(1, 2), 'simple', startOffset ? { + startLine: startLine, + endLine: endLine, + startColumn: startColumn, + startOffset: startOffset, + endOffset: startOffset += 2, + endColumn: startColumn += 2 + } : null)]; + + // For \k + chars[0].escaped = true; + + // Other symbols. + text = text.slice(2); + + while (text.length > 0) { + var matched = null; + + // Unicode, \u003B or \u{003B} + if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) { + if (startOffset) { + loc = { + startLine: startLine, + endLine: endLine, + startColumn: startColumn, + startOffset: startOffset, + endOffset: startOffset += matched[0].length, + endColumn: startColumn += matched[0].length + }; + } + chars.push(Char(matched[0], 'unicode', loc)); + text = text.slice(matched[0].length); + } + + // Simple char. + else if (matched = text.match(charRe)) { + if (startOffset) { + loc = { + startLine: startLine, + endLine: endLine, + startColumn: startColumn, + startOffset: startOffset, + endOffset: ++startOffset, + endColumn: ++startColumn + }; + } + chars.push(Char(matched[0], 'simple', loc)); + text = text.slice(1); + } + } + + return chars; +} + +/** + * Creates an AST node with a location. + */ +function Node(node, loc) { + if (yy.options.captureLocations) { + node.loc = { + source: parsingString.slice(loc.startOffset, loc.endOffset), + start: { + line: loc.startLine, + column: loc.startColumn, + offset: loc.startOffset + }, + end: { + line: loc.endLine, + column: loc.endColumn, + offset: loc.endOffset + } + }; + } + return node; +} + +/** + * Creates location node. + */ +function loc(start, end) { + if (!yy.options.captureLocations) { + return null; + } + + return { + startOffset: start.startOffset, + endOffset: end.endOffset, + startLine: start.startLine, + endLine: end.endLine, + startColumn: start.startColumn, + endColumn: end.endColumn + }; +} + +function unexpectedToken(token) { + if (token.type === EOF) { + unexpectedEndOfInput(); + } + + tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn); +} + +function unexpectedEndOfInput() { + parseError('Unexpected end of input.'); +} + +function parseError(message) { + throw new SyntaxError(message); +} + +module.exports = yyparse; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/parser/index.js": +/*!*******************************************************!*\ + !*** ./node_modules/regexp-tree/dist/parser/index.js ***! + \*******************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var regexpTreeParser = __webpack_require__(/*! ./generated/regexp-tree */ "./node_modules/regexp-tree/dist/parser/generated/regexp-tree.js"); + +/** + * Original parse function. + */ +var generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser); + +/** + * Parses a regular expression. + * + * Override original `regexpTreeParser.parse` to convert a value to a string, + * since in regexp-tree we may pass strings, and RegExp instance. + */ +regexpTreeParser.parse = function (regexp, options) { + return generatedParseFn('' + regexp, options); +}; + +// By default do not capture locations; callers may override. +regexpTreeParser.setOptions({ captureLocations: false }); + +module.exports = regexpTreeParser; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js ***! + \***********************************************************************************/ +/***/ ((module) => { + +"use strict"; + + +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + +var NON_BINARY_PROP_NAMES_TO_ALIASES = { + General_Category: 'gc', + Script: 'sc', + Script_Extensions: 'scx' +}; + +var NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES); + +var BINARY_PROP_NAMES_TO_ALIASES = { + ASCII: 'ASCII', + ASCII_Hex_Digit: 'AHex', + Alphabetic: 'Alpha', + Any: 'Any', + Assigned: 'Assigned', + Bidi_Control: 'Bidi_C', + Bidi_Mirrored: 'Bidi_M', + Case_Ignorable: 'CI', + Cased: 'Cased', + Changes_When_Casefolded: 'CWCF', + Changes_When_Casemapped: 'CWCM', + Changes_When_Lowercased: 'CWL', + Changes_When_NFKC_Casefolded: 'CWKCF', + Changes_When_Titlecased: 'CWT', + Changes_When_Uppercased: 'CWU', + Dash: 'Dash', + Default_Ignorable_Code_Point: 'DI', + Deprecated: 'Dep', + Diacritic: 'Dia', + Emoji: 'Emoji', + Emoji_Component: 'Emoji_Component', + Emoji_Modifier: 'Emoji_Modifier', + Emoji_Modifier_Base: 'Emoji_Modifier_Base', + Emoji_Presentation: 'Emoji_Presentation', + Extended_Pictographic: 'Extended_Pictographic', + Extender: 'Ext', + Grapheme_Base: 'Gr_Base', + Grapheme_Extend: 'Gr_Ext', + Hex_Digit: 'Hex', + IDS_Binary_Operator: 'IDSB', + IDS_Trinary_Operator: 'IDST', + ID_Continue: 'IDC', + ID_Start: 'IDS', + Ideographic: 'Ideo', + Join_Control: 'Join_C', + Logical_Order_Exception: 'LOE', + Lowercase: 'Lower', + Math: 'Math', + Noncharacter_Code_Point: 'NChar', + Pattern_Syntax: 'Pat_Syn', + Pattern_White_Space: 'Pat_WS', + Quotation_Mark: 'QMark', + Radical: 'Radical', + Regional_Indicator: 'RI', + Sentence_Terminal: 'STerm', + Soft_Dotted: 'SD', + Terminal_Punctuation: 'Term', + Unified_Ideograph: 'UIdeo', + Uppercase: 'Upper', + Variation_Selector: 'VS', + White_Space: 'space', + XID_Continue: 'XIDC', + XID_Start: 'XIDS' +}; + +var BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES); + +var GENERAL_CATEGORY_VALUE_TO_ALIASES = { + Cased_Letter: 'LC', + Close_Punctuation: 'Pe', + Connector_Punctuation: 'Pc', + Control: ['Cc', 'cntrl'], + Currency_Symbol: 'Sc', + Dash_Punctuation: 'Pd', + Decimal_Number: ['Nd', 'digit'], + Enclosing_Mark: 'Me', + Final_Punctuation: 'Pf', + Format: 'Cf', + Initial_Punctuation: 'Pi', + Letter: 'L', + Letter_Number: 'Nl', + Line_Separator: 'Zl', + Lowercase_Letter: 'Ll', + Mark: ['M', 'Combining_Mark'], + Math_Symbol: 'Sm', + Modifier_Letter: 'Lm', + Modifier_Symbol: 'Sk', + Nonspacing_Mark: 'Mn', + Number: 'N', + Open_Punctuation: 'Ps', + Other: 'C', + Other_Letter: 'Lo', + Other_Number: 'No', + Other_Punctuation: 'Po', + Other_Symbol: 'So', + Paragraph_Separator: 'Zp', + Private_Use: 'Co', + Punctuation: ['P', 'punct'], + Separator: 'Z', + Space_Separator: 'Zs', + Spacing_Mark: 'Mc', + Surrogate: 'Cs', + Symbol: 'S', + Titlecase_Letter: 'Lt', + Unassigned: 'Cn', + Uppercase_Letter: 'Lu' +}; + +var GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES); + +var SCRIPT_VALUE_TO_ALIASES = { + Adlam: 'Adlm', + Ahom: 'Ahom', + Anatolian_Hieroglyphs: 'Hluw', + Arabic: 'Arab', + Armenian: 'Armn', + Avestan: 'Avst', + Balinese: 'Bali', + Bamum: 'Bamu', + Bassa_Vah: 'Bass', + Batak: 'Batk', + Bengali: 'Beng', + Bhaiksuki: 'Bhks', + Bopomofo: 'Bopo', + Brahmi: 'Brah', + Braille: 'Brai', + Buginese: 'Bugi', + Buhid: 'Buhd', + Canadian_Aboriginal: 'Cans', + Carian: 'Cari', + Caucasian_Albanian: 'Aghb', + Chakma: 'Cakm', + Cham: 'Cham', + Cherokee: 'Cher', + Common: 'Zyyy', + Coptic: ['Copt', 'Qaac'], + Cuneiform: 'Xsux', + Cypriot: 'Cprt', + Cyrillic: 'Cyrl', + Deseret: 'Dsrt', + Devanagari: 'Deva', + Dogra: 'Dogr', + Duployan: 'Dupl', + Egyptian_Hieroglyphs: 'Egyp', + Elbasan: 'Elba', + Ethiopic: 'Ethi', + Georgian: 'Geor', + Glagolitic: 'Glag', + Gothic: 'Goth', + Grantha: 'Gran', + Greek: 'Grek', + Gujarati: 'Gujr', + Gunjala_Gondi: 'Gong', + Gurmukhi: 'Guru', + Han: 'Hani', + Hangul: 'Hang', + Hanifi_Rohingya: 'Rohg', + Hanunoo: 'Hano', + Hatran: 'Hatr', + Hebrew: 'Hebr', + Hiragana: 'Hira', + Imperial_Aramaic: 'Armi', + Inherited: ['Zinh', 'Qaai'], + Inscriptional_Pahlavi: 'Phli', + Inscriptional_Parthian: 'Prti', + Javanese: 'Java', + Kaithi: 'Kthi', + Kannada: 'Knda', + Katakana: 'Kana', + Kayah_Li: 'Kali', + Kharoshthi: 'Khar', + Khmer: 'Khmr', + Khojki: 'Khoj', + Khudawadi: 'Sind', + Lao: 'Laoo', + Latin: 'Latn', + Lepcha: 'Lepc', + Limbu: 'Limb', + Linear_A: 'Lina', + Linear_B: 'Linb', + Lisu: 'Lisu', + Lycian: 'Lyci', + Lydian: 'Lydi', + Mahajani: 'Mahj', + Makasar: 'Maka', + Malayalam: 'Mlym', + Mandaic: 'Mand', + Manichaean: 'Mani', + Marchen: 'Marc', + Medefaidrin: 'Medf', + Masaram_Gondi: 'Gonm', + Meetei_Mayek: 'Mtei', + Mende_Kikakui: 'Mend', + Meroitic_Cursive: 'Merc', + Meroitic_Hieroglyphs: 'Mero', + Miao: 'Plrd', + Modi: 'Modi', + Mongolian: 'Mong', + Mro: 'Mroo', + Multani: 'Mult', + Myanmar: 'Mymr', + Nabataean: 'Nbat', + New_Tai_Lue: 'Talu', + Newa: 'Newa', + Nko: 'Nkoo', + Nushu: 'Nshu', + Ogham: 'Ogam', + Ol_Chiki: 'Olck', + Old_Hungarian: 'Hung', + Old_Italic: 'Ital', + Old_North_Arabian: 'Narb', + Old_Permic: 'Perm', + Old_Persian: 'Xpeo', + Old_Sogdian: 'Sogo', + Old_South_Arabian: 'Sarb', + Old_Turkic: 'Orkh', + Oriya: 'Orya', + Osage: 'Osge', + Osmanya: 'Osma', + Pahawh_Hmong: 'Hmng', + Palmyrene: 'Palm', + Pau_Cin_Hau: 'Pauc', + Phags_Pa: 'Phag', + Phoenician: 'Phnx', + Psalter_Pahlavi: 'Phlp', + Rejang: 'Rjng', + Runic: 'Runr', + Samaritan: 'Samr', + Saurashtra: 'Saur', + Sharada: 'Shrd', + Shavian: 'Shaw', + Siddham: 'Sidd', + SignWriting: 'Sgnw', + Sinhala: 'Sinh', + Sogdian: 'Sogd', + Sora_Sompeng: 'Sora', + Soyombo: 'Soyo', + Sundanese: 'Sund', + Syloti_Nagri: 'Sylo', + Syriac: 'Syrc', + Tagalog: 'Tglg', + Tagbanwa: 'Tagb', + Tai_Le: 'Tale', + Tai_Tham: 'Lana', + Tai_Viet: 'Tavt', + Takri: 'Takr', + Tamil: 'Taml', + Tangut: 'Tang', + Telugu: 'Telu', + Thaana: 'Thaa', + Thai: 'Thai', + Tibetan: 'Tibt', + Tifinagh: 'Tfng', + Tirhuta: 'Tirh', + Ugaritic: 'Ugar', + Vai: 'Vaii', + Warang_Citi: 'Wara', + Yi: 'Yiii', + Zanabazar_Square: 'Zanb' +}; + +var SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES); + +function inverseMap(data) { + var inverse = {}; + + for (var name in data) { + if (!data.hasOwnProperty(name)) { + continue; + } + var value = data[name]; + if (Array.isArray(value)) { + for (var i = 0; i < value.length; i++) { + inverse[value[i]] = name; + } + } else { + inverse[value] = name; + } + } + + return inverse; +} + +function isValidName(name) { + return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name); +} + +function isValidValue(name, value) { + if (isGeneralCategoryName(name)) { + return isGeneralCategoryValue(value); + } + + if (isScriptCategoryName(name)) { + return isScriptCategoryValue(value); + } + + return false; +} + +function isAlias(name) { + return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name); +} + +function isGeneralCategoryName(name) { + return name === 'General_Category' || name == 'gc'; +} + +function isScriptCategoryName(name) { + return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx'; +} + +function isGeneralCategoryValue(value) { + return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value); +} + +function isScriptCategoryValue(value) { + return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value); +} + +function isBinaryPropertyName(name) { + return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name); +} + +function getCanonicalName(name) { + if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) { + return NON_BINARY_ALIASES_TO_PROP_NAMES[name]; + } + + if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) { + return BINARY_ALIASES_TO_PROP_NAMES[name]; + } + + return null; +} + +function getCanonicalValue(value) { + if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) { + return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value]; + } + + if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) { + return SCRIPT_VALUE_ALIASES_TO_VALUE[value]; + } + + if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) { + return BINARY_ALIASES_TO_PROP_NAMES[value]; + } + + return null; +} + +module.exports = { + isAlias: isAlias, + isValidName: isValidName, + isValidValue: isValidValue, + isGeneralCategoryValue: isGeneralCategoryValue, + isScriptCategoryValue: isScriptCategoryValue, + isBinaryPropertyName: isBinaryPropertyName, + getCanonicalName: getCanonicalName, + getCanonicalValue: getCanonicalValue, + + NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES, + NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES, + + BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES, + BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES, + + GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES, + GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES, + + SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES, + SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/regexp-tree.js": +/*!******************************************************!*\ + !*** ./node_modules/regexp-tree/dist/regexp-tree.js ***! + \******************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var compatTranspiler = __webpack_require__(/*! ./compat-transpiler */ "./node_modules/regexp-tree/dist/compat-transpiler/index.js"); +var generator = __webpack_require__(/*! ./generator */ "./node_modules/regexp-tree/dist/generator/index.js"); +var optimizer = __webpack_require__(/*! ./optimizer */ "./node_modules/regexp-tree/dist/optimizer/index.js"); +var parser = __webpack_require__(/*! ./parser */ "./node_modules/regexp-tree/dist/parser/index.js"); +var _transform = __webpack_require__(/*! ./transform */ "./node_modules/regexp-tree/dist/transform/index.js"); +var _traverse = __webpack_require__(/*! ./traverse */ "./node_modules/regexp-tree/dist/traverse/index.js"); +var fa = __webpack_require__(/*! ./interpreter/finite-automaton */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js"); + +var _require = __webpack_require__(/*! ./compat-transpiler/runtime */ "./node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js"), + RegExpTree = _require.RegExpTree; + +/** + * An API object for RegExp processing (parsing/transform/generation). + */ + + +var regexpTree = { + /** + * Parser module exposed. + */ + parser: parser, + + /** + * Expose finite-automaton module. + */ + fa: fa, + + /** + * `TransformResult` exposed. + */ + TransformResult: _transform.TransformResult, + + /** + * Parses a regexp string, producing an AST. + * + * @param string regexp + * + * a regular expression in different formats: string, AST, RegExp. + * + * @param Object options + * + * parsing options for this parse call. Default are: + * + * - captureLocations: boolean + * - any other custom options + * + * @return Object AST + */ + parse: function parse(regexp, options) { + return parser.parse('' + regexp, options); + }, + + + /** + * Traverses a RegExp AST. + * + * @param Object ast + * @param Object | Array handlers + * + * Each `handler` is an object containing handler function for needed + * node types. Example: + * + * regexpTree.traverse(ast, { + * onChar(node) { + * ... + * }, + * }); + * + * The value for a node type may also be an object with functions pre and post. + * This enables more context-aware analyses, e.g. measuring star height. + */ + traverse: function traverse(ast, handlers, options) { + return _traverse.traverse(ast, handlers, options); + }, + + + /** + * Transforms a regular expression. + * + * A regexp can be passed in different formats (string, regexp or AST), + * applying a set of transformations. It is a convenient wrapper + * on top of "parse-traverse-generate" tool chain. + * + * @param string | AST | RegExp regexp - a regular expression; + * @param Object | Array handlers - a list of handlers. + * + * @return TransformResult - a transformation result. + */ + transform: function transform(regexp, handlers) { + return _transform.transform(regexp, handlers); + }, + + + /** + * Generates a RegExp string from an AST. + * + * @param Object ast + * + * Invariant: + * + * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i' + */ + generate: function generate(ast) { + return generator.generate(ast); + }, + + + /** + * Creates a RegExp object from a regexp string. + * + * @param string regexp + */ + toRegExp: function toRegExp(regexp) { + var compat = this.compatTranspile(regexp); + return new RegExp(compat.getSource(), compat.getFlags()); + }, + + + /** + * Optimizes a regular expression by replacing some + * sub-expressions with their idiomatic patterns. + * + * @param string regexp + * + * @return TransformResult object + */ + optimize: function optimize(regexp, whitelist) { + var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, + blacklist = _ref.blacklist; + + return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist }); + }, + + + /** + * Translates a regular expression in new syntax or in new format + * into equivalent expressions in old syntax. + * + * @param string regexp + * + * @return TransformResult object + */ + compatTranspile: function compatTranspile(regexp, whitelist) { + return compatTranspiler.transform(regexp, whitelist); + }, + + + /** + * Executes a regular expression on a string. + * + * @param RegExp|string re - a regular expression. + * @param string string - a testing string. + */ + exec: function exec(re, string) { + if (typeof re === 'string') { + var compat = this.compatTranspile(re); + var extra = compat.getExtra(); + + if (extra.namedCapturingGroups) { + re = new RegExpTree(compat.toRegExp(), { + flags: compat.getFlags(), + source: compat.getSource(), + groups: extra.namedCapturingGroups + }); + } else { + re = compat.toRegExp(); + } + } + + return re.exec(string); + } +}; + +module.exports = regexpTree; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/transform/index.js": +/*!**********************************************************!*\ + !*** ./node_modules/regexp-tree/dist/transform/index.js ***! + \**********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var generator = __webpack_require__(/*! ../generator */ "./node_modules/regexp-tree/dist/generator/index.js"); +var parser = __webpack_require__(/*! ../parser */ "./node_modules/regexp-tree/dist/parser/index.js"); +var traverse = __webpack_require__(/*! ../traverse */ "./node_modules/regexp-tree/dist/traverse/index.js"); + +/** + * Transform result. + */ + +var TransformResult = function () { + /** + * Initializes a transform result for an AST. + * + * @param Object ast - an AST node + * @param mixed extra - any extra data a transform may return + */ + function TransformResult(ast) { + var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + _classCallCheck(this, TransformResult); + + this._ast = ast; + this._source = null; + this._string = null; + this._regexp = null; + this._extra = extra; + } + + _createClass(TransformResult, [{ + key: 'getAST', + value: function getAST() { + return this._ast; + } + }, { + key: 'setExtra', + value: function setExtra(extra) { + this._extra = extra; + } + }, { + key: 'getExtra', + value: function getExtra() { + return this._extra; + } + }, { + key: 'toRegExp', + value: function toRegExp() { + if (!this._regexp) { + this._regexp = new RegExp(this.getSource(), this._ast.flags); + } + return this._regexp; + } + }, { + key: 'getSource', + value: function getSource() { + if (!this._source) { + this._source = generator.generate(this._ast.body); + } + return this._source; + } + }, { + key: 'getFlags', + value: function getFlags() { + return this._ast.flags; + } + }, { + key: 'toString', + value: function toString() { + if (!this._string) { + this._string = generator.generate(this._ast); + } + return this._string; + } + }]); + + return TransformResult; +}(); + +module.exports = { + /** + * Expose `TransformResult`. + */ + TransformResult: TransformResult, + + /** + * Transforms a regular expression applying a set of + * transformation handlers. + * + * @param string | AST | RegExp: + * + * a regular expression in different representations: a string, + * a RegExp object, or an AST. + * + * @param Object | Array: + * + * a handler (or a list of handlers) from `traverse` API. + * + * @return TransformResult instance. + * + * Example: + * + * transform(/[a-z]/i, { + * onChar(path) { + * const {node} = path; + * + * if (...) { + * path.remove(); + * } + * } + * }); + */ + transform: function transform(regexp, handlers) { + var ast = regexp; + + if (regexp instanceof RegExp) { + regexp = '' + regexp; + } + + if (typeof regexp === 'string') { + ast = parser.parse(regexp, { + captureLocations: true + }); + } + + traverse.traverse(ast, handlers); + + return new TransformResult(ast); + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/transform/utils.js": +/*!**********************************************************!*\ + !*** ./node_modules/regexp-tree/dist/transform/utils.js ***! + \**********************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * Flattens a nested disjunction node to a list. + * + * /a|b|c|d/ + * + * {{{a, b}, c}, d} -> [a, b, c, d] + */ + +function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } + +function disjunctionToList(node) { + if (node.type !== 'Disjunction') { + throw new TypeError('Expected "Disjunction" node, got "' + node.type + '"'); + } + + var list = []; + + if (node.left && node.left.type === 'Disjunction') { + list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right])); + } else { + list.push(node.left, node.right); + } + + return list; +} + +/** + * Builds a nested disjunction node from a list. + * + * /a|b|c|d/ + * + * [a, b, c, d] -> {{{a, b}, c}, d} + */ +function listToDisjunction(list) { + return list.reduce(function (left, right) { + return { + type: 'Disjunction', + left: left, + right: right + }; + }); +} + +/** + * Increases a quantifier by one. + * Does not change greediness. + * * -> + + * + -> {2,} + * ? -> {1,2} + * {2} -> {3} + * {2,} -> {3,} + * {2,3} -> {3,4} + */ +function increaseQuantifierByOne(quantifier) { + if (quantifier.kind === '*') { + + quantifier.kind = '+'; + } else if (quantifier.kind === '+') { + + quantifier.kind = 'Range'; + quantifier.from = 2; + delete quantifier.to; + } else if (quantifier.kind === '?') { + + quantifier.kind = 'Range'; + quantifier.from = 1; + quantifier.to = 2; + } else if (quantifier.kind === 'Range') { + + quantifier.from += 1; + if (quantifier.to) { + quantifier.to += 1; + } + } +} + +module.exports = { + disjunctionToList: disjunctionToList, + listToDisjunction: listToDisjunction, + increaseQuantifierByOne: increaseQuantifierByOne +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/traverse/index.js": +/*!*********************************************************!*\ + !*** ./node_modules/regexp-tree/dist/traverse/index.js ***! + \*********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var NodePath = __webpack_require__(/*! ./node-path */ "./node_modules/regexp-tree/dist/traverse/node-path.js"); + +/** + * Does an actual AST traversal, using visitor pattern, + * and calling set of callbacks. + * + * Based on https://github.com/olov/ast-traverse + * + * Expects AST in Mozilla Parser API: nodes which are supposed to be + * handled should have `type` property. + * + * @param Object root - a root node to start traversal from. + * + * @param Object options - an object with set of callbacks: + * + * - `pre(node, parent, prop, index)` - a hook called on node enter + * - `post`(node, parent, prop, index) - a hook called on node exit + * - `skipProperty(prop)` - a predicated whether a property should be skipped + */ +function astTraverse(root) { + var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + var pre = options.pre; + var post = options.post; + var skipProperty = options.skipProperty; + + function visit(node, parent, prop, idx) { + if (!node || typeof node.type !== 'string') { + return; + } + + var res = undefined; + if (pre) { + res = pre(node, parent, prop, idx); + } + + if (res !== false) { + + // A node can be replaced during traversal, so we have to + // recalculate it from the parent, to avoid traversing "dead" nodes. + if (parent && parent[prop]) { + if (!isNaN(idx)) { + node = parent[prop][idx]; + } else { + node = parent[prop]; + } + } + + for (var _prop in node) { + if (node.hasOwnProperty(_prop)) { + if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') { + continue; + } + + var child = node[_prop]; + + // Collection node. + // + // NOTE: a node (or several nodes) can be removed or inserted + // during traversal. + // + // Current traversing index is stored on top of the + // `NodePath.traversingIndexStack`. The stack is used to support + // recursive nature of the traversal. + // + // In this case `NodePath.traversingIndex` (which we use here) is + // updated in the NodePath remove/insert methods. + // + if (Array.isArray(child)) { + var index = 0; + NodePath.traversingIndexStack.push(index); + while (index < child.length) { + visit(child[index], node, _prop, index); + index = NodePath.updateTraversingIndex(+1); + } + NodePath.traversingIndexStack.pop(); + } + + // Simple node. + else { + visit(child, node, _prop); + } + } + } + } + + if (post) { + post(node, parent, prop, idx); + } + } + + visit(root, null); +} + +module.exports = { + /** + * Traverses an AST. + * + * @param Object ast - an AST node + * + * @param Object | Array handlers: + * + * an object (or an array of objects) + * + * Each such object contains a handler function per node. + * In case of an array of handlers, they are applied in order. + * A handler may return a transformed node (or a different type). + * + * The per-node function may instead be an object with functions pre and post. + * pre is called before visiting the node, post after. + * If a handler is a function, it is treated as the pre function, with an empty post. + * + * @param Object options: + * + * a config object, specifying traversal options: + * + * `asNodes`: boolean - whether handlers should receives raw AST nodes + * (false by default), instead of a `NodePath` wrapper. Note, by default + * `NodePath` wrapper provides a set of convenient method to manipulate + * a traversing AST, and also has access to all parents list. A raw + * nodes traversal should be used in rare cases, when no `NodePath` + * features are needed. + * + * Special hooks: + * + * - `shouldRun(ast)` - a predicate determining whether the handler + * should be applied. + * + * NOTE: Multiple handlers are used as an optimization of applying all of + * them in one AST traversal pass. + */ + traverse: function traverse(ast, handlers) { + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false }; + + + if (!Array.isArray(handlers)) { + handlers = [handlers]; + } + + // Filter out handlers by result of `shouldRun`, if the method is present. + handlers = handlers.filter(function (handler) { + if (typeof handler.shouldRun !== 'function') { + return true; + } + return handler.shouldRun(ast); + }); + + NodePath.initRegistry(); + + // Allow handlers to initializer themselves. + handlers.forEach(function (handler) { + if (typeof handler.init === 'function') { + handler.init(ast); + } + }); + + function getPathFor(node, parent, prop, index) { + var parentPath = NodePath.getForNode(parent); + var nodePath = NodePath.getForNode(node, parentPath, prop, index); + + return nodePath; + } + + // Handle actual nodes. + astTraverse(ast, { + /** + * Handler on node enter. + */ + pre: function pre(node, parent, prop, index) { + var nodePath = void 0; + if (!options.asNodes) { + nodePath = getPathFor(node, parent, prop, index); + } + + var _iteratorNormalCompletion = true; + var _didIteratorError = false; + var _iteratorError = undefined; + + try { + for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { + var handler = _step.value; + + // "Catch-all" `*` handler. + if (typeof handler['*'] === 'function') { + if (nodePath) { + // A path/node can be removed by some previous handler. + if (!nodePath.isRemoved()) { + var handlerResult = handler['*'](nodePath); + // Explicitly stop traversal. + if (handlerResult === false) { + return false; + } + } + } else { + handler['*'](node, parent, prop, index); + } + } + + // Per-node handler. + var handlerFuncPre = void 0; + if (typeof handler[node.type] === 'function') { + handlerFuncPre = handler[node.type]; + } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') { + handlerFuncPre = handler[node.type].pre; + } + + if (handlerFuncPre) { + if (nodePath) { + // A path/node can be removed by some previous handler. + if (!nodePath.isRemoved()) { + var _handlerResult = handlerFuncPre.call(handler, nodePath); + // Explicitly stop traversal. + if (_handlerResult === false) { + return false; + } + } + } else { + handlerFuncPre.call(handler, node, parent, prop, index); + } + } + } // Loop over handlers + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } + }, + // pre func + + /** + * Handler on node exit. + */ + post: function post(node, parent, prop, index) { + if (!node) { + return; + } + + var nodePath = void 0; + if (!options.asNodes) { + nodePath = getPathFor(node, parent, prop, index); + } + + var _iteratorNormalCompletion2 = true; + var _didIteratorError2 = false; + var _iteratorError2 = undefined; + + try { + for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { + var handler = _step2.value; + + // Per-node handler. + var handlerFuncPost = void 0; + if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') { + handlerFuncPost = handler[node.type].post; + } + + if (handlerFuncPost) { + if (nodePath) { + // A path/node can be removed by some previous handler. + if (!nodePath.isRemoved()) { + var handlerResult = handlerFuncPost.call(handler, nodePath); + // Explicitly stop traversal. + if (handlerResult === false) { + return false; + } + } + } else { + handlerFuncPost.call(handler, node, parent, prop, index); + } + } + } // Loop over handlers + } catch (err) { + _didIteratorError2 = true; + _iteratorError2 = err; + } finally { + try { + if (!_iteratorNormalCompletion2 && _iterator2.return) { + _iterator2.return(); + } + } finally { + if (_didIteratorError2) { + throw _iteratorError2; + } + } + } + }, + // post func + + /** + * Skip locations by default. + */ + skipProperty: function skipProperty(prop) { + return prop === 'loc'; + } + }); + } +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/traverse/node-path.js": +/*!*************************************************************!*\ + !*** ./node_modules/regexp-tree/dist/traverse/node-path.js ***! + \*************************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var DEFAULT_COLLECTION_PROP = 'expressions'; +var DEFAULT_SINGLE_PROP = 'expression'; + +/** + * NodePath class encapsulates a traversing node, + * its parent node, property name in the parent node, and + * an index (in case if a node is part of a collection). + * It also provides set of methods for AST manipulation. + */ + +var NodePath = function () { + /** + * NodePath constructor. + * + * @param Object node - an AST node + * @param NodePath parentPath - a nullable parent path + * @param string property - property name of the node in the parent + * @param number index - index of the node in a collection. + */ + function NodePath(node) { + var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + + _classCallCheck(this, NodePath); + + this.node = node; + this.parentPath = parentPath; + this.parent = parentPath ? parentPath.node : null; + this.property = property; + this.index = index; + } + + _createClass(NodePath, [{ + key: '_enforceProp', + value: function _enforceProp(property) { + if (!this.node.hasOwnProperty(property)) { + throw new Error('Node of type ' + this.node.type + ' doesn\'t have "' + property + '" collection.'); + } + } + + /** + * Sets a node into a children collection or the single child. + * By default child nodes are supposed to be under `expressions` property. + * An explicit property can be passed. + * + * @param Object node - a node to set into a collection or as single child + * @param number index - index at which to set + * @param string property - name of the collection or single property + */ + + }, { + key: 'setChild', + value: function setChild(node) { + var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + + + var childPath = void 0; + if (index != null) { + if (!property) { + property = DEFAULT_COLLECTION_PROP; + } + this._enforceProp(property); + this.node[property][index] = node; + childPath = NodePath.getForNode(node, this, property, index); + } else { + if (!property) { + property = DEFAULT_SINGLE_PROP; + } + this._enforceProp(property); + this.node[property] = node; + childPath = NodePath.getForNode(node, this, property, null); + } + return childPath; + } + + /** + * Appends a node to a children collection. + * By default child nodes are supposed to be under `expressions` property. + * An explicit property can be passed. + * + * @param Object node - a node to set into a collection or as single child + * @param string property - name of the collection or single property + */ + + }, { + key: 'appendChild', + value: function appendChild(node) { + var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + + + if (!property) { + property = DEFAULT_COLLECTION_PROP; + } + this._enforceProp(property); + var end = this.node[property].length; + return this.setChild(node, end, property); + } + + /** + * Inserts a node into a collection. + * By default child nodes are supposed to be under `expressions` property. + * An explicit property can be passed. + * + * @param Object node - a node to insert into a collection + * @param number index - index at which to insert + * @param string property - name of the collection property + */ + + }, { + key: 'insertChildAt', + value: function insertChildAt(node, index) { + var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP; + + this._enforceProp(property); + + this.node[property].splice(index, 0, node); + + // If we inserted a node before the traversing index, + // we should increase the later. + if (index <= NodePath.getTraversingIndex()) { + NodePath.updateTraversingIndex(+1); + } + + this._rebuildIndex(this.node, property); + } + + /** + * Removes a node. + */ + + }, { + key: 'remove', + value: function remove() { + if (this.isRemoved()) { + return; + } + NodePath.registry.delete(this.node); + + this.node = null; + + if (!this.parent) { + return; + } + + // A node is in a collection. + if (this.index !== null) { + this.parent[this.property].splice(this.index, 1); + + // If we remove a node before the traversing index, + // we should increase the later. + if (this.index <= NodePath.getTraversingIndex()) { + NodePath.updateTraversingIndex(-1); + } + + // Rebuild index. + this._rebuildIndex(this.parent, this.property); + + this.index = null; + this.property = null; + + return; + } + + // A simple node. + delete this.parent[this.property]; + this.property = null; + } + + /** + * Rebuilds child nodes index (used on remove/insert). + */ + + }, { + key: '_rebuildIndex', + value: function _rebuildIndex(parent, property) { + var parentPath = NodePath.getForNode(parent); + + for (var i = 0; i < parent[property].length; i++) { + var path = NodePath.getForNode(parent[property][i], parentPath, property, i); + path.index = i; + } + } + + /** + * Whether the path was removed. + */ + + }, { + key: 'isRemoved', + value: function isRemoved() { + return this.node === null; + } + + /** + * Replaces a node with the passed one. + */ + + }, { + key: 'replace', + value: function replace(newNode) { + NodePath.registry.delete(this.node); + + this.node = newNode; + + if (!this.parent) { + return null; + } + + // A node is in a collection. + if (this.index !== null) { + this.parent[this.property][this.index] = newNode; + } + + // A simple node. + else { + this.parent[this.property] = newNode; + } + + // Rebuild the node path for the new node. + return NodePath.getForNode(newNode, this.parentPath, this.property, this.index); + } + + /** + * Updates a node inline. + */ + + }, { + key: 'update', + value: function update(nodeProps) { + Object.assign(this.node, nodeProps); + } + + /** + * Returns parent. + */ + + }, { + key: 'getParent', + value: function getParent() { + return this.parentPath; + } + + /** + * Returns nth child. + */ + + }, { + key: 'getChild', + value: function getChild() { + var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + + if (this.node.expressions) { + return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n); + } else if (this.node.expression && n == 0) { + return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP); + } + return null; + } + + /** + * Whether a path node is syntactically equal to the passed one. + * + * NOTE: we don't rely on `source` property from the `loc` data + * (which would be the fastest comparison), since it might be unsync + * after several modifications. We use here simple `JSON.stringify` + * excluding the `loc` data. + * + * @param NodePath other - path to compare to. + * @return boolean + */ + + }, { + key: 'hasEqualSource', + value: function hasEqualSource(path) { + return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc); + } + + /** + * JSON-encodes a node skipping location. + */ + + }, { + key: 'jsonEncode', + value: function jsonEncode() { + var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, + format = _ref.format, + useLoc = _ref.useLoc; + + return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format); + } + + /** + * Returns previous sibling. + */ + + }, { + key: 'getPreviousSibling', + value: function getPreviousSibling() { + if (!this.parent || this.index == null) { + return null; + } + return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1); + } + + /** + * Returns next sibling. + */ + + }, { + key: 'getNextSibling', + value: function getNextSibling() { + if (!this.parent || this.index == null) { + return null; + } + return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1); + } + + /** + * Returns a NodePath instance for a node. + * + * The same NodePath can be reused in several places, e.g. + * a parent node passed for all its children. + */ + + }], [{ + key: 'getForNode', + value: function getForNode(node) { + var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; + var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; + var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1; + + if (!node) { + return null; + } + + if (!NodePath.registry.has(node)) { + NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index)); + } + + var path = NodePath.registry.get(node); + + if (parentPath !== null) { + path.parentPath = parentPath; + path.parent = path.parentPath.node; + } + + if (prop !== null) { + path.property = prop; + } + + if (index >= 0) { + path.index = index; + } + + return path; + } + + /** + * Initializes the NodePath registry. The registry is a map from + * a node to its NodePath instance. + */ + + }, { + key: 'initRegistry', + value: function initRegistry() { + if (!NodePath.registry) { + NodePath.registry = new Map(); + } + NodePath.registry.clear(); + } + + /** + * Updates index of a currently traversing collection. + */ + + }, { + key: 'updateTraversingIndex', + value: function updateTraversingIndex(dx) { + return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx; + } + + /** + * Returns current traversing index. + */ + + }, { + key: 'getTraversingIndex', + value: function getTraversingIndex() { + return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1]; + } + }]); + + return NodePath; +}(); + +NodePath.initRegistry(); + +/** + * Index of a currently traversing collection is stored on top of the + * `NodePath.traversingIndexStack`. Remove/insert methods can adjust + * this index. + */ +NodePath.traversingIndexStack = []; + +// Helper function used to skip `loc` in JSON operations. +function jsonSkipLoc(prop, value) { + if (prop === 'loc') { + return undefined; + } + return value; +} + +module.exports = NodePath; + +/***/ }), + +/***/ "./node_modules/regexp-tree/dist/utils/clone.js": +/*!******************************************************!*\ + !*** ./node_modules/regexp-tree/dist/utils/clone.js ***! + \******************************************************/ +/***/ ((module) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +/** + * Performs a deep copy of an simple object. + * Only handles scalar values, arrays and objects. + * + * @param obj Object + */ + +module.exports = function clone(obj) { + if (obj === null || typeof obj !== 'object') { + return obj; + } + var res = void 0; + if (Array.isArray(obj)) { + res = []; + } else { + res = {}; + } + for (var i in obj) { + res[i] = clone(obj[i]); + } + return res; +}; + +/***/ }), + +/***/ "./node_modules/regexp-tree/index.js": +/*!*******************************************!*\ + !*** ./node_modules/regexp-tree/index.js ***! + \*******************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/** + * The MIT License (MIT) + * Copyright (c) 2017-present Dmitry Soshnikov + */ + + + +module.exports = __webpack_require__(/*! ./dist/regexp-tree */ "./node_modules/regexp-tree/dist/regexp-tree.js"); + +/***/ }), + +/***/ "?3465": +/*!**********************!*\ + !*** path (ignored) ***! + \**********************/ +/***/ (() => { + +/* (ignored) */ + +/***/ }), + +/***/ "./node_modules/browserslist-useragent-regexp/dist/index.js": +/*!******************************************************************!*\ + !*** ./node_modules/browserslist-useragent-regexp/dist/index.js ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ AlternativeNode: () => (/* binding */ AlternativeNode), +/* harmony export */ AstRegExpNode: () => (/* binding */ AstRegExpNode), +/* harmony export */ CapturingGroupNode: () => (/* binding */ CapturingGroupNode), +/* harmony export */ CharacterClassNode: () => (/* binding */ CharacterClassNode), +/* harmony export */ ClassRangeNode: () => (/* binding */ ClassRangeNode), +/* harmony export */ DigitPatternNode: () => (/* binding */ DigitPatternNode), +/* harmony export */ DisjunctionCapturingGroupNode: () => (/* binding */ DisjunctionCapturingGroupNode), +/* harmony export */ DisjunctionNode: () => (/* binding */ DisjunctionNode), +/* harmony export */ MetaCharNode: () => (/* binding */ MetaCharNode), +/* harmony export */ NumberCharsNode: () => (/* binding */ NumberCharsNode), +/* harmony export */ NumberPatternNode: () => (/* binding */ NumberPatternNode), +/* harmony export */ RangeQuantifierNode: () => (/* binding */ RangeQuantifierNode), +/* harmony export */ RepetitionNode: () => (/* binding */ RepetitionNode), +/* harmony export */ SemverPart: () => (/* binding */ SemverPart), +/* harmony export */ SimpleCharNode: () => (/* binding */ SimpleCharNode), +/* harmony export */ SimpleQuantifierNode: () => (/* binding */ SimpleQuantifierNode), +/* harmony export */ applyVersionsToRegex: () => (/* binding */ applyVersionsToRegex), +/* harmony export */ applyVersionsToRegexes: () => (/* binding */ applyVersionsToRegexes), +/* harmony export */ clone: () => (/* binding */ clone), +/* harmony export */ compareArrays: () => (/* binding */ compareArrays), +/* harmony export */ compareSemvers: () => (/* binding */ compareSemvers), +/* harmony export */ compileRegex: () => (/* binding */ compileRegex), +/* harmony export */ compileRegexes: () => (/* binding */ compileRegexes), +/* harmony export */ concat: () => (/* binding */ concat), +/* harmony export */ defaultOptions: () => (/* binding */ defaultOptions), +/* harmony export */ findMatchedVersions: () => (/* binding */ findMatchedVersions), +/* harmony export */ getBrowsersList: () => (/* binding */ getBrowsersList), +/* harmony export */ getNumberPatternsCount: () => (/* binding */ getNumberPatternsCount), +/* harmony export */ getNumberPatternsPart: () => (/* binding */ getNumberPatternsPart), +/* harmony export */ getPreUserAgentRegexes: () => (/* binding */ getPreUserAgentRegexes), +/* harmony export */ getRegexesForBrowsers: () => (/* binding */ getRegexesForBrowsers), +/* harmony export */ getRequiredSemverPartsCount: () => (/* binding */ getRequiredSemverPartsCount), +/* harmony export */ getUserAgentRegex: () => (/* binding */ getUserAgentRegex), +/* harmony export */ getUserAgentRegexes: () => (/* binding */ getUserAgentRegexes), +/* harmony export */ isCharNode: () => (/* binding */ isCharNode), +/* harmony export */ isDigitRangeNode: () => (/* binding */ isDigitRangeNode), +/* harmony export */ isExpressionNode: () => (/* binding */ isExpressionNode), +/* harmony export */ isNumberPatternNode: () => (/* binding */ isNumberPatternNode), +/* harmony export */ mergeBrowserVersions: () => (/* binding */ mergeBrowserVersions), +/* harmony export */ mergeDigits: () => (/* binding */ mergeDigits), +/* harmony export */ numberToDigits: () => (/* binding */ numberToDigits), +/* harmony export */ numbersToRanges: () => (/* binding */ numbersToRanges), +/* harmony export */ optimizeRegex: () => (/* binding */ optimizeRegex), +/* harmony export */ optimizeSegmentNumberPatterns: () => (/* binding */ optimizeSegmentNumberPatterns), +/* harmony export */ parseBrowsersList: () => (/* binding */ parseBrowsersList), +/* harmony export */ parseRegex: () => (/* binding */ parseRegex), +/* harmony export */ rangeSemver: () => (/* binding */ rangeSemver), +/* harmony export */ rangeToRegex: () => (/* binding */ rangeToRegex), +/* harmony export */ rangedSemverToRegex: () => (/* binding */ rangedSemverToRegex), +/* harmony export */ rayRangeDigitPattern: () => (/* binding */ rayRangeDigitPattern), +/* harmony export */ rayToNumberPatterns: () => (/* binding */ rayToNumberPatterns), +/* harmony export */ replaceNumberPatterns: () => (/* binding */ replaceNumberPatterns), +/* harmony export */ segmentRangeNumberPattern: () => (/* binding */ segmentRangeNumberPattern), +/* harmony export */ segmentToNumberPatterns: () => (/* binding */ segmentToNumberPatterns), +/* harmony export */ semverify: () => (/* binding */ semverify), +/* harmony export */ splitCommonDiff: () => (/* binding */ splitCommonDiff), +/* harmony export */ splitToDecadeRanges: () => (/* binding */ splitToDecadeRanges), +/* harmony export */ toRegex: () => (/* binding */ toRegex), +/* harmony export */ toString: () => (/* binding */ toString), +/* harmony export */ versionsListToRanges: () => (/* binding */ versionsListToRanges), +/* harmony export */ visitors: () => (/* binding */ visitors) +/* harmony export */ }); +/* harmony import */ var browserslist__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! browserslist */ "./node_modules/browserslist/index.js"); +/* harmony import */ var regexp_tree__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! regexp-tree */ "./node_modules/regexp-tree/index.js"); +/* harmony import */ var ua_regexes_lite__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ua-regexes-lite */ "./node_modules/ua-regexes-lite/index.js"); + + + + +/** + * Array of numbers to array of first and last elements. + * @param numbers - Array of numbers. + * @returns Number or two numbers. + */ function numbersToRanges(numbers) { + if (typeof numbers === "number") { + return numbers; + } + if (numbers.length === 1) { + return numbers[0]; + } + return [ + numbers[0], + numbers[numbers.length - 1] + ]; +} + +var SemverPart; +(function(SemverPart) { + SemverPart[SemverPart["Major"] = 0] = "Major"; + SemverPart[SemverPart["Minor"] = 1] = "Minor"; + SemverPart[SemverPart["Patch"] = 2] = "Patch"; +})(SemverPart || (SemverPart = {})); + +/** + * Get semver from string or array. + * @param version - Target to convert. + * @returns Array with semver parts. + */ function semverify(version) { + const versionParts = Array.isArray(version) ? version : version.toString().split("."); + if (versionParts[0] === "all") { + return [ + Infinity, + 0, + 0 + ]; + } + let versionPart = null; + let semverPart = null; + const semver = [ + 0, + 0, + 0 + ]; + for(let i = 0; i < 3; i++){ + versionPart = versionParts[i]; + if (typeof versionPart === "undefined") { + continue; + } + semverPart = typeof versionPart === "number" ? versionPart : parseInt(versionPart, 10); + if (isNaN(semverPart)) { + return null; + } + semver[i] = semverPart; + } + return semver; +} +/** + * Get semver range. + * @param from + * @param to + * @returns Semver range. + */ function rangeSemver(from, to) { + let partIndex = 0; + const range = []; + for(let i = 2; i >= 0; i--){ + if (from[i] !== to[i]) { + partIndex = i; + break; + } + } + for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){ + range.push(from.map((v, j)=>j === partIndex ? i1 : v)); + } + return range; +} +/** + * Compare semvers. + * @param a - Semver to compare. + * @param b - Semver to compare with. + * @param options - Compare options. + * @returns Equals or not. + */ function compareSemvers(a, b, options) { + const [major, minor, patch] = a; + const [majorBase, minorBase, patchBase] = b; + const { ignoreMinor , ignorePatch , allowHigherVersions } = options; + if (majorBase === Infinity) { + return true; + } + const compareMinor = !ignoreMinor; + const comparePatch = compareMinor && !ignorePatch; + if (allowHigherVersions) { + if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) { + return false; + } + return major >= majorBase; + } + if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) { + return false; + } + return major === majorBase; +} +/** + * Get required semver parts count. + * @param version - Semver parts or ranges. + * @param options - Semver compare options. + * @returns Required semver parts count. + */ function getRequiredSemverPartsCount(version, options) { + const { ignoreMinor , ignorePatch , allowZeroSubversions } = options; + let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3; + if (allowZeroSubversions) { + for(let i = shouldRepeatCount - 1; i > 0; i--){ + if (version[i] !== 0 || shouldRepeatCount === 1) { + break; + } + shouldRepeatCount--; + } + } + return shouldRepeatCount; +} + +/** + * Browsers strings to info objects. + * @param browsersList - Browsers strings with family and version. + * @returns Browser info objects. + */ function parseBrowsersList(browsersList) { + return browsersList.reduce((browsers, browser)=>{ + const [family, versionString, versionStringTo] = browser.split(/ |-/); + const version = semverify(versionString); + const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [ + version + ]; + return versions.reduce((browsers, semver)=>{ + if (semver) { + browsers.push({ + family, + version: semver + }); + } + return browsers; + }, browsers); + }, []); +} +/** + * Request browsers list. + * @param options - Options to get browsers list. + * @returns Browser info objects. + */ function getBrowsersList(options = {}) { + const { browsers , ...browserslistOptions } = options; + const browsersList = browserslist__WEBPACK_IMPORTED_MODULE_0__(browsers, browserslistOptions); + const parsedBrowsers = parseBrowsersList(browsersList); + return parsedBrowsers; +} + +/** + * Compare two arrays. + * @param a - Array to compare. + * @param b - Array to compare. + * @param from - Index to start compare from. + * @returns Equals or not. + */ function compareArrays(a, b, from = 0) { + const len = a.length; + for(let i = from; i < len; i++){ + if (a[i] !== b[i]) { + return false; + } + } + return true; +} +/** + * Clone simple object. + * @param value + * @returns Object clone. + */ function clone(value) { + if (value === null || typeof value !== "object") { + return value; + } + /* eslint-disable */ const copy = Array.isArray(value) ? [] : {}; + let i; + for(i in value){ + copy[i] = clone(value[i]); + } + /* eslint-enable */ return copy; +} +/** + * Concat arrays. + * @param items + * @returns Concatinated arrays. + */ function concat(items) { + return [].concat(...items); +} + +/** + * Merge browser info object to map with versions. + * @param browsers - Browser info object to merge. + * @returns Merged browsers map. + */ function mergeBrowserVersions(browsers) { + const merge = new Map(); + browsers.forEach(({ family , version })=>{ + const versions = merge.get(family); + if (versions) { + const strVersion = version.join("."); + if (versions.every((_)=>_.join(".") !== strVersion)) { + versions.push(version); + } + return; + } + merge.set(family, [ + version + ]); + }); + merge.forEach((versions)=>{ + versions.sort((a, b)=>{ + for(const i in a){ + if (a[i] !== b[i]) { + return a[i] - b[i]; + } + } + return 0; + }); + }); + return merge; +} +/** + * Versions to ranged versions. + * @param versions - Semver versions list. + * @returns Ranged versions list. + */ function versionsListToRanges(versions) { + if (versions.length < 2) { + return versions; + } + const max = versions.length + 1; + const ranges = []; + let prev = null; + let current = versions[0]; + let major = [ + current[SemverPart.Major] + ]; + let minor = [ + current[SemverPart.Minor] + ]; + let patch = [ + current[SemverPart.Patch] + ]; + let part = null; + for(let i = 1; i < max; i++){ + prev = versions[i - 1]; + current = versions[i] || []; + for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){ + if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) { + part = p; + if (p === SemverPart.Major) { + major.push(current[SemverPart.Major]); + } else { + major = current[SemverPart.Major]; + } + if (p === SemverPart.Minor) { + minor.push(current[SemverPart.Minor]); + } else { + minor = current[SemverPart.Minor]; + } + if (p === SemverPart.Patch) { + patch.push(current[SemverPart.Patch]); + } else { + patch = current[SemverPart.Patch]; + } + break; + } + if (part === p || prev[p] !== current[p]) { + ranges.push([ + numbersToRanges(major), + numbersToRanges(minor), + numbersToRanges(patch) + ]); + major = [ + current[SemverPart.Major] + ]; + minor = [ + current[SemverPart.Minor] + ]; + patch = [ + current[SemverPart.Patch] + ]; + part = null; + break; + } + } + } + return ranges; +} + +function AstRegExpNode(body) { + return { + type: "RegExp", + body, + flags: "" + }; +} +function AlternativeNode(...expressions) { + const exps = concat(expressions).filter(Boolean); + if (exps.length === 1) { + return exps[0]; + } + return { + type: "Alternative", + expressions: exps + }; +} +function SimpleCharNode(value) { + return { + type: "Char", + kind: "simple", + value: String(value), + codePoint: NaN + }; +} +function MetaCharNode(value) { + return { + type: "Char", + kind: "meta", + value, + codePoint: NaN + }; +} +function ClassRangeNode(from, to) { + return { + type: "ClassRange", + from, + to + }; +} +function CharacterClassNode(...expressions) { + return { + type: "CharacterClass", + expressions: concat(expressions).filter(Boolean) + }; +} +function SimpleQuantifierNode(kind) { + return { + type: "Quantifier", + kind, + greedy: true + }; +} +function RangeQuantifierNode(from, to) { + return { + type: "Quantifier", + kind: "Range", + from, + to, + greedy: true + }; +} +function CapturingGroupNode(expression) { + return { + type: "Group", + capturing: true, + expression, + number: null + }; +} +function RepetitionNode(expression, quantifier) { + return { + type: "Repetition", + expression, + quantifier + }; +} +function DisjunctionNode(...expressions) { + const exprs = concat(expressions).filter(Boolean); + if (exprs.length === 1) { + return exprs[0]; + } + const disjunction = { + type: "Disjunction", + left: null, + right: exprs.pop() + }; + exprs.reduceRight((disjunction, expr, i)=>{ + if (i === 0) { + disjunction.left = expr; + return disjunction; + } + disjunction.left = { + type: "Disjunction", + left: null, + right: expr + }; + return disjunction.left; + }, disjunction); + return disjunction; +} +function DisjunctionCapturingGroupNode(...expressions) { + const expr = DisjunctionNode(...expressions); + if (expr.type === "Disjunction") { + return CapturingGroupNode(expr); + } + return expr; +} +function DigitPatternNode() { + return MetaCharNode("\\d"); +} +function NumberPatternNode(quantifier = SimpleQuantifierNode("+")) { + const numberPattern = RepetitionNode(DigitPatternNode(), quantifier); + return numberPattern; +} +function NumberCharsNode(value) { + return AlternativeNode(Array.from(String(value), SimpleCharNode)); +} + +/** + * Check node whether is number pattern. + * @param node - AST node to check. + * @returns Is number pattern or not. + */ function isNumberPatternNode(node) { + if (node.type === "Group" && node.expression.type === "Repetition") { + const { expression , quantifier } = node.expression; + return expression.type === "Char" && expression.value === "\\d" && quantifier.kind === "+" && quantifier.greedy; + } + return false; +} +/** + * Check node whether is char node. + * @param node - AST node to check. + * @param value - Value to compare. + * @returns Is char node or not. + */ function isCharNode(node, value) { + if (node && node.type === "Char") { + return typeof value === "undefined" || value instanceof RegExp && value.test(node.value) || String(value) === node.value; + } + return false; +} +/** + * Check node whether is digit range. + * @param node - AST node to check. + * @returns Is digit range or not. + */ function isDigitRangeNode(node) { + if (node.type === "CharacterClass" && node.expressions.length === 1) { + const [expression] = node.expressions; + return expression.type === "ClassRange" && isCharNode(expression.from, /\d/) && isCharNode(expression.to, /\d/); + } + return false; +} +/** + * Check node whether is expression. + * @param node - AST node to check. + * @returns Is expression node or not. + */ function isExpressionNode(node) { + return node.type !== "RegExp" && node.type !== "ClassRange" && node.type !== "Quantifier"; +} +function parseRegex(regex) { + return typeof regex === "string" ? regexp_tree__WEBPACK_IMPORTED_MODULE_1__.parse(regex.replace(/^([^/])/, "/$1").replace(/([^/])$/, "$1/")) : regex instanceof RegExp ? regexp_tree__WEBPACK_IMPORTED_MODULE_1__.parse(regex) : regex; +} +/** + * Get regex from string or AST. + * @param src - String or AST. + * @returns RegExp. + */ function toRegex(src) { + return typeof src === "string" ? new RegExp(src) : new RegExp(regexp_tree__WEBPACK_IMPORTED_MODULE_1__.generate(src.body), src.flags); +} +/** + * Get string from regex or AST. + * @param src - RegExp or AST. + * @returns String. + */ function toString(src) { + return typeof src === "string" ? src : src instanceof RegExp ? src.toString() : regexp_tree__WEBPACK_IMPORTED_MODULE_1__.generate(src); +} + +const classes = [ + "RegExp", + "Disjunction", + "Alternative", + "Assertion", + "Char", + "CharacterClass", + "ClassRange", + "Backreference", + "Group", + "Repetition", + "Quantifier" +]; +/** + * Create traversal visitors. + * @param visitors + * @returns Traversal handlers. + */ function visitors(visitors) { + const { every } = visitors; + if (!every) { + return visitors; + } + if (typeof every === "function") { + return { + // eslint-disable-next-line @typescript-eslint/naming-convention + "*": every, + ...visitors + }; + } + return classes.reduce((newVisitors, className)=>{ + const visitor = visitors[className]; + const visitorPre = visitor ? "pre" in visitor ? visitor.pre : visitor : null; + const visitorPost = visitor ? "post" in visitor ? visitor.post : null : null; + newVisitors[className] = { + pre (nodePath) { + if (every.pre(nodePath) !== false && visitorPre) { + return visitorPre(nodePath); + } + return true; + }, + post (nodePath) { + if (every.post(nodePath) !== false && visitorPost) { + return visitorPost(nodePath); + } + return true; + } + }; + return newVisitors; + }, {}); +} + +function optimizeRegex(regex) { + // Optimization requires filled codePoints + const regexAst = regexp_tree__WEBPACK_IMPORTED_MODULE_1__.optimize(parseRegex(toString(regex))).getAST(); + regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, { + Group (nodePath) { + const { parent , node } = nodePath; + const { expression } = node; + node.capturing = true; + if (parent.type === "RegExp" || expression.type !== "Disjunction" && parent.type !== "Repetition" || expression.type === "Disjunction" && parent.type === "Disjunction") { + nodePath.replace(nodePath.node.expression); + } + } + }); + return regexAst; +} +/** + * Merge digits patterns if possible. + * @param a + * @param b + * @returns Merged node. + */ function mergeDigits(a, b) { + if (isCharNode(a) && isCharNode(b) && a.value === b.value) { + return b; + } + if (isCharNode(a, /\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) { + return { + ...b, + expressions: [ + { + ...b.expressions[0], + from: a + } + ] + }; + } + if (isDigitRangeNode(a) && isCharNode(b, /\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) { + return { + ...a, + expressions: [ + { + ...a.expressions[0], + to: b + } + ] + }; + } + return null; +} +/** + * Optimize segment number patterns. + * @param patterns + * @returns Optimized segment number patterns. + */ function optimizeSegmentNumberPatterns(patterns) { + return patterns.reduce((patterns, node)=>{ + const prevNode = patterns[patterns.length - 1]; + if (prevNode && node.type === "Alternative" && prevNode.type === "Alternative" && node.expressions.length === prevNode.expressions.length) { + const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{ + if (!exps) { + return exps; + } + const merged = mergeDigits(exp, node.expressions[i]); + if (merged) { + exps.unshift(merged); + } else { + return null; + } + return exps; + }, []); + if (merged) { + node.expressions = merged; + patterns.pop(); + } + } + patterns.push(node); + return patterns; + }, []); +} + +/** + * Transform number to digits array. + * @param num - Target number. + * @returns Digits array. + */ function numberToDigits(num) { + return Array.from(num.toString(), Number); +} + +/** + * Get digit pattern. + * @param digit - Ray start. + * @param includes - Include start digit or use next. + * @returns Digit pattern. + */ function rayRangeDigitPattern(digit, includes) { + const rangeStart = digit + Number(!includes); + if (rangeStart === 0) { + return DigitPatternNode(); + } + if (rangeStart === 9) { + return SimpleCharNode("9"); + } + if (rangeStart > 9) { + return null; + } + return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode("9"))); +} +/** + * Create numeric ray pattern. + * @param from - Start from this number. + * @returns Numeric ray pattern parts. + */ function rayToNumberPatterns(from) { + if (from === 0) { + return [ + NumberPatternNode() + ]; + } + const digits = numberToDigits(from); + const digitsCount = digits.length; + const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1)); + const zeros = digitsCount - 1; + if (from / Math.pow(10, zeros) === digits[0]) { + return [ + AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({ + length: zeros + }, DigitPatternNode)), + other + ]; + } + const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{ + const ri = digitsCount - i - 1; + const d = i === 0; + let prev = SimpleCharNode(""); + const nodes = digits.reduce((nodes, digit, j)=>{ + if (j < ri) { + nodes.push(SimpleCharNode(digit)); + } else if (prev) { + if (j > ri) { + nodes.push(DigitPatternNode()); + } else { + prev = rayRangeDigitPattern(digit, d); + if (prev) { + nodes.push(prev); + } else { + return []; + } + } + } + return nodes; + }, []); + if (nodes.length) { + topNodes.push(nodes); + } + return topNodes; + }, []); + const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_)); + numberPatterns.push(other); + return numberPatterns; +} + +/** + * Get digit pattern. + * @param from - Segment start. + * @param to - Segment end. + * @param zeros - Zeros to add as prefix. + * @returns Digit pattern. + */ function segmentRangeNumberPattern(from, to, zeros) { + if (to < from) { + return null; + } + const fromNode = SimpleCharNode(from); + const toNode = SimpleCharNode(to); + const zerosPrefix = typeof zeros === "number" && zeros > 0 ? Array.from({ + length: zeros + }, ()=>SimpleCharNode(0)) : []; + const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node; + if (from === to) { + return addPrefix(fromNode); + } + if (from === 0 && to === 9) { + return addPrefix(DigitPatternNode()); + } + if (to - from === 1) { + return addPrefix(CharacterClassNode(fromNode, toNode)); + } + return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode))); +} +/** + * Split segment range to decade ranges. + * @param from - Segment start. + * @param to - Segment end. + * @returns Ranges. + */ function splitToDecadeRanges(from, to) { + const ranges = []; + let num = from; + let decade = 1; + do { + decade *= 10; + if (num < decade) { + ranges.push([ + num, + Math.min(decade - 1, to) + ]); + num = decade; + } + }while (decade <= to); + return ranges; +} +/** + * Get common and diffs of two numbers (arrays of digits). + * @param a - Digits. + * @param b - Other digits. + * @returns Common part and diffs. + */ function splitCommonDiff(a, b) { + const len = a.length; + if (len !== b.length || a[0] !== b[0]) { + return null; + } + let common = a[0].toString(); + let currA = 0; + let currB = 0; + let diffA = ""; + let diffB = ""; + for(let i = 1; i < len; i++){ + currA = a[i]; + currB = b[i]; + if (currA === currB) { + common += currA; + } else { + diffA += currA; + diffB += currB; + } + } + return [ + common, + parseInt(diffA, 10), + parseInt(diffB, 10) + ]; +} +/** + * Get segment patterns. + * @param from - Segment start. + * @param to - Segment end. + * @param digitsInNumber - How many digits should be en number. Will be filled by zeros. + * @returns Segment patterns. + */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) { + const fromDigits = numberToDigits(from); + const digitsCount = fromDigits.length; + if (from < 10 && to < 10 || from === to) { + const zeros = digitsInNumber - digitsCount; + return [ + segmentRangeNumberPattern(from, to, zeros) + ]; + } + const toDigits = numberToDigits(to); + if (digitsCount !== toDigits.length) { + const decadeRanges = splitToDecadeRanges(from, to); + const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber))); + return parts; + } + const commonStart = splitCommonDiff(fromDigits, toDigits); + if (Array.isArray(commonStart)) { + const [common, from1, to1] = commonStart; + const digitsInNumber1 = digitsCount - common.length; + const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1); + return [ + AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts)) + ]; + } + const range = Array.from({ + length: digitsCount - 1 + }); + const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1); + const parts1 = [ + ...range.map((_, i)=>{ + const ri = digitsCount - i - 1; + const d = Number(i > 0); + return AlternativeNode(fromDigits.map((digit, j)=>{ + if (j < ri) { + return SimpleCharNode(digit); + } + if (j > ri) { + return segmentRangeNumberPattern(0, 9); + } + return segmentRangeNumberPattern(digit + d, 9); + })); + }), + // but output more readable + ...middleSegment ? [ + AlternativeNode(middleSegment, Array.from({ + length: digitsCount - 1 + }, ()=>DigitPatternNode())) + ] : [], + ...range.map((_, i)=>{ + const ri = digitsCount - i - 1; + const d = Number(i > 0); + return AlternativeNode(toDigits.map((digit, j)=>{ + if (j < ri) { + return SimpleCharNode(digit); + } + if (j > ri) { + return segmentRangeNumberPattern(0, 9); + } + return segmentRangeNumberPattern(0, digit - d); + })); + }) + ]; + return optimizeSegmentNumberPatterns(parts1); +} + +/** + * Get regex for given numeric range. + * @param from - Range start. + * @param to - Range end. + * @returns Range pattern. + */ function rangeToRegex(from, to = Infinity) { + if (from === Infinity) { + return NumberPatternNode(); + } + const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to); + const regex = DisjunctionCapturingGroupNode(numberPatterns); + return regex; +} + +/** + * Find matched versions. + * @param minVersion - Semver version. + * @param maxVersion - Semver version. + * @param bases - Base semver versions. + * @param options - Semver compare options. + * @returns Matched versions. + */ function findMatchedVersions(minVersion, maxVersion, bases, options) { + const compareOptions = { + ...options, + allowHigherVersions: true + }; + const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions); + const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions); + const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true; + return bases.filter(comparator); +} + +/** + * Get useragent regexes for given browsers. + * @param browsers - Browsers. + * @param options - Semver compare options. + * @param targetRegexes - Override default regexes. + * @returns User agent regexes. + */ function getRegexesForBrowsers(browsers, options, targetRegexes = ua_regexes_lite__WEBPACK_IMPORTED_MODULE_2__.regexes) { + const result = []; + let prevFamily = ""; + let prevRegexIsGlobal = false; + targetRegexes.forEach((regex)=>{ + const requestVersions = browsers.get(regex.family); + if (!requestVersions) { + return; + } + let { version , minVersion , maxVersion } = regex; + if (version) { + minVersion = version; + maxVersion = version; + } + let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options); + if (matchedVersions.length) { + // regex contains global patch + if (prevFamily === regex.family && prevRegexIsGlobal) { + version = undefined; + minVersion = undefined; + maxVersion = undefined; + matchedVersions = requestVersions; + result.pop(); + } + result.push({ + ...regex, + version, + minVersion, + maxVersion, + requestVersions, + matchedVersions + }); + } + prevRegexIsGlobal = !version && !minVersion && !maxVersion; + prevFamily = regex.family; + }); + return result; +} + +/** + * Compile regexes. + * @param regexes - Objects with info about compiled regexes. + * @returns Objects with info about compiled regexes. + */ function compileRegexes(regexes) { + return regexes.map(({ regexAst , ...regex })=>{ + const optimizedRegexAst = optimizeRegex(regexAst); + return { + ...regex, + regexAst: optimizedRegexAst, + regex: toRegex(optimizedRegexAst) + }; + }); +} +/** + * Compile regex. + * @param regexes - Objects with info about compiled regexes. + * @returns Compiled common regex. + */ function compileRegex(regexes) { + const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body)); + const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes))); + return toRegex(regexAst); +} + +/** + * Get number patterns count from the regex. + * @param regex - Target regex. + * @returns Number patterns count. + */ function getNumberPatternsCount(regex) { + const regexAst = parseRegex(regex); + let count = 0; + regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, { + Group (nodePath) { + if (isNumberPatternNode(nodePath.node)) { + count++; + } + } + }); + return count; +} +function replaceNumberPatterns(regex, numbers, numberPatternsCount) { + let regexAst = parseRegex(regex); + const numbersToReplace = typeof numberPatternsCount === "number" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice(); + regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, visitors({ + every () { + return Boolean(numbersToReplace.length); + }, + Group (nodePath) { + if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) { + if (regexAst === nodePath.node) { + regexAst = numbersToReplace.shift(); + } else { + nodePath.replace(numbersToReplace.shift()); + } + return false; + } + return true; + } + })); + return regexAst; +} +/** + * Get from regex part with number patterns. + * @param regex - Target regex. + * @param numberPatternsCount - Number patterns to extract. + * @returns Regex part with number patterns. + */ function getNumberPatternsPart(regex, numberPatternsCount) { + const regexAst = parseRegex(regex); + const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity); + const expressions = []; + let numbersCounter = 0; + let containsNumberPattern = false; + regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, visitors({ + every: { + pre ({ node , parent }) { + if (node === regexAst) { + return true; + } + if (!isExpressionNode(node)) { + return false; + } + if (parent === regexAst) { + containsNumberPattern = false; + } + return numbersCounter < maxNumbersCount; + }, + post ({ node , parent }) { + if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) { + expressions.push(node); + } + } + }, + Group (nodePath) { + if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) { + containsNumberPattern = true; + numbersCounter++; + return false; + } + return true; + } + })); + if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) { + return getNumberPatternsPart(expressions[0], maxNumbersCount); + } + return expressions; +} +/** + * Ranged semver to regex patterns. + * @param rangedVersion - Ranged semver. + * @param options - Semver compare options. + * @returns Array of regex pattern. + */ function rangedSemverToRegex(rangedVersion, options) { + const { ignoreMinor , ignorePatch , allowHigherVersions } = options; + const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3; + if (allowHigherVersions) { + const numberPatterns = []; + let prevWasZero = true; + let d = 0; + let start = 0; + const createMapper = (i)=>(range, j)=>{ + if (j >= ignoreIndex) { + return NumberPatternNode(); + } + start = Array.isArray(range) ? range[0] : range; + if (j < i) { + return NumberCharsNode(start); + } + if (j > i) { + return NumberPatternNode(); + } + return rangeToRegex(start + d); + }; + for(let i = ignoreIndex - 1; i >= 0; i--){ + if (prevWasZero && !rangedVersion[i]) { + continue; + } + prevWasZero = false; + numberPatterns.push(rangedVersion.map(createMapper(i))); + d = 1; + } + return numberPatterns; + } + const numberPatterns1 = rangedVersion.map((range, i)=>{ + if (i >= ignoreIndex) { + return NumberPatternNode(); + } + if (Array.isArray(range)) { + return rangeToRegex(range[0], range[1]); + } + return NumberCharsNode(range); + }); + return [ + numberPatterns1 + ]; +} + +function applyVersionsToRegex(regex, versions, options) { + const { allowHigherVersions } = options; + const regexAst = parseRegex(regex); + const finalVersions = allowHigherVersions && versions.length ? [ + versions[0] + ] : versions; + const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1); + const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount); + const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount)))); + regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, visitors({ + every (nodePath) { + if (!numberPatternsPart.length) { + return false; + } + if (nodePath.node === numberPatternsPart[0]) { + if (numberPatternsPart.length === 1) { + nodePath.replace(versionsPart); + } else { + nodePath.remove(); + } + numberPatternsPart.shift(); + } + return true; + } + })); + return regexAst; +} +/** + * Apply browser versions to info objects. + * @param browserRegexes - Objects with requested browser version and regex. + * @param options - Semver compare options. + * @returns Objects with requested browser version and regex special for this version. + */ function applyVersionsToRegexes(browserRegexes, options) { + return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{ + let regexAst = parseRegex(sourceRegex); + if (!version) { + regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), { + ...options, + allowHigherVersions: !maxVersion && options.allowHigherVersions + }); + } + return { + regex: null, + sourceRegex, + regexAst, + version, + maxVersion, + matchedVersions, + ...other + }; + }); +} + +const defaultOptions = { + ignoreMinor: false, + ignorePatch: true, + allowZeroSubversions: false, + allowHigherVersions: false +}; +/** + * Get source regexes objects from browserslist query. + * @param options - Browserslist and semver compare options. + * @returns Source regexes objects. + */ function getPreUserAgentRegexes(options = {}) { + const finalOptions = { + ...defaultOptions, + ...options + }; + const browsersList = getBrowsersList(finalOptions); + const mergedBrowsers = mergeBrowserVersions(browsersList); + const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions); + const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions); + return versionedRegexes; +} +/** + * Compile browserslist query to regexes. + * @param options - Browserslist and semver compare options. + * @returns Objects with info about compiled regexes. + */ function getUserAgentRegexes(options = {}) { + return compileRegexes(getPreUserAgentRegexes(options)); +} +/** + * Compile browserslist query to regex. + * @param options - Browserslist and semver compare options. + * @returns Compiled regex. + */ function getUserAgentRegex(options = {}) { + return compileRegex(getPreUserAgentRegexes(options)); +} + + +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ "./node_modules/ua-regexes-lite/index.js": +/*!***********************************************!*\ + !*** ./node_modules/ua-regexes-lite/index.js ***! + \***********************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ regexes: () => (/* binding */ regexes) +/* harmony export */ }); +/** + * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex + */ + +/** @type {UserAgentRegex[]} */ +const regexes = [ + { + regex: /IE (\d+)\.(\d+)/, + family: 'ie', + maxVersion: [ + 7, + Infinity, + Infinity + ] + }, + /** + * IE can be in Compatability Mode (IE 7.0) + * so we need to check Trident version + */ + { + regex: /Trident\/4\.0/, + family: 'ie', + version: [ + 8, + 0, + 0 + ] + }, + { + regex: /Trident\/5\.0/, + family: 'ie', + version: [ + 9, + 0, + 0 + ] + }, + { + regex: /Trident\/6\.0/, + family: 'ie', + version: [ + 10, + 0, + 0 + ] + }, + { + regex: /Trident\/[78]\.0/, + family: 'ie', + version: [ + 11, + 0, + 0 + ] + }, + { + regex: /Edge?\/(\d+)\.(\d+)(\.(\d+)|)/, + family: 'edge' + }, + { + regex: /Firefox\/(\d+)\.(\d+)(\.(\d+)|)/, + family: 'firefox' + }, + { + regex: /Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/, + family: 'chrome' + }, + /** + * Ignore Edge with EdgeHTML engine. + */ + { + regex: /Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/, + family: 'chrome', + maxVersion: [ + 70, + Infinity, + Infinity + ] + }, + /** + * Safari on iPad have desktop-like useragent + * Some versions contains letter subversions + * GNOME Web (X11) is based on WebKit and should be detected as Safari + */ + { + regex: /(Maci|X11).+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//, + family: 'safari' + }, + /** + * Presto Opera + */ + { + regex: /Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/, + family: 'opera', + maxVersion: [ + 12, + 15, + 0 + ] + }, + /** + * Chromium based Opera + */ + { + regex: /Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/, + family: 'opera', + minVersion: [ + 15, + 0, + 0 + ] + }, + { + regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/, + family: 'ios_saf' + }, + /** + * Ignore IE Mobile 11 + */ + { + regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/, + family: 'ios_saf', + version: [ + 7, + 0, + 3 + ] + }, + { + regex: /Opera Mini/, + family: 'op_mini' + }, + { + regex: /Android Donut/, + family: 'android', + version: [ + 1, + 2, + 0 + ] + }, + { + regex: /Android Eclair/, + family: 'android', + version: [ + 2, + 1, + 0 + ] + }, + { + regex: /Android Froyo/, + family: 'android', + version: [ + 2, + 2, + 0 + ] + }, + { + regex: /Android Gingerbread/, + family: 'android', + version: [ + 2, + 3, + 0 + ] + }, + { + regex: /Android Honeycomb/, + family: 'android', + version: [ + 3, + 0, + 0 + ] + }, + { + regex: /Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/, + family: 'android' + }, + /** + * Ignore IE Mobile 11 + */ + { + regex: /Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/, + family: 'android', + version: [ + 4, + 0, + 0 + ] + }, + { + regex: /PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/, + family: 'bb' + }, + { + regex: /(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/, + family: 'bb' + }, + /** + * Presto Opera Mobile + */ + { + regex: /Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/, + family: 'op_mob', + maxVersion: [ + 12, + 16, + 0 + ] + }, + /** + * Chromium based Opera Mobile + */ + { + regex: /Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/, + family: 'op_mob', + minVersion: [ + 14, + 0, + 0 + ] + }, + { + regex: /Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/, + family: 'and_ff' + }, + { + regex: /Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/, + family: 'and_chr' + }, + { + regex: /IEMobile[ /](\d+)\.(\d+)/, + family: 'ie_mob' + }, + { + regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/, + family: 'and_uc' + }, + { + regex: /SamsungBrowser\/(\d+)\.(\d+)/, + family: 'samsung' + }, + { + regex: /Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/, + family: 'and_qq' + }, + { + regex: /baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/, + family: 'baidu' + }, + { + regex: /K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/, + family: 'kaios' + } +] + + +/***/ }), + +/***/ "./node_modules/node-releases/data/processed/envs.json": +/*!*************************************************************!*\ + !*** ./node_modules/node-releases/data/processed/envs.json ***! + \*************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.17.0","date":"2023-07-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.18.0","date":"2023-09-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.19.0","date":"2023-11-29","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.5.0","date":"2023-07-19","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.6.0","date":"2023-08-23","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.7.0","date":"2023-09-18","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.8.0","date":"2023-09-28","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.9.0","date":"2023-10-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.10.0","date":"2023-11-22","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"21.0.0","date":"2023-10-17","lts":false,"security":false,"v8":"11.8.172.13"},{"name":"nodejs","version":"21.1.0","date":"2023-10-24","lts":false,"security":false,"v8":"11.8.172.15"},{"name":"nodejs","version":"21.2.0","date":"2023-11-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.3.0","date":"2023-11-30","lts":false,"security":false,"v8":"11.8.172.17"}]'); + +/***/ }), + +/***/ "./node_modules/node-releases/data/release-schedule/release-schedule.json": +/*!********************************************************************************!*\ + !*** ./node_modules/node-releases/data/release-schedule/release-schedule.json ***! + \********************************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = /*#__PURE__*/JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-23","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":""},"v23":{"start":"2024-10-15","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-04-22","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-04-30","codename":""}}'); + +/***/ }) + +}]); +//# sourceMappingURL=core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map?v=7a842c81009148a2953a \ No newline at end of file diff --git a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map b/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map new file mode 100644 index 0000000000000..bbc1d5f7bfe09 --- /dev/null +++ b/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map @@ -0,0 +1 @@ +{"version":3,"file":"core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js?v=7a842c81009148a2953a","mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7EA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9CA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC53CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjoCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/ignored|/home/admin/git/server/node_modules/browserslist|path","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js"],"sourcesContent":["module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getLoggerBuilder } from '@nextcloud/logger';\nconst getLogger = user => {\n if (user === null) {\n return getLoggerBuilder().setApp('core').build();\n }\n return getLoggerBuilder().setApp('core').setUid(user.uid).build();\n};\nexport default getLogger(getCurrentUser());","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage';\nexport default getBuilder('core').clearOnLogout().persist().build();","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp';\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist';\nimport browserslistConfig from '@nextcloud/browserslist-config';\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({\n allowHigherVersions: true,\n browsers: browserslistConfig\n});\nexport const supportedBrowsers = browserslist(browserslistConfig);","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router';\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js';\nimport browserStorage from '../services/BrowserStorageService.js';\nimport logger from '../logger.js';\nexport const browserStorageKey = 'unsupported-browser-ignore';\nconst redirectPath = generateUrl('/unsupported');\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true';\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function () {\n if (supportedBrowsersRegExp.test(navigator.userAgent)) {\n logger.debug('this browser is officially supported ! 🚀');\n return;\n }\n\n // If incompatible BUT ignored, let's keep going\n if (isBrowserOverridden) {\n logger.debug('this browser is NOT supported but has been manually overridden ! ⚠️');\n return;\n }\n\n // If incompatible, NOT overridden AND NOT already on the warning page,\n // redirect to the unsupported warning page\n if (window.location.pathname.indexOf(redirectPath) === -1) {\n const redirectUrl = window.location.href.replace(window.location.origin, '');\n const base64Param = Buffer.from(redirectUrl).toString('base64');\n history.pushState(null, null, \"\".concat(redirectPath, \"?redirect_url=\").concat(base64Param));\n window.location.reload();\n }\n};","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TC\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.007984,\"1\":0.015968,\"2\":0.015968,\"3\":0.011976,\"4\":0.015968,\"5\":0.015968,\"6\":0.035928,\"7\":0.267464,\"8\":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1680825600,\"1\":1683158400,\"2\":1685664000,\"3\":1689897600,\"4\":1692576000,\"5\":1694649600,\"6\":1697155200,\"7\":1698969600,\"8\":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:\"ms\",K:\"ms\",L:\"ms\",G:\"ms\",M:\"ms\",N:\"ms\",O:\"ms\"}},C:{A:{\"0\":0.003992,\"1\":0.007984,\"2\":0.011976,\"3\":0.467064,\"4\":0.003992,\"5\":0.007984,\"6\":0.087824,\"7\":0.227544,\"8\":0.231536,\"9\":0,UC:0,\"7B\":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,\"8B\":0.003992,kB:0,\"9B\":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,\"1B\":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:\"moz\",C:[\"UC\",\"7B\",\"WC\",\"XC\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\",\"VC\"],E:\"Firefox\",F:{\"0\":1681171200,\"1\":1683590400,\"2\":1686009600,\"3\":1688428800,\"4\":1690848000,\"5\":1693267200,\"6\":1695686400,\"7\":1698105600,\"8\":1700524800,\"9\":1308614400,UC:1161648000,\"7B\":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,\"8B\":1520985600,kB:1525824000,\"9B\":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,\"0B\":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,\"1B\":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{\"0\":0.075848,\"1\":0.15968,\"2\":0.115768,\"3\":0.07984,\"4\":0.263472,\"5\":0.195608,\"6\":0.467064,\"7\":2.4471,\"8\":15.8562,\"9\":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,\"8B\":0,kB:0.015968,\"9B\":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,\"0B\":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,\"1B\":0.015968,BC:0,CC:0,DC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\"],E:\"Chrome\",F:{\"0\":1680566400,\"1\":1682985600,\"2\":1685404800,\"3\":1689724800,\"4\":1692057600,\"5\":1694476800,\"6\":1696896000,\"7\":1698710400,\"8\":1701993600,\"9\":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,\"8B\":1496707200,kB:1500940800,\"9B\":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,\"0B\":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,\"1B\":1708387200,BC:null,CC:null,DC:null}},E:{A:{\"9\":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,\"2B\":0.015968,\"3B\":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,\"4B\":0.043912,fC:0.2994,\"5B\":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,\"6B\":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"YC\",\"EC\",\"I\",\"9\",\"ZC\",\"J\",\"aC\",\"D\",\"bC\",\"E\",\"F\",\"cC\",\"A\",\"FC\",\"B\",\"2B\",\"C\",\"3B\",\"K\",\"GC\",\"L\",\"dC\",\"G\",\"eC\",\"HC\",\"IC\",\"4B\",\"fC\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"gC\",\"6B\",\"OC\",\"PC\",\"QC\",\"hC\",\"iC\",\"\"],E:\"Safari\",F:{\"9\":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,\"2B\":1522281600,C:1537142400,\"3B\":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,\"4B\":1652745600,fC:1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,\"6B\":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,\"2B\":0,RC:0,nC:0,\"3B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"jC\",\"kC\",\"lC\",\"mC\",\"B\",\"2B\",\"RC\",\"nC\",\"C\",\"3B\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"\",\"\",\"\"],E:\"Opera\",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,\"2B\":1302566400,RC:1309219200,nC:1323129600,C:1323129600,\"3B\":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,\"0B\":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:\"o\",B:\"o\",C:\"o\",jC:\"o\",kC:\"o\",lC:\"o\",mC:\"o\",\"2B\":\"o\",RC:\"o\",nC:\"o\",\"3B\":\"o\"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,\"0C\":0.267828,\"1C\":0.00451396,\"2C\":0.0496536,\"3C\":0.0135419,\"4C\":0.0601861,\"5C\":0.105326,\"6C\":0.160998,\"7C\":0.0692141,HC:0.0797466,IC:0.0932885,\"4B\":0.123382,\"8C\":0.961474,\"5B\":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,\"9C\":2.01925,\"6B\":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"EC\",\"oC\",\"SC\",\"pC\",\"qC\",\"rC\",\"E\",\"sC\",\"tC\",\"uC\",\"vC\",\"wC\",\"xC\",\"yC\",\"zC\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"HC\",\"IC\",\"4B\",\"8C\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"9C\",\"6B\",\"OC\",\"PC\",\"QC\",\"\",\"\",\"\"],E:\"Safari on iOS\",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,\"0C\":1553472000,\"1C\":1568851200,\"2C\":1572220800,\"3C\":1580169600,\"4C\":1585008000,\"5C\":1600214400,\"6C\":1619395200,\"7C\":1632096000,HC:1639353600,IC:1647216000,\"4B\":1652659200,\"8C\":1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,\"9C\":1690156800,\"6B\":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"AD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{AD:1426464000}},I:{A:{\"7B\":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"BD\",\"CD\",\"DD\",\"7B\",\"I\",\"ED\",\"SC\",\"FD\",\"GD\",\"H\",\"\",\"\",\"\"],E:\"Android Browser\",F:{BD:1256515200,CD:1274313600,DD:1291593600,\"7B\":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,\"2B\":0,RC:0,\"3B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"2B\",\"RC\",\"C\",\"3B\",\"u\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"2B\":1314835200,RC:1318291200,C:1330300800,\"3B\":1349740800,u:1673827200},D:{u:\"webkit\"}},L:{A:{H:40.5268},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{H:1705968000}},M:{A:{\"1B\":0.30045},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"1B\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{\"1B\":1705968000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"4B\":0.811215},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"4B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"4B\":1687132800},D:{\"4B\":\"webkit\"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,\"5B\":0.0107426,\"6B\":0.0322279,RD:0.0214852,SD:0.0322279},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"FC\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"5B\",\"6B\",\"RD\",\"SD\",\"q\",\"r\",\"s\",\"t\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,\"5B\":1640736000,\"6B\":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GC\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{GC:1663718400}},R:{A:{TD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UD\",\"VD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{UD:1527811200,VD:1631664000}}};\n","module.exports={\"0\":\"112\",\"1\":\"113\",\"2\":\"114\",\"3\":\"115\",\"4\":\"116\",\"5\":\"117\",\"6\":\"118\",\"7\":\"119\",\"8\":\"120\",\"9\":\"5\",A:\"10\",B:\"11\",C:\"12\",D:\"7\",E:\"8\",F:\"9\",G:\"15\",H:\"121\",I:\"4\",J:\"6\",K:\"13\",L:\"14\",M:\"16\",N:\"17\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"20\",r:\"21\",s:\"22\",t:\"23\",u:\"73\",v:\"107\",w:\"108\",x:\"109\",y:\"110\",z:\"111\",AB:\"19\",BB:\"24\",CB:\"25\",DB:\"26\",EB:\"27\",FB:\"28\",GB:\"29\",HB:\"30\",IB:\"31\",JB:\"32\",KB:\"33\",LB:\"34\",MB:\"35\",NB:\"36\",OB:\"37\",PB:\"38\",QB:\"39\",RB:\"40\",SB:\"41\",TB:\"42\",UB:\"43\",VB:\"44\",WB:\"45\",XB:\"46\",YB:\"47\",ZB:\"48\",aB:\"49\",bB:\"50\",cB:\"51\",dB:\"52\",eB:\"53\",fB:\"54\",gB:\"55\",hB:\"56\",iB:\"57\",jB:\"58\",kB:\"60\",lB:\"62\",mB:\"63\",nB:\"64\",oB:\"65\",pB:\"66\",qB:\"67\",rB:\"68\",sB:\"69\",tB:\"70\",uB:\"71\",vB:\"72\",wB:\"74\",xB:\"75\",yB:\"76\",zB:\"77\",\"0B\":\"78\",\"1B\":\"122\",\"2B\":\"11.1\",\"3B\":\"12.1\",\"4B\":\"15.5\",\"5B\":\"16.0\",\"6B\":\"17.0\",\"7B\":\"3\",\"8B\":\"59\",\"9B\":\"61\",AC:\"82\",BC:\"123\",CC:\"124\",DC:\"125\",EC:\"3.2\",FC:\"10.1\",GC:\"13.1\",HC:\"15.2-15.3\",IC:\"15.4\",JC:\"16.1\",KC:\"16.2\",LC:\"16.3\",MC:\"16.4\",NC:\"16.5\",OC:\"17.1\",PC:\"17.2\",QC:\"17.3\",RC:\"11.5\",SC:\"4.2-4.3\",TC:\"5.5\",UC:\"2\",VC:\"126\",WC:\"3.5\",XC:\"3.6\",YC:\"3.1\",ZC:\"5.1\",aC:\"6.1\",bC:\"7.1\",cC:\"9.1\",dC:\"14.1\",eC:\"15.1\",fC:\"15.6\",gC:\"16.6\",hC:\"17.4\",iC:\"TP\",jC:\"9.5-9.6\",kC:\"10.0-10.1\",lC:\"10.5\",mC:\"10.6\",nC:\"11.6\",oC:\"4.0-4.1\",pC:\"5.0-5.1\",qC:\"6.0-6.1\",rC:\"7.0-7.1\",sC:\"8.1-8.4\",tC:\"9.0-9.2\",uC:\"9.3\",vC:\"10.0-10.2\",wC:\"10.3\",xC:\"11.0-11.2\",yC:\"11.3-11.4\",zC:\"12.0-12.1\",\"0C\":\"12.2-12.5\",\"1C\":\"13.0-13.1\",\"2C\":\"13.2\",\"3C\":\"13.3\",\"4C\":\"13.4-13.7\",\"5C\":\"14.0-14.4\",\"6C\":\"14.5-14.8\",\"7C\":\"15.0-15.1\",\"8C\":\"15.6-15.8\",\"9C\":\"16.6-16.7\",AD:\"all\",BD:\"2.1\",CD:\"2.2\",DD:\"2.3\",ED:\"4.1\",FD:\"4.4\",GD:\"4.4.3-4.4.4\",HD:\"5.0-5.4\",ID:\"6.2-6.4\",JD:\"7.2-7.4\",KD:\"8.2\",LD:\"9.2\",MD:\"11.1-11.2\",ND:\"12.0\",OD:\"13.0\",PD:\"14.0\",QD:\"15.0\",RD:\"18.0\",SD:\"19.0\",TD:\"13.18\",UD:\"2.5\",VD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"29.0\": \"122\",\n\t\"30.0\": \"123\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?a)\\k/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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 State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 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], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 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] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","/* (ignored) */","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js b/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js new file mode 100644 index 0000000000000..69122969fbf7a --- /dev/null +++ b/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js @@ -0,0 +1,1032 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b"],{ + +/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e": +/*!***********************************************************************************************************************************************************************************************************************************!*\ + !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e ***! + \***********************************************************************************************************************************************************************************************************************************/ +/***/ ((module) => { + +module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"; + +/***/ }), + +/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e": +/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e ***! + \******************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module) => { + +module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"; + +/***/ }), + +/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e": +/*!******************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e ***! + \******************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module) => { + +module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"; + +/***/ }), + +/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e": +/*!***************************************************************************************************************************************************************************************************************************!*\ + !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e ***! + \***************************************************************************************************************************************************************************************************************************/ +/***/ ((module) => { + +module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"; + +/***/ }), + +/***/ "./node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs": +/*!*****************************************************************************!*\ + !*** ./node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs ***! + \*****************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pi) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_plugin-vue2_normalizer-VrK6B12S.mjs */ "./node_modules/@nextcloud/dialogs/dist/chunks/_plugin-vue2_normalizer-VrK6B12S.mjs"); +/* harmony import */ var _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/files */ "./node_modules/@nextcloud/files/dist/index.mjs"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue */ "./node_modules/@nextcloud/vue/dist/index.mjs"); +/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _vueuse_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @vueuse/core */ "./node_modules/@vueuse/shared/index.mjs"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); +/* harmony import */ var vue_frag__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue-frag */ "./node_modules/vue-frag/dist/frag.esm.js"); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! path */ "./node_modules/path/path.js"); +/* harmony import */ var cancelable_promise__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! cancelable-promise */ "./node_modules/cancelable-promise/umd/CancelablePromise.js"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + + + + + + + + + + +const $e = { + name: "FileIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var Ne = function() { + var e = this, i = e._self._c; + return i("span", e._b({ staticClass: "material-design-icon file-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { + return e.$emit("click", t); + } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, xe = [], Be = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + $e, + Ne, + xe, + !1, + null, + null, + null, + null +); +const G = Be.exports, D = () => { + const l = () => document.getElementById("isPublic")?.value === "1", e = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!0); + return (0,vue__WEBPACK_IMPORTED_MODULE_12__.onBeforeMount)(() => { + e.value = l(); + }), { + isPublic: e + }; +}; +/** + * @copyright Copyright (c) 2023 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +const K = () => { + const l = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__.loadState)("files", "config", null), e = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(l?.show_hidden ?? !0), i = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(l?.sort_favorites_first ?? !0), t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(l?.crop_image_previews ?? !0), { isPublic: n } = D(); + return (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(async () => { + if (n.value) + console.debug("Skip loading files settings - currently on public share"); + else + try { + const { data: s } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_6__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateUrl)("/apps/files/api/v1/configs")); + e.value = s?.data?.show_hidden ?? !1, i.value = s?.data?.sort_favorites_first ?? !0, t.value = s?.data?.crop_image_previews ?? !0; + } catch (s) { + console.error("Could not load files settings", s), (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.l)((0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Could not load files settings")); + } + }), { + showHiddenFiles: e, + sortFavoritesFirst: i, + cropImagePreviews: t + }; +}, Pe = (l) => { + const e = (a) => a === "asc" ? "ascending" : a === "desc" ? "descending" : "none", i = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__.loadState)("files", "viewConfigs", null), t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({ + sortBy: i?.files?.sorting_mode ?? "basename", + order: e(i?.files?.sorting_direction ?? "asc") + }), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({ + sortBy: i?.recent?.sorting_mode ?? "basename", + order: e(i?.recent?.sorting_direction ?? "asc") + }), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({ + sortBy: i?.favorites?.sorting_mode ?? "basename", + order: e(i?.favorites?.sorting_direction ?? "asc") + }), { isPublic: r } = D(); + (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(async () => { + if (r.value) + console.debug("Skip loading files views - currently on public share"); + else + try { + const { data: a } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_6__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateUrl)("/apps/files/api/v1/views")); + t.value = { + sortBy: a?.data?.files?.sorting_mode ?? "basename", + order: e(a?.data?.files?.sorting_direction) + }, s.value = { + sortBy: a?.data?.favorites?.sorting_mode ?? "basename", + order: e(a?.data?.favorites?.sorting_direction) + }, n.value = { + sortBy: a?.data?.recent?.sorting_mode ?? "basename", + order: e(a?.data?.recent?.sorting_direction) + }; + } catch (a) { + console.error("Could not load files views", a), (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.l)((0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Could not load files views")); + } + }); + const b = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_13__.toValue)(l || "files") === "files" ? t.value : (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_13__.toValue)(l) === "recent" ? n.value : s.value), g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => b.value.sortBy), d = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => b.value.order); + return { + filesViewConfig: t, + favoritesViewConfig: s, + recentViewConfig: n, + currentConfig: b, + sortBy: g, + order: d + }; +}, ze = { + name: "MenuUpIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var Le = function() { + var e = this, i = e._self._c; + return i("span", e._b({ staticClass: "material-design-icon menu-up-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { + return e.$emit("click", t); + } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M7,15L12,10L17,15H7Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, Ie = [], Ve = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + ze, + Le, + Ie, + !1, + null, + null, + null, + null +); +const Re = Ve.exports, De = { + name: "MenuDownIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var He = function() { + var e = this, i = e._self._c; + return i("span", e._b({ staticClass: "material-design-icon menu-down-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { + return e.$emit("click", t); + } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M7,10L12,15L17,10H7Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, Me = [], Ae = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + De, + He, + Me, + !1, + null, + null, + null, + null +); +const Te = Ae.exports, q = { + "file-picker__file-icon": "_file-picker__file-icon_1vgv4_5" +}, Ue = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ + __name: "LoadingTableRow", + props: { + showCheckbox: { type: Boolean } + }, + setup(l) { + return { __sfc: !0, fileListIconStyles: q }; + } +}); +var Ee = function() { + var e = this, i = e._self._c, t = e._self._setupProxy; + return i("tr", { staticClass: "file-picker__row loading-row", attrs: { "aria-hidden": "true" } }, [e.showCheckbox ? i("td", { staticClass: "row-checkbox" }, [i("span")]) : e._e(), i("td", { staticClass: "row-name" }, [i("div", { staticClass: "row-wrapper" }, [i("span", { class: t.fileListIconStyles["file-picker__file-icon"] }), i("span")])]), e._m(0), e._m(1)]); +}, Oe = [function() { + var l = this, e = l._self._c; + return l._self._setupProxy, e("td", { staticClass: "row-size" }, [e("span")]); +}, function() { + var l = this, e = l._self._c; + return l._self._setupProxy, e("td", { staticClass: "row-modified" }, [e("span")]); +}], Ze = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + Ue, + Ee, + Oe, + !1, + null, + "6aded0d9", + null, + null +); +const je = Ze.exports; +/** + * @copyright Copyright (c) 2023 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +function We(l, e = {}) { + e = { size: 32, cropPreview: !1, mimeFallback: !0, ...e }; + try { + const i = l.attributes?.previewUrl || (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateUrl)("/core/preview?fileId={fileid}", { + fileid: l.fileid + }); + let t; + try { + t = new URL(i); + } catch { + t = new URL(i, window.location.origin); + } + return t.searchParams.set("x", `${e.size}`), t.searchParams.set("y", `${e.size}`), t.searchParams.set("mimeFallback", `${e.mimeFallback}`), t.searchParams.set("a", e.cropPreview === !0 ? "0" : "1"), t.searchParams.set("c", `${l.attributes.etag}`), t; + } catch { + return null; + } +} +const Ge = { + name: "FolderIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var Ke = function() { + var e = this, i = e._self._c; + return i("span", e._b({ staticClass: "material-design-icon folder-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { + return e.$emit("click", t); + } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, qe = [], Je = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + Ge, + Ke, + qe, + !1, + null, + null, + null, + null +); +const J = Je.exports, Qe = { + name: "FilePreview" +}, Xe = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ + ...Qe, + props: { + node: null, + cropImagePreviews: { type: Boolean } + }, + setup(l) { + const e = l, i = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(q), t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => We(e.node, { cropPreview: e.cropImagePreviews })), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => e.node.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.File), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!1); + return (0,vue__WEBPACK_IMPORTED_MODULE_12__.watch)(t, () => { + if (s.value = !1, t.value) { + const r = document.createElement("img"); + r.src = t.value.href, r.onerror = () => r.remove(), r.onload = () => { + s.value = !0, r.remove(); + }, document.body.appendChild(r); + } + }, { immediate: !0 }), { __sfc: !0, fileListIconStyles: i, props: e, previewURL: t, isFile: n, canLoadPreview: s, IconFile: G, IconFolder: J }; + } +}); +var Ye = function() { + var e = this, i = e._self._c, t = e._self._setupProxy; + return i("div", { class: t.fileListIconStyles["file-picker__file-icon"], style: t.canLoadPreview ? { backgroundImage: `url(${t.previewURL})` } : void 0 }, [t.canLoadPreview ? e._e() : [t.isFile ? i(t.IconFile, { attrs: { size: 20 } }) : i(t.IconFolder, { attrs: { size: 20 } })]], 2); +}, et = [], tt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + Xe, + Ye, + et, + !1, + null, + null, + null, + null +); +const it = tt.exports, nt = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ + __name: "FileListRow", + props: { + allowPickDirectory: { type: Boolean }, + selected: { type: Boolean }, + showCheckbox: { type: Boolean }, + canPick: { type: Boolean }, + node: null, + cropImagePreviews: { type: Boolean } + }, + emits: ["update:selected", "enter-directory"], + setup(l, { emit: e }) { + const i = l, t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.node.attributes?.displayName || i.node.basename.slice(0, i.node.extension ? -i.node.extension.length : void 0)), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.node.extension), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.node.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder), r = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.canPick && (i.allowPickDirectory || !s.value)); + function b() { + e("update:selected", !i.selected); + } + function g() { + s.value ? e("enter-directory", i.node) : b(); + } + function d(a) { + a.key === "Enter" && g(); + } + return { __sfc: !0, props: i, emit: e, displayName: t, fileExtension: n, isDirectory: s, isPickable: r, toggleSelected: b, handleClick: g, handleKeyDown: d, formatFileSize: _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.formatFileSize, NcCheckboxRadioSwitch: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcCheckboxRadioSwitch, NcDateTime: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcDateTime, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t, FilePreview: it }; + } +}); +var st = function() { + var e = this, i = e._self._c, t = e._self._setupProxy; + return i("tr", e._g({ class: ["file-picker__row", { + "file-picker__row--selected": e.selected && !e.showCheckbox + }], attrs: { tabindex: e.showCheckbox && !t.isDirectory ? void 0 : 0, "aria-selected": t.isPickable ? e.selected : void 0, "data-filename": e.node.basename, "data-testid": "file-list-row" } }, { + click: t.handleClick, + /* same as tabindex -> if we hide the checkbox or this is a directory we need keyboard access to enter the directory or select the node */ + ...!e.showCheckbox || t.isDirectory ? { keydown: t.handleKeyDown } : {} + }), [e.showCheckbox ? i("td", { staticClass: "row-checkbox", on: { click: function(n) { + return n.stopPropagation(), (() => { + }).apply(null, arguments); + } } }, [i(t.NcCheckboxRadioSwitch, { attrs: { "aria-label": t.t("Select the row for {nodename}", { nodename: t.displayName }), checked: e.selected, disabled: !t.isPickable, "data-testid": "row-checkbox" }, on: { "update:checked": t.toggleSelected } })], 1) : e._e(), i("td", { staticClass: "row-name" }, [i("div", { staticClass: "file-picker__name-container", attrs: { "data-testid": "row-name" } }, [i(t.FilePreview, { attrs: { node: e.node, "crop-image-previews": e.cropImagePreviews } }), i("div", { staticClass: "file-picker__file-name", attrs: { title: t.displayName }, domProps: { textContent: e._s(t.displayName) } }), i("div", { staticClass: "file-picker__file-extension", domProps: { textContent: e._s(t.fileExtension) } })], 1)]), i("td", { staticClass: "row-size" }, [e._v(" " + e._s(t.formatFileSize(e.node.size || 0)) + " ")]), i("td", { staticClass: "row-modified" }, [i(t.NcDateTime, { attrs: { timestamp: e.node.mtime, "ignore-seconds": !0 } })], 1)]); +}, lt = [], rt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + nt, + st, + lt, + !1, + null, + "48df4f27", + null, + null +); +const at = rt.exports, ot = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ + __name: "FileList", + props: { + currentView: null, + multiselect: { type: Boolean }, + allowPickDirectory: { type: Boolean }, + loading: { type: Boolean }, + files: null, + selectedFiles: null, + path: null + }, + emits: ["update:path", "update:selectedFiles"], + setup(l, { emit: e }) { + const i = l, t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(), { currentConfig: n } = Pe(i.currentView), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => t.value ?? n.value), r = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => s.value.sortBy === "basename" ? s.value.order === "none" ? void 0 : s.value.order : void 0), b = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => s.value.sortBy === "size" ? s.value.order === "none" ? void 0 : s.value.order : void 0), g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => s.value.sortBy === "mtime" ? s.value.order === "none" ? void 0 : s.value.order : void 0), d = (o) => { + s.value.sortBy === o ? s.value.order === "ascending" ? t.value = { sortBy: s.value.sortBy, order: "descending" } : t.value = { sortBy: s.value.sortBy, order: "ascending" } : t.value = { sortBy: o, order: "ascending" }; + }, { sortFavoritesFirst: a, cropImagePreviews: p } = K(), B = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)( + () => { + const o = { + ascending: (m, f, z) => z(m, f), + descending: (m, f, z) => z(f, m), + // eslint-disable-next-line @typescript-eslint/no-unused-vars + none: (m, f, z) => 0 + }, C = { + basename: (m, f) => (m.attributes?.displayName || m.basename).localeCompare(f.attributes?.displayName || f.basename, (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__.getCanonicalLocale)()), + size: (m, f) => (m.size || 0) - (f.size || 0), + // reverted because "young" is smaller than "old" + mtime: (m, f) => (f.mtime?.getTime?.() || 0) - (m.mtime?.getTime?.() || 0) + }; + return [...i.files].sort( + (m, f) => ( + // Folders always come above the files + (f.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder ? 1 : 0) - (m.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder ? 1 : 0) || (a ? (f.attributes.favorite ? 1 : 0) - (m.attributes.favorite ? 1 : 0) : 0) || o[s.value.order](m, f, C[s.value.sortBy]) + ) + ); + } + ), F = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.files.filter((o) => i.allowPickDirectory || o.type !== _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder)), N = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => !i.loading && i.selectedFiles.length > 0 && i.selectedFiles.length >= F.value.length); + function h() { + i.selectedFiles.length < F.value.length ? e("update:selectedFiles", F.value) : e("update:selectedFiles", []); + } + function w(o) { + i.selectedFiles.includes(o) ? e("update:selectedFiles", i.selectedFiles.filter((C) => C.path !== o.path)) : i.multiselect ? e("update:selectedFiles", [...i.selectedFiles, o]) : e("update:selectedFiles", [o]); + } + function S(o) { + e("update:path", o.path); + } + const x = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(4), $ = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(); + { + const o = () => (0,vue__WEBPACK_IMPORTED_MODULE_12__.nextTick)(() => { + const C = $.value?.parentElement?.children || []; + let m = $.value?.parentElement?.clientHeight || 450; + for (let f = 0; f < C.length; f++) + $.value?.isSameNode(C[f]) || (m -= C[f].clientHeight); + x.value = Math.floor((m - 50) / 50); + }); + (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => { + window.addEventListener("resize", o), o(); + }), (0,vue__WEBPACK_IMPORTED_MODULE_12__.onUnmounted)(() => { + window.removeEventListener("resize", o); + }); + } + return { __sfc: !0, props: i, emit: e, customSortingConfig: t, filesAppSorting: n, sortingConfig: s, sortByName: r, sortBySize: b, sortByModified: g, toggleSorting: d, sortFavoritesFirst: a, cropImagePreviews: p, sortedFiles: B, selectableFiles: F, allSelected: N, onSelectAll: h, onNodeSelected: w, onChangeDirectory: S, skeletonNumber: x, fileContainer: $, NcButton: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcButton, NcCheckboxRadioSwitch: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcCheckboxRadioSwitch, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t, IconSortAscending: Re, IconSortDescending: Te, LoadingTableRow: je, FileListRow: at }; + } +}); +var ct = function() { + var e = this, i = e._self._c, t = e._self._setupProxy; + return i("div", { ref: "fileContainer", staticClass: "file-picker__files" }, [i("table", [i("thead", [i("tr", [e.multiselect ? i("th", { staticClass: "row-checkbox" }, [i("span", { staticClass: "hidden-visually" }, [e._v(" " + e._s(t.t("Select entry")) + " ")]), e.multiselect ? i(t.NcCheckboxRadioSwitch, { attrs: { "aria-label": t.t("Select all entries"), checked: t.allSelected, "data-testid": "select-all-checkbox" }, on: { "update:checked": t.onSelectAll } }) : e._e()], 1) : e._e(), i("th", { staticClass: "row-name", attrs: { "aria-sort": t.sortByName } }, [i("div", { staticClass: "header-wrapper" }, [i("span", { staticClass: "file-picker__header-preview" }), i(t.NcButton, { attrs: { wide: !0, type: "tertiary", "data-test": "file-picker_sort-name" }, on: { click: function(n) { + return t.toggleSorting("basename"); + } }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [t.sortByName === "ascending" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByName === "descending" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i("span", { staticStyle: { width: "44px" } })]; + }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("Name")) + " ")])], 1)]), i("th", { staticClass: "row-size", attrs: { "aria-sort": t.sortBySize } }, [i(t.NcButton, { attrs: { wide: !0, type: "tertiary" }, on: { click: function(n) { + return t.toggleSorting("size"); + } }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [t.sortBySize === "ascending" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortBySize === "descending" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i("span", { staticStyle: { width: "44px" } })]; + }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("Size")) + " ")])], 1), i("th", { staticClass: "row-modified", attrs: { "aria-sort": t.sortByModified } }, [i(t.NcButton, { attrs: { wide: !0, type: "tertiary" }, on: { click: function(n) { + return t.toggleSorting("mtime"); + } }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [t.sortByModified === "ascending" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByModified === "descending" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i("span", { staticStyle: { width: "44px" } })]; + }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("Modified")) + " ")])], 1)])]), i("tbody", [e.loading ? e._l(t.skeletonNumber, function(n) { + return i(t.LoadingTableRow, { key: n, attrs: { "show-checkbox": e.multiselect } }); + }) : e._l(t.sortedFiles, function(n) { + return i(t.FileListRow, { key: n.fileid || n.path, attrs: { "allow-pick-directory": e.allowPickDirectory, "show-checkbox": e.multiselect, "can-pick": e.multiselect || e.selectedFiles.length === 0 || e.selectedFiles.includes(n), selected: e.selectedFiles.includes(n), node: n, "crop-image-previews": t.cropImagePreviews }, on: { "update:selected": function(s) { + return t.onNodeSelected(n); + }, "enter-directory": t.onChangeDirectory } }); + })], 2)])]); +}, ut = [], dt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + ot, + ct, + ut, + !1, + null, + "d3c94818", + null, + null +); +const ft = dt.exports, pt = { + name: "HomeIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var _t = function() { + var e = this, i = e._self._c; + return i("span", e._b({ staticClass: "material-design-icon home-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { + return e.$emit("click", t); + } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, mt = [], vt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + pt, + _t, + mt, + !1, + null, + null, + null, + null +); +const gt = vt.exports, yt = { + name: "PlusIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var ht = function() { + var e = this, i = e._self._c; + return i("span", e._b({ staticClass: "material-design-icon plus-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { + return e.$emit("click", t); + } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, wt = [], bt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + yt, + ht, + wt, + !1, + null, + null, + null, + null +); +const kt = bt.exports, Ct = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ + __name: "FilePickerBreadcrumbs", + props: { + path: null, + showMenu: { type: Boolean } + }, + emits: ["update:path", "create-node"], + setup(l, { emit: e }) { + const i = l, t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!1), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(""), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(); + function r() { + const d = n.value.trim(), a = s.value?.$el?.querySelector("input"); + let p = ""; + return d.length === 0 ? p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Folder name cannot be empty.") : d.includes("/") ? p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)('"/" is not allowed inside a folder name.') : ["..", "."].includes(d) ? p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)('"{name}" is an invalid folder name.', { name: d }) : window.OC.config?.blacklist_files_regex && d.match(window.OC.config?.blacklist_files_regex) && (p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)('"{name}" is not an allowed folder name', { name: d })), a && a.setCustomValidity(p), p === ""; + } + const b = function() { + const d = n.value.trim(); + r() && (t.value = !1, e("create-node", d), n.value = ""); + }, g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)( + () => i.path.split("/").filter((d) => d !== "").map((d, a, p) => ({ + name: d, + path: "/" + p.slice(0, a + 1).join("/") + })) + ); + return { __sfc: !0, props: i, emit: e, actionsOpen: t, newNodeName: n, nameInput: s, validateInput: r, onSubmit: b, pathElements: g, IconFolder: J, IconHome: gt, IconPlus: kt, NcActions: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcActions, NcActionInput: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcActionInput, NcBreadcrumbs: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcBreadcrumbs, NcBreadcrumb: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcBreadcrumb, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t }; + } +}); +var Ft = function() { + var e = this, i = e._self._c, t = e._self._setupProxy; + return i(t.NcBreadcrumbs, { staticClass: "file-picker__breadcrumbs", scopedSlots: e._u([{ key: "default", fn: function() { + return [i(t.NcBreadcrumb, { attrs: { name: t.t("All files"), title: t.t("Home") }, on: { click: function(n) { + return t.emit("update:path", "/"); + } }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [i(t.IconHome, { attrs: { size: 20 } })]; + }, proxy: !0 }]) }), e._l(t.pathElements, function(n) { + return i(t.NcBreadcrumb, { key: n.path, attrs: { name: n.name, title: n.path }, on: { click: function(s) { + return t.emit("update:path", n.path); + } } }); + })]; + }, proxy: !0 }, e.showMenu ? { key: "actions", fn: function() { + return [i(t.NcActions, { attrs: { "aria-label": t.t("Create directory"), "force-menu": !0, "force-name": !0, "menu-name": t.t("New"), open: t.actionsOpen, type: "secondary" }, on: { "update:open": function(n) { + t.actionsOpen = n; + }, close: function(n) { + t.newNodeName = ""; + } }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [i(t.IconPlus, { attrs: { size: 20 } })]; + }, proxy: !0 }], null, !1, 2971667417) }, [i(t.NcActionInput, { ref: "nameInput", attrs: { value: t.newNodeName, label: t.t("New folder"), placeholder: t.t("New folder name") }, on: { "update:value": function(n) { + t.newNodeName = n; + }, submit: t.onSubmit, input: t.validateInput }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [i(t.IconFolder, { attrs: { size: 20 } })]; + }, proxy: !0 }], null, !1, 1614167509) })], 1)]; + }, proxy: !0 } : null], null, !0) }); +}, St = [], $t = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + Ct, + Ft, + St, + !1, + null, + "22cbb5df", + null, + null +); +const Nt = $t.exports, xt = { + name: "CloseIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var Bt = function() { + var e = this, i = e._self._c; + return i("span", e._b({ staticClass: "material-design-icon close-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { + return e.$emit("click", t); + } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, Pt = [], zt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + xt, + Bt, + Pt, + !1, + null, + null, + null, + null +); +const Lt = zt.exports, It = { + name: "MagnifyIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var Vt = function() { + var e = this, i = e._self._c; + return i("span", e._b({ staticClass: "material-design-icon magnify-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { + return e.$emit("click", t); + } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, Rt = [], Dt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + It, + Vt, + Rt, + !1, + null, + null, + null, + null +); +const Ht = Dt.exports; +/** + * @copyright Copyright (c) 2024 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ +const Mt = (l) => { + const e = [ + { + id: "files", + label: (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("All files"), + icon: _mdi_js__WEBPACK_IMPORTED_MODULE_14__.mdiFolder + }, + { + id: "recent", + label: (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Recent"), + icon: _mdi_js__WEBPACK_IMPORTED_MODULE_14__.mdiClock + }, + { + id: "favorites", + label: (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Favorites"), + icon: _mdi_js__WEBPACK_IMPORTED_MODULE_14__.mdiStar + } + ], i = l.value ? e.filter(({ id: t }) => t === "files") : e; + return { + allViews: e, + availableViews: i + }; +}, At = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ + __name: "FilePickerNavigation", + props: { + currentView: null, + filterString: null, + isCollapsed: { type: Boolean }, + disabledNavigation: { type: Boolean } + }, + emits: ["update:currentView", "update:filterString"], + setup(l, { emit: e }) { + const i = l, { availableViews: t } = Mt((0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)((0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_7__.getCurrentUser)() === null)), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => t.filter((r) => r.id === i.currentView)[0] ?? t[0]); + return { __sfc: !0, props: i, emit: e, availableViews: t, currentViewObject: n, updateFilterValue: (r) => e("update:filterString", r), IconClose: Lt, IconMagnify: Ht, NcButton: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcButton, NcIconSvgWrapper: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcIconSvgWrapper, NcSelect: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcSelect, NcTextField: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcTextField, Fragment: vue_frag__WEBPACK_IMPORTED_MODULE_8__.Fragment, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t }; + } +}); +var Tt = function() { + var e = this, i = e._self._c, t = e._self._setupProxy; + return i(t.Fragment, [i(t.NcTextField, { staticClass: "file-picker__filter-input", attrs: { value: e.filterString, label: t.t("Filter file list"), "show-trailing-button": !!e.filterString }, on: { "update:value": t.updateFilterValue, "trailing-button-click": function(n) { + return t.updateFilterValue(""); + } }, scopedSlots: e._u([{ key: "trailing-button-icon", fn: function() { + return [i(t.IconClose, { attrs: { size: 16 } })]; + }, proxy: !0 }]) }, [i(t.IconMagnify, { attrs: { size: 16 } })], 1), t.availableViews.length > 1 && !e.disabledNavigation ? [e.isCollapsed ? i(t.NcSelect, { attrs: { "aria-label": t.t("Current view selector"), clearable: !1, searchable: !1, options: t.availableViews, value: t.currentViewObject }, on: { input: (n) => t.emit("update:currentView", n.id) } }) : i("ul", { staticClass: "file-picker__side" }, e._l(t.availableViews, function(n) { + return i("li", { key: n.id }, [i(t.NcButton, { attrs: { type: e.currentView === n.id ? "primary" : "tertiary", wide: !0 }, on: { click: function(s) { + return e.$emit("update:currentView", n.id); + } }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [i(t.NcIconSvgWrapper, { attrs: { path: n.icon, size: 20 } })]; + }, proxy: !0 }], null, !0) }, [e._v(" " + e._s(n.label) + " ")])], 1); + }), 0)] : e._e()], 2); +}, Ut = [], Et = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + At, + Tt, + Ut, + !1, + null, + "a06474d4", + null, + null +); +const Ot = Et.exports; +/** + * @copyright Copyright (c) 2023 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +const Zt = function(l, e, i) { + const t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.value ? "/" : _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davRootPath), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.value ? (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateRemoteUrl)("webdav").replace("/remote.php", "/public.php") : _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davRemoteURL), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => { + if (i.value) { + const h = document.getElementById("sharingToken").value, w = btoa(`${h}:null`); + return (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetClient)(n.value, { + Authorization: `Basic ${w}` + }); + } + return (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetClient)(); + }), r = (h) => (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davResultToNode)(h, t.value, n.value), b = () => { + const h = new AbortController(), w = Math.round(Date.now() / 1e3) - 60 * 60 * 24 * 14; + return new cancelable_promise__WEBPACK_IMPORTED_MODULE_11__.CancelablePromise(async (S, x, $) => { + $(() => h.abort()); + try { + const { data: o } = await s.value.search("/", { + signal: h.signal, + details: !0, + data: (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetRecentSearch)(w) + }), C = o.results.map(r); + S(C); + } catch (o) { + x(o); + } + }); + }, g = () => { + const h = new AbortController(); + return new cancelable_promise__WEBPACK_IMPORTED_MODULE_11__.CancelablePromise(async (w, S, x) => { + x(() => h.abort()); + try { + let o = (await s.value.getDirectoryContents(`${t.value}${e.value}`, { + signal: h.signal, + details: !0, + data: (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetDefaultPropfind)() + })).data.map(r); + i.value && (o = o.filter((C) => C.path !== e.value)), w(o); + } catch ($) { + S($); + } + }); + }, d = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)([]), a = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!0), p = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(null); + async function B(h) { + const w = (0,path__WEBPACK_IMPORTED_MODULE_10__.join)(e.value, h); + await s.value.createDirectory((0,path__WEBPACK_IMPORTED_MODULE_10__.join)(t.value, w)); + const S = await F(w); + return d.value.push(S), S; + } + async function F(h, w = void 0) { + w = w ?? t.value; + const { data: S } = await s.value.stat(`${w}${h}`, { + details: !0, + data: (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetDefaultPropfind)() + }); + return r(S); + } + async function N() { + p.value && p.value.cancel(), a.value = !0, l.value === "favorites" ? p.value = (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.getFavoriteNodes)(s.value, e.value, t.value) : l.value === "recent" ? p.value = b() : p.value = g(), d.value = await p.value, p.value = null, a.value = !1; + } + return (0,vue__WEBPACK_IMPORTED_MODULE_12__.watch)([l, e], () => N()), (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => N()), { + isLoading: a, + files: d, + loadFiles: N, + getFile: F, + createDirectory: B + }; +}; +/** + * @copyright Copyright (c) 2023 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +const jt = function(l) { + const e = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => l.value.map((t) => t.split("/"))); + return { + isSupportedMimeType: (t) => { + const n = t.split("/"); + return e.value.some( + ([s, r]) => ( + // check mime type matches or is wildcard + (n[0] === s || s === "*") && (n[1] === r || r === "*") + ) + ); + } + }; +}, Wt = { + name: "FilePicker" +}, Gt = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ + ...Wt, + props: { + buttons: null, + name: null, + allowPickDirectory: { type: Boolean, default: !1 }, + disabledNavigation: { type: Boolean, default: !1 }, + container: { default: "body" }, + filterFn: { default: void 0 }, + mimetypeFilter: { default: () => [] }, + multiselect: { type: Boolean, default: !0 }, + path: { default: void 0 } + }, + emits: ["close"], + setup(l, { emit: e }) { + const i = l, { isPublic: t } = D(), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!0), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => (typeof i.buttons == "function" ? i.buttons(a.value, F.value, g.value) : i.buttons).map((y) => ({ + ...y, + callback: () => { + r = !0, b(y.callback); + } + }))); + let r = !1; + const b = async (_) => { + const y = a.value.length === 0 && i.allowPickDirectory ? [await $(F.value)] : a.value; + _(y), e("close", y), r = !1; + }, g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)("files"), d = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => g.value === "favorites" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Favorites") : g.value === "recent" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Recent") : ""), a = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)([]), p = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(window?.sessionStorage.getItem("NC.FilePicker.LastPath") || "/"), B = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(), F = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)({ + // Only use the path for the files view as favorites and recent only works on the root + get: () => g.value === "files" ? B.value || i.path || p.value : "/", + /** + * Navigate to the new path and save it to the session storage + * + * @param path The new path + */ + set: (_) => { + i.path === void 0 && window.sessionStorage.setItem("NC.FilePicker.LastPath", _), B.value = _, a.value = []; + } + }), N = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(""), { isSupportedMimeType: h } = jt((0,vue__WEBPACK_IMPORTED_MODULE_12__.toRef)(i, "mimetypeFilter")), { files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o } = Zt(g, F, t); + (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => x()); + const { showHiddenFiles: C } = K(), m = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => { + let _ = w.value; + return C.value || (_ = _.filter((y) => !y.basename.startsWith("."))), i.mimetypeFilter.length > 0 && (_ = _.filter((y) => y.type === "folder" || y.mime && h(y.mime))), N.value && (_ = _.filter((y) => y.basename.toLowerCase().includes(N.value.toLowerCase()))), i.filterFn && (_ = _.filter((y) => i.filterFn(y))), _; + }), f = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => g.value === "files" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Upload some content or sync with your devices!") : g.value === "recent" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Files and folders you recently modified will show up here.") : (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Files and folders you mark as favorite will show up here.")); + return { __sfc: !0, props: i, emit: e, isPublic: t, isOpen: n, dialogButtons: s, isHandlingCallback: r, handleButtonClick: b, currentView: g, viewHeadline: d, selectedFiles: a, savedPath: p, navigatedPath: B, currentPath: F, filterString: N, isSupportedMimeType: h, files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o, showHiddenFiles: C, filteredFiles: m, noFilesDescription: f, onCreateFolder: async (_) => { + try { + const y = await o(_); + F.value = y.path, (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_9__.emit)("files:node:created", w.value.filter((Q) => Q.basename === _)[0]); + } catch (y) { + console.warn("Could not create new folder", { name: _, error: y }), (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.l)((0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Could not create the new folder")); + } + }, handleClose: (_) => { + !_ && !r && e("close"); + }, IconFile: G, FileList: ft, FilePickerBreadcrumbs: Nt, FilePickerNavigation: Ot, NcDialog: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcDialog, NcEmptyContent: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcEmptyContent, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t }; + } +}); +var Kt = function() { + var e = this, i = e._self._c, t = e._self._setupProxy; + return i(t.NcDialog, { attrs: { container: e.container, buttons: t.dialogButtons, name: e.name, size: "large", "content-classes": "file-picker__content", "dialog-classes": "file-picker", "navigation-classes": "file-picker__navigation", open: t.isOpen }, on: { "update:open": [function(n) { + t.isOpen = n; + }, t.handleClose] }, scopedSlots: e._u([{ key: "navigation", fn: function({ isCollapsed: n }) { + return [i(t.FilePickerNavigation, { attrs: { "is-collapsed": n, "current-view": t.currentView, "filter-string": t.filterString, "disabled-navigation": e.disabledNavigation }, on: { "update:currentView": function(s) { + t.currentView = s; + }, "update:current-view": function(s) { + t.currentView = s; + }, "update:filterString": function(s) { + t.filterString = s; + }, "update:filter-string": function(s) { + t.filterString = s; + } } })]; + } }]) }, [i("div", { staticClass: "file-picker__main" }, [t.currentView === "files" ? i(t.FilePickerBreadcrumbs, { attrs: { path: t.currentPath, "show-menu": e.allowPickDirectory }, on: { "update:path": function(n) { + t.currentPath = n; + }, "create-node": t.onCreateFolder } }) : i("div", { staticClass: "file-picker__view" }, [i("h3", [e._v(e._s(t.viewHeadline))])]), t.isLoading || t.filteredFiles.length > 0 ? i(t.FileList, { attrs: { "allow-pick-directory": e.allowPickDirectory, "current-view": t.currentView, files: t.filteredFiles, multiselect: e.multiselect, loading: t.isLoading, path: t.currentPath, "selected-files": t.selectedFiles, name: t.viewHeadline }, on: { "update:path": [function(n) { + t.currentPath = n; + }, function(n) { + t.currentView = "files"; + }], "update:selectedFiles": function(n) { + t.selectedFiles = n; + }, "update:selected-files": function(n) { + t.selectedFiles = n; + } } }) : t.filterString ? i(t.NcEmptyContent, { attrs: { name: t.t("No matching files"), description: t.t("No files matching your filter were found.") }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [i(t.IconFile)]; + }, proxy: !0 }]) }) : i(t.NcEmptyContent, { attrs: { name: t.t("No files in here"), description: t.noFilesDescription }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [i(t.IconFile)]; + }, proxy: !0 }]) })], 1)]); +}, qt = [], Jt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( + Gt, + Kt, + qt, + !1, + null, + "6ff1b36b", + null, + null +); +const pi = Jt.exports; + + + +/***/ }) + +}]); +//# sourceMappingURL=data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map?v=d9b9b9d7a013d2ef56e5 \ No newline at end of file diff --git a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map b/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map new file mode 100644 index 0000000000000..80cecf3b55fe5 --- /dev/null +++ b/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map @@ -0,0 +1 @@ +{"version":3,"file":"data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js?v=d9b9b9d7a013d2ef56e5","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA","sources":["webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs"],"sourcesContent":["import { ref as u, onBeforeMount as X, onMounted as I, computed as c, defineComponent as P, watch as E, onUnmounted as Y, nextTick as ee, toRef as te } from \"vue\";\nimport { a as k, l as V, t as v } from \"./_plugin-vue2_normalizer-VrK6B12S.mjs\";\nimport { FileType as L, formatFileSize as ie, davRootPath as ne, davRemoteURL as se, davGetClient as H, davGetDefaultPropfind as M, getFavoriteNodes as le, davResultToNode as re, davGetRecentSearch as ae } from \"@nextcloud/files\";\nimport { getCanonicalLocale as oe } from \"@nextcloud/l10n\";\nimport { NcCheckboxRadioSwitch as O, NcDateTime as ce, NcButton as Z, NcActions as ue, NcActionInput as de, NcBreadcrumbs as fe, NcBreadcrumb as pe, NcIconSvgWrapper as _e, NcSelect as me, NcTextField as ve, NcDialog as ge, NcEmptyContent as ye } from \"@nextcloud/vue\";\nimport { loadState as j } from \"@nextcloud/initial-state\";\nimport { generateUrl as R, generateRemoteUrl as he } from \"@nextcloud/router\";\nimport { toValue as A } from \"@vueuse/core\";\nimport W from \"@nextcloud/axios\";\nimport { getCurrentUser as we } from \"@nextcloud/auth\";\nimport { Fragment as be } from \"vue-frag\";\nimport { mdiFolder as ke, mdiClock as Ce, mdiStar as Fe } from \"@mdi/js\";\nimport { emit as Se } from \"@nextcloud/event-bus\";\nimport { join as T } from \"path\";\nimport { CancelablePromise as U } from \"cancelable-promise\";\nconst $e = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Ne = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon file-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, xe = [], Be = /* @__PURE__ */ k(\n $e,\n Ne,\n xe,\n !1,\n null,\n null,\n null,\n null\n);\nconst G = Be.exports, D = () => {\n const l = () => document.getElementById(\"isPublic\")?.value === \"1\", e = u(!0);\n return X(() => {\n e.value = l();\n }), {\n isPublic: e\n };\n};\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nconst K = () => {\n const l = j(\"files\", \"config\", null), e = u(l?.show_hidden ?? !0), i = u(l?.sort_favorites_first ?? !0), t = u(l?.crop_image_previews ?? !0), { isPublic: n } = D();\n return I(async () => {\n if (n.value)\n console.debug(\"Skip loading files settings - currently on public share\");\n else\n try {\n const { data: s } = await W.get(R(\"/apps/files/api/v1/configs\"));\n e.value = s?.data?.show_hidden ?? !1, i.value = s?.data?.sort_favorites_first ?? !0, t.value = s?.data?.crop_image_previews ?? !0;\n } catch (s) {\n console.error(\"Could not load files settings\", s), V(v(\"Could not load files settings\"));\n }\n }), {\n showHiddenFiles: e,\n sortFavoritesFirst: i,\n cropImagePreviews: t\n };\n}, Pe = (l) => {\n const e = (a) => a === \"asc\" ? \"ascending\" : a === \"desc\" ? \"descending\" : \"none\", i = j(\"files\", \"viewConfigs\", null), t = u({\n sortBy: i?.files?.sorting_mode ?? \"basename\",\n order: e(i?.files?.sorting_direction ?? \"asc\")\n }), n = u({\n sortBy: i?.recent?.sorting_mode ?? \"basename\",\n order: e(i?.recent?.sorting_direction ?? \"asc\")\n }), s = u({\n sortBy: i?.favorites?.sorting_mode ?? \"basename\",\n order: e(i?.favorites?.sorting_direction ?? \"asc\")\n }), { isPublic: r } = D();\n I(async () => {\n if (r.value)\n console.debug(\"Skip loading files views - currently on public share\");\n else\n try {\n const { data: a } = await W.get(R(\"/apps/files/api/v1/views\"));\n t.value = {\n sortBy: a?.data?.files?.sorting_mode ?? \"basename\",\n order: e(a?.data?.files?.sorting_direction)\n }, s.value = {\n sortBy: a?.data?.favorites?.sorting_mode ?? \"basename\",\n order: e(a?.data?.favorites?.sorting_direction)\n }, n.value = {\n sortBy: a?.data?.recent?.sorting_mode ?? \"basename\",\n order: e(a?.data?.recent?.sorting_direction)\n };\n } catch (a) {\n console.error(\"Could not load files views\", a), V(v(\"Could not load files views\"));\n }\n });\n const b = c(() => A(l || \"files\") === \"files\" ? t.value : A(l) === \"recent\" ? n.value : s.value), g = c(() => b.value.sortBy), d = c(() => b.value.order);\n return {\n filesViewConfig: t,\n favoritesViewConfig: s,\n recentViewConfig: n,\n currentConfig: b,\n sortBy: g,\n order: d\n };\n}, ze = {\n name: \"MenuUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Le = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon menu-up-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M7,15L12,10L17,15H7Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Ie = [], Ve = /* @__PURE__ */ k(\n ze,\n Le,\n Ie,\n !1,\n null,\n null,\n null,\n null\n);\nconst Re = Ve.exports, De = {\n name: \"MenuDownIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar He = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon menu-down-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M7,10L12,15L17,10H7Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Me = [], Ae = /* @__PURE__ */ k(\n De,\n He,\n Me,\n !1,\n null,\n null,\n null,\n null\n);\nconst Te = Ae.exports, q = {\n \"file-picker__file-icon\": \"_file-picker__file-icon_1vgv4_5\"\n}, Ue = /* @__PURE__ */ P({\n __name: \"LoadingTableRow\",\n props: {\n showCheckbox: { type: Boolean }\n },\n setup(l) {\n return { __sfc: !0, fileListIconStyles: q };\n }\n});\nvar Ee = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"tr\", { staticClass: \"file-picker__row loading-row\", attrs: { \"aria-hidden\": \"true\" } }, [e.showCheckbox ? i(\"td\", { staticClass: \"row-checkbox\" }, [i(\"span\")]) : e._e(), i(\"td\", { staticClass: \"row-name\" }, [i(\"div\", { staticClass: \"row-wrapper\" }, [i(\"span\", { class: t.fileListIconStyles[\"file-picker__file-icon\"] }), i(\"span\")])]), e._m(0), e._m(1)]);\n}, Oe = [function() {\n var l = this, e = l._self._c;\n return l._self._setupProxy, e(\"td\", { staticClass: \"row-size\" }, [e(\"span\")]);\n}, function() {\n var l = this, e = l._self._c;\n return l._self._setupProxy, e(\"td\", { staticClass: \"row-modified\" }, [e(\"span\")]);\n}], Ze = /* @__PURE__ */ k(\n Ue,\n Ee,\n Oe,\n !1,\n null,\n \"6aded0d9\",\n null,\n null\n);\nconst je = Ze.exports;\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nfunction We(l, e = {}) {\n e = { size: 32, cropPreview: !1, mimeFallback: !0, ...e };\n try {\n const i = l.attributes?.previewUrl || R(\"/core/preview?fileId={fileid}\", {\n fileid: l.fileid\n });\n let t;\n try {\n t = new URL(i);\n } catch {\n t = new URL(i, window.location.origin);\n }\n return t.searchParams.set(\"x\", `${e.size}`), t.searchParams.set(\"y\", `${e.size}`), t.searchParams.set(\"mimeFallback\", `${e.mimeFallback}`), t.searchParams.set(\"a\", e.cropPreview === !0 ? \"0\" : \"1\"), t.searchParams.set(\"c\", `${l.attributes.etag}`), t;\n } catch {\n return null;\n }\n}\nconst Ge = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Ke = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon folder-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, qe = [], Je = /* @__PURE__ */ k(\n Ge,\n Ke,\n qe,\n !1,\n null,\n null,\n null,\n null\n);\nconst J = Je.exports, Qe = {\n name: \"FilePreview\"\n}, Xe = /* @__PURE__ */ P({\n ...Qe,\n props: {\n node: null,\n cropImagePreviews: { type: Boolean }\n },\n setup(l) {\n const e = l, i = u(q), t = c(() => We(e.node, { cropPreview: e.cropImagePreviews })), n = c(() => e.node.type === L.File), s = u(!1);\n return E(t, () => {\n if (s.value = !1, t.value) {\n const r = document.createElement(\"img\");\n r.src = t.value.href, r.onerror = () => r.remove(), r.onload = () => {\n s.value = !0, r.remove();\n }, document.body.appendChild(r);\n }\n }, { immediate: !0 }), { __sfc: !0, fileListIconStyles: i, props: e, previewURL: t, isFile: n, canLoadPreview: s, IconFile: G, IconFolder: J };\n }\n});\nvar Ye = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"div\", { class: t.fileListIconStyles[\"file-picker__file-icon\"], style: t.canLoadPreview ? { backgroundImage: `url(${t.previewURL})` } : void 0 }, [t.canLoadPreview ? e._e() : [t.isFile ? i(t.IconFile, { attrs: { size: 20 } }) : i(t.IconFolder, { attrs: { size: 20 } })]], 2);\n}, et = [], tt = /* @__PURE__ */ k(\n Xe,\n Ye,\n et,\n !1,\n null,\n null,\n null,\n null\n);\nconst it = tt.exports, nt = /* @__PURE__ */ P({\n __name: \"FileListRow\",\n props: {\n allowPickDirectory: { type: Boolean },\n selected: { type: Boolean },\n showCheckbox: { type: Boolean },\n canPick: { type: Boolean },\n node: null,\n cropImagePreviews: { type: Boolean }\n },\n emits: [\"update:selected\", \"enter-directory\"],\n setup(l, { emit: e }) {\n const i = l, t = c(() => i.node.attributes?.displayName || i.node.basename.slice(0, i.node.extension ? -i.node.extension.length : void 0)), n = c(() => i.node.extension), s = c(() => i.node.type === L.Folder), r = c(() => i.canPick && (i.allowPickDirectory || !s.value));\n function b() {\n e(\"update:selected\", !i.selected);\n }\n function g() {\n s.value ? e(\"enter-directory\", i.node) : b();\n }\n function d(a) {\n a.key === \"Enter\" && g();\n }\n return { __sfc: !0, props: i, emit: e, displayName: t, fileExtension: n, isDirectory: s, isPickable: r, toggleSelected: b, handleClick: g, handleKeyDown: d, formatFileSize: ie, NcCheckboxRadioSwitch: O, NcDateTime: ce, t: v, FilePreview: it };\n }\n});\nvar st = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"tr\", e._g({ class: [\"file-picker__row\", {\n \"file-picker__row--selected\": e.selected && !e.showCheckbox\n }], attrs: { tabindex: e.showCheckbox && !t.isDirectory ? void 0 : 0, \"aria-selected\": t.isPickable ? e.selected : void 0, \"data-filename\": e.node.basename, \"data-testid\": \"file-list-row\" } }, {\n click: t.handleClick,\n /* same as tabindex -> if we hide the checkbox or this is a directory we need keyboard access to enter the directory or select the node */\n ...!e.showCheckbox || t.isDirectory ? { keydown: t.handleKeyDown } : {}\n }), [e.showCheckbox ? i(\"td\", { staticClass: \"row-checkbox\", on: { click: function(n) {\n return n.stopPropagation(), (() => {\n }).apply(null, arguments);\n } } }, [i(t.NcCheckboxRadioSwitch, { attrs: { \"aria-label\": t.t(\"Select the row for {nodename}\", { nodename: t.displayName }), checked: e.selected, disabled: !t.isPickable, \"data-testid\": \"row-checkbox\" }, on: { \"update:checked\": t.toggleSelected } })], 1) : e._e(), i(\"td\", { staticClass: \"row-name\" }, [i(\"div\", { staticClass: \"file-picker__name-container\", attrs: { \"data-testid\": \"row-name\" } }, [i(t.FilePreview, { attrs: { node: e.node, \"crop-image-previews\": e.cropImagePreviews } }), i(\"div\", { staticClass: \"file-picker__file-name\", attrs: { title: t.displayName }, domProps: { textContent: e._s(t.displayName) } }), i(\"div\", { staticClass: \"file-picker__file-extension\", domProps: { textContent: e._s(t.fileExtension) } })], 1)]), i(\"td\", { staticClass: \"row-size\" }, [e._v(\" \" + e._s(t.formatFileSize(e.node.size || 0)) + \" \")]), i(\"td\", { staticClass: \"row-modified\" }, [i(t.NcDateTime, { attrs: { timestamp: e.node.mtime, \"ignore-seconds\": !0 } })], 1)]);\n}, lt = [], rt = /* @__PURE__ */ k(\n nt,\n st,\n lt,\n !1,\n null,\n \"48df4f27\",\n null,\n null\n);\nconst at = rt.exports, ot = /* @__PURE__ */ P({\n __name: \"FileList\",\n props: {\n currentView: null,\n multiselect: { type: Boolean },\n allowPickDirectory: { type: Boolean },\n loading: { type: Boolean },\n files: null,\n selectedFiles: null,\n path: null\n },\n emits: [\"update:path\", \"update:selectedFiles\"],\n setup(l, { emit: e }) {\n const i = l, t = u(), { currentConfig: n } = Pe(i.currentView), s = c(() => t.value ?? n.value), r = c(() => s.value.sortBy === \"basename\" ? s.value.order === \"none\" ? void 0 : s.value.order : void 0), b = c(() => s.value.sortBy === \"size\" ? s.value.order === \"none\" ? void 0 : s.value.order : void 0), g = c(() => s.value.sortBy === \"mtime\" ? s.value.order === \"none\" ? void 0 : s.value.order : void 0), d = (o) => {\n s.value.sortBy === o ? s.value.order === \"ascending\" ? t.value = { sortBy: s.value.sortBy, order: \"descending\" } : t.value = { sortBy: s.value.sortBy, order: \"ascending\" } : t.value = { sortBy: o, order: \"ascending\" };\n }, { sortFavoritesFirst: a, cropImagePreviews: p } = K(), B = c(\n () => {\n const o = {\n ascending: (m, f, z) => z(m, f),\n descending: (m, f, z) => z(f, m),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n none: (m, f, z) => 0\n }, C = {\n basename: (m, f) => (m.attributes?.displayName || m.basename).localeCompare(f.attributes?.displayName || f.basename, oe()),\n size: (m, f) => (m.size || 0) - (f.size || 0),\n // reverted because \"young\" is smaller than \"old\"\n mtime: (m, f) => (f.mtime?.getTime?.() || 0) - (m.mtime?.getTime?.() || 0)\n };\n return [...i.files].sort(\n (m, f) => (\n // Folders always come above the files\n (f.type === L.Folder ? 1 : 0) - (m.type === L.Folder ? 1 : 0) || (a ? (f.attributes.favorite ? 1 : 0) - (m.attributes.favorite ? 1 : 0) : 0) || o[s.value.order](m, f, C[s.value.sortBy])\n )\n );\n }\n ), F = c(() => i.files.filter((o) => i.allowPickDirectory || o.type !== L.Folder)), N = c(() => !i.loading && i.selectedFiles.length > 0 && i.selectedFiles.length >= F.value.length);\n function h() {\n i.selectedFiles.length < F.value.length ? e(\"update:selectedFiles\", F.value) : e(\"update:selectedFiles\", []);\n }\n function w(o) {\n i.selectedFiles.includes(o) ? e(\"update:selectedFiles\", i.selectedFiles.filter((C) => C.path !== o.path)) : i.multiselect ? e(\"update:selectedFiles\", [...i.selectedFiles, o]) : e(\"update:selectedFiles\", [o]);\n }\n function S(o) {\n e(\"update:path\", o.path);\n }\n const x = u(4), $ = u();\n {\n const o = () => ee(() => {\n const C = $.value?.parentElement?.children || [];\n let m = $.value?.parentElement?.clientHeight || 450;\n for (let f = 0; f < C.length; f++)\n $.value?.isSameNode(C[f]) || (m -= C[f].clientHeight);\n x.value = Math.floor((m - 50) / 50);\n });\n I(() => {\n window.addEventListener(\"resize\", o), o();\n }), Y(() => {\n window.removeEventListener(\"resize\", o);\n });\n }\n return { __sfc: !0, props: i, emit: e, customSortingConfig: t, filesAppSorting: n, sortingConfig: s, sortByName: r, sortBySize: b, sortByModified: g, toggleSorting: d, sortFavoritesFirst: a, cropImagePreviews: p, sortedFiles: B, selectableFiles: F, allSelected: N, onSelectAll: h, onNodeSelected: w, onChangeDirectory: S, skeletonNumber: x, fileContainer: $, NcButton: Z, NcCheckboxRadioSwitch: O, t: v, IconSortAscending: Re, IconSortDescending: Te, LoadingTableRow: je, FileListRow: at };\n }\n});\nvar ct = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"div\", { ref: \"fileContainer\", staticClass: \"file-picker__files\" }, [i(\"table\", [i(\"thead\", [i(\"tr\", [e.multiselect ? i(\"th\", { staticClass: \"row-checkbox\" }, [i(\"span\", { staticClass: \"hidden-visually\" }, [e._v(\" \" + e._s(t.t(\"Select entry\")) + \" \")]), e.multiselect ? i(t.NcCheckboxRadioSwitch, { attrs: { \"aria-label\": t.t(\"Select all entries\"), checked: t.allSelected, \"data-testid\": \"select-all-checkbox\" }, on: { \"update:checked\": t.onSelectAll } }) : e._e()], 1) : e._e(), i(\"th\", { staticClass: \"row-name\", attrs: { \"aria-sort\": t.sortByName } }, [i(\"div\", { staticClass: \"header-wrapper\" }, [i(\"span\", { staticClass: \"file-picker__header-preview\" }), i(t.NcButton, { attrs: { wide: !0, type: \"tertiary\", \"data-test\": \"file-picker_sort-name\" }, on: { click: function(n) {\n return t.toggleSorting(\"basename\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t.sortByName === \"ascending\" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByName === \"descending\" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i(\"span\", { staticStyle: { width: \"44px\" } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(t.t(\"Name\")) + \" \")])], 1)]), i(\"th\", { staticClass: \"row-size\", attrs: { \"aria-sort\": t.sortBySize } }, [i(t.NcButton, { attrs: { wide: !0, type: \"tertiary\" }, on: { click: function(n) {\n return t.toggleSorting(\"size\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t.sortBySize === \"ascending\" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortBySize === \"descending\" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i(\"span\", { staticStyle: { width: \"44px\" } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(t.t(\"Size\")) + \" \")])], 1), i(\"th\", { staticClass: \"row-modified\", attrs: { \"aria-sort\": t.sortByModified } }, [i(t.NcButton, { attrs: { wide: !0, type: \"tertiary\" }, on: { click: function(n) {\n return t.toggleSorting(\"mtime\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t.sortByModified === \"ascending\" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByModified === \"descending\" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i(\"span\", { staticStyle: { width: \"44px\" } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(t.t(\"Modified\")) + \" \")])], 1)])]), i(\"tbody\", [e.loading ? e._l(t.skeletonNumber, function(n) {\n return i(t.LoadingTableRow, { key: n, attrs: { \"show-checkbox\": e.multiselect } });\n }) : e._l(t.sortedFiles, function(n) {\n return i(t.FileListRow, { key: n.fileid || n.path, attrs: { \"allow-pick-directory\": e.allowPickDirectory, \"show-checkbox\": e.multiselect, \"can-pick\": e.multiselect || e.selectedFiles.length === 0 || e.selectedFiles.includes(n), selected: e.selectedFiles.includes(n), node: n, \"crop-image-previews\": t.cropImagePreviews }, on: { \"update:selected\": function(s) {\n return t.onNodeSelected(n);\n }, \"enter-directory\": t.onChangeDirectory } });\n })], 2)])]);\n}, ut = [], dt = /* @__PURE__ */ k(\n ot,\n ct,\n ut,\n !1,\n null,\n \"d3c94818\",\n null,\n null\n);\nconst ft = dt.exports, pt = {\n name: \"HomeIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _t = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon home-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, mt = [], vt = /* @__PURE__ */ k(\n pt,\n _t,\n mt,\n !1,\n null,\n null,\n null,\n null\n);\nconst gt = vt.exports, yt = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar ht = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, wt = [], bt = /* @__PURE__ */ k(\n yt,\n ht,\n wt,\n !1,\n null,\n null,\n null,\n null\n);\nconst kt = bt.exports, Ct = /* @__PURE__ */ P({\n __name: \"FilePickerBreadcrumbs\",\n props: {\n path: null,\n showMenu: { type: Boolean }\n },\n emits: [\"update:path\", \"create-node\"],\n setup(l, { emit: e }) {\n const i = l, t = u(!1), n = u(\"\"), s = u();\n function r() {\n const d = n.value.trim(), a = s.value?.$el?.querySelector(\"input\");\n let p = \"\";\n return d.length === 0 ? p = v(\"Folder name cannot be empty.\") : d.includes(\"/\") ? p = v('\"/\" is not allowed inside a folder name.') : [\"..\", \".\"].includes(d) ? p = v('\"{name}\" is an invalid folder name.', { name: d }) : window.OC.config?.blacklist_files_regex && d.match(window.OC.config?.blacklist_files_regex) && (p = v('\"{name}\" is not an allowed folder name', { name: d })), a && a.setCustomValidity(p), p === \"\";\n }\n const b = function() {\n const d = n.value.trim();\n r() && (t.value = !1, e(\"create-node\", d), n.value = \"\");\n }, g = c(\n () => i.path.split(\"/\").filter((d) => d !== \"\").map((d, a, p) => ({\n name: d,\n path: \"/\" + p.slice(0, a + 1).join(\"/\")\n }))\n );\n return { __sfc: !0, props: i, emit: e, actionsOpen: t, newNodeName: n, nameInput: s, validateInput: r, onSubmit: b, pathElements: g, IconFolder: J, IconHome: gt, IconPlus: kt, NcActions: ue, NcActionInput: de, NcBreadcrumbs: fe, NcBreadcrumb: pe, t: v };\n }\n});\nvar Ft = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(t.NcBreadcrumbs, { staticClass: \"file-picker__breadcrumbs\", scopedSlots: e._u([{ key: \"default\", fn: function() {\n return [i(t.NcBreadcrumb, { attrs: { name: t.t(\"All files\"), title: t.t(\"Home\") }, on: { click: function(n) {\n return t.emit(\"update:path\", \"/\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconHome, { attrs: { size: 20 } })];\n }, proxy: !0 }]) }), e._l(t.pathElements, function(n) {\n return i(t.NcBreadcrumb, { key: n.path, attrs: { name: n.name, title: n.path }, on: { click: function(s) {\n return t.emit(\"update:path\", n.path);\n } } });\n })];\n }, proxy: !0 }, e.showMenu ? { key: \"actions\", fn: function() {\n return [i(t.NcActions, { attrs: { \"aria-label\": t.t(\"Create directory\"), \"force-menu\": !0, \"force-name\": !0, \"menu-name\": t.t(\"New\"), open: t.actionsOpen, type: \"secondary\" }, on: { \"update:open\": function(n) {\n t.actionsOpen = n;\n }, close: function(n) {\n t.newNodeName = \"\";\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconPlus, { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !1, 2971667417) }, [i(t.NcActionInput, { ref: \"nameInput\", attrs: { value: t.newNodeName, label: t.t(\"New folder\"), placeholder: t.t(\"New folder name\") }, on: { \"update:value\": function(n) {\n t.newNodeName = n;\n }, submit: t.onSubmit, input: t.validateInput }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconFolder, { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !1, 1614167509) })], 1)];\n }, proxy: !0 } : null], null, !0) });\n}, St = [], $t = /* @__PURE__ */ k(\n Ct,\n Ft,\n St,\n !1,\n null,\n \"22cbb5df\",\n null,\n null\n);\nconst Nt = $t.exports, xt = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Bt = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon close-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Pt = [], zt = /* @__PURE__ */ k(\n xt,\n Bt,\n Pt,\n !1,\n null,\n null,\n null,\n null\n);\nconst Lt = zt.exports, It = {\n name: \"MagnifyIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Vt = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon magnify-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Rt = [], Dt = /* @__PURE__ */ k(\n It,\n Vt,\n Rt,\n !1,\n null,\n null,\n null,\n null\n);\nconst Ht = Dt.exports;\n/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nconst Mt = (l) => {\n const e = [\n {\n id: \"files\",\n label: v(\"All files\"),\n icon: ke\n },\n {\n id: \"recent\",\n label: v(\"Recent\"),\n icon: Ce\n },\n {\n id: \"favorites\",\n label: v(\"Favorites\"),\n icon: Fe\n }\n ], i = l.value ? e.filter(({ id: t }) => t === \"files\") : e;\n return {\n allViews: e,\n availableViews: i\n };\n}, At = /* @__PURE__ */ P({\n __name: \"FilePickerNavigation\",\n props: {\n currentView: null,\n filterString: null,\n isCollapsed: { type: Boolean },\n disabledNavigation: { type: Boolean }\n },\n emits: [\"update:currentView\", \"update:filterString\"],\n setup(l, { emit: e }) {\n const i = l, { availableViews: t } = Mt(u(we() === null)), n = c(() => t.filter((r) => r.id === i.currentView)[0] ?? t[0]);\n return { __sfc: !0, props: i, emit: e, availableViews: t, currentViewObject: n, updateFilterValue: (r) => e(\"update:filterString\", r), IconClose: Lt, IconMagnify: Ht, NcButton: Z, NcIconSvgWrapper: _e, NcSelect: me, NcTextField: ve, Fragment: be, t: v };\n }\n});\nvar Tt = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(t.Fragment, [i(t.NcTextField, { staticClass: \"file-picker__filter-input\", attrs: { value: e.filterString, label: t.t(\"Filter file list\"), \"show-trailing-button\": !!e.filterString }, on: { \"update:value\": t.updateFilterValue, \"trailing-button-click\": function(n) {\n return t.updateFilterValue(\"\");\n } }, scopedSlots: e._u([{ key: \"trailing-button-icon\", fn: function() {\n return [i(t.IconClose, { attrs: { size: 16 } })];\n }, proxy: !0 }]) }, [i(t.IconMagnify, { attrs: { size: 16 } })], 1), t.availableViews.length > 1 && !e.disabledNavigation ? [e.isCollapsed ? i(t.NcSelect, { attrs: { \"aria-label\": t.t(\"Current view selector\"), clearable: !1, searchable: !1, options: t.availableViews, value: t.currentViewObject }, on: { input: (n) => t.emit(\"update:currentView\", n.id) } }) : i(\"ul\", { staticClass: \"file-picker__side\" }, e._l(t.availableViews, function(n) {\n return i(\"li\", { key: n.id }, [i(t.NcButton, { attrs: { type: e.currentView === n.id ? \"primary\" : \"tertiary\", wide: !0 }, on: { click: function(s) {\n return e.$emit(\"update:currentView\", n.id);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.NcIconSvgWrapper, { attrs: { path: n.icon, size: 20 } })];\n }, proxy: !0 }], null, !0) }, [e._v(\" \" + e._s(n.label) + \" \")])], 1);\n }), 0)] : e._e()], 2);\n}, Ut = [], Et = /* @__PURE__ */ k(\n At,\n Tt,\n Ut,\n !1,\n null,\n \"a06474d4\",\n null,\n null\n);\nconst Ot = Et.exports;\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst Zt = function(l, e, i) {\n const t = c(() => i.value ? \"/\" : ne), n = c(() => i.value ? he(\"webdav\").replace(\"/remote.php\", \"/public.php\") : se), s = c(() => {\n if (i.value) {\n const h = document.getElementById(\"sharingToken\").value, w = btoa(`${h}:null`);\n return H(n.value, {\n Authorization: `Basic ${w}`\n });\n }\n return H();\n }), r = (h) => re(h, t.value, n.value), b = () => {\n const h = new AbortController(), w = Math.round(Date.now() / 1e3) - 60 * 60 * 24 * 14;\n return new U(async (S, x, $) => {\n $(() => h.abort());\n try {\n const { data: o } = await s.value.search(\"/\", {\n signal: h.signal,\n details: !0,\n data: ae(w)\n }), C = o.results.map(r);\n S(C);\n } catch (o) {\n x(o);\n }\n });\n }, g = () => {\n const h = new AbortController();\n return new U(async (w, S, x) => {\n x(() => h.abort());\n try {\n let o = (await s.value.getDirectoryContents(`${t.value}${e.value}`, {\n signal: h.signal,\n details: !0,\n data: M()\n })).data.map(r);\n i.value && (o = o.filter((C) => C.path !== e.value)), w(o);\n } catch ($) {\n S($);\n }\n });\n }, d = u([]), a = u(!0), p = u(null);\n async function B(h) {\n const w = T(e.value, h);\n await s.value.createDirectory(T(t.value, w));\n const S = await F(w);\n return d.value.push(S), S;\n }\n async function F(h, w = void 0) {\n w = w ?? t.value;\n const { data: S } = await s.value.stat(`${w}${h}`, {\n details: !0,\n data: M()\n });\n return r(S);\n }\n async function N() {\n p.value && p.value.cancel(), a.value = !0, l.value === \"favorites\" ? p.value = le(s.value, e.value, t.value) : l.value === \"recent\" ? p.value = b() : p.value = g(), d.value = await p.value, p.value = null, a.value = !1;\n }\n return E([l, e], () => N()), I(() => N()), {\n isLoading: a,\n files: d,\n loadFiles: N,\n getFile: F,\n createDirectory: B\n };\n};\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst jt = function(l) {\n const e = c(() => l.value.map((t) => t.split(\"/\")));\n return {\n isSupportedMimeType: (t) => {\n const n = t.split(\"/\");\n return e.value.some(\n ([s, r]) => (\n // check mime type matches or is wildcard\n (n[0] === s || s === \"*\") && (n[1] === r || r === \"*\")\n )\n );\n }\n };\n}, Wt = {\n name: \"FilePicker\"\n}, Gt = /* @__PURE__ */ P({\n ...Wt,\n props: {\n buttons: null,\n name: null,\n allowPickDirectory: { type: Boolean, default: !1 },\n disabledNavigation: { type: Boolean, default: !1 },\n container: { default: \"body\" },\n filterFn: { default: void 0 },\n mimetypeFilter: { default: () => [] },\n multiselect: { type: Boolean, default: !0 },\n path: { default: void 0 }\n },\n emits: [\"close\"],\n setup(l, { emit: e }) {\n const i = l, { isPublic: t } = D(), n = u(!0), s = c(() => (typeof i.buttons == \"function\" ? i.buttons(a.value, F.value, g.value) : i.buttons).map((y) => ({\n ...y,\n callback: () => {\n r = !0, b(y.callback);\n }\n })));\n let r = !1;\n const b = async (_) => {\n const y = a.value.length === 0 && i.allowPickDirectory ? [await $(F.value)] : a.value;\n _(y), e(\"close\", y), r = !1;\n }, g = u(\"files\"), d = c(() => g.value === \"favorites\" ? v(\"Favorites\") : g.value === \"recent\" ? v(\"Recent\") : \"\"), a = u([]), p = u(window?.sessionStorage.getItem(\"NC.FilePicker.LastPath\") || \"/\"), B = u(), F = c({\n // Only use the path for the files view as favorites and recent only works on the root\n get: () => g.value === \"files\" ? B.value || i.path || p.value : \"/\",\n /**\n * Navigate to the new path and save it to the session storage\n *\n * @param path The new path\n */\n set: (_) => {\n i.path === void 0 && window.sessionStorage.setItem(\"NC.FilePicker.LastPath\", _), B.value = _, a.value = [];\n }\n }), N = u(\"\"), { isSupportedMimeType: h } = jt(te(i, \"mimetypeFilter\")), { files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o } = Zt(g, F, t);\n I(() => x());\n const { showHiddenFiles: C } = K(), m = c(() => {\n let _ = w.value;\n return C.value || (_ = _.filter((y) => !y.basename.startsWith(\".\"))), i.mimetypeFilter.length > 0 && (_ = _.filter((y) => y.type === \"folder\" || y.mime && h(y.mime))), N.value && (_ = _.filter((y) => y.basename.toLowerCase().includes(N.value.toLowerCase()))), i.filterFn && (_ = _.filter((y) => i.filterFn(y))), _;\n }), f = c(() => g.value === \"files\" ? v(\"Upload some content or sync with your devices!\") : g.value === \"recent\" ? v(\"Files and folders you recently modified will show up here.\") : v(\"Files and folders you mark as favorite will show up here.\"));\n return { __sfc: !0, props: i, emit: e, isPublic: t, isOpen: n, dialogButtons: s, isHandlingCallback: r, handleButtonClick: b, currentView: g, viewHeadline: d, selectedFiles: a, savedPath: p, navigatedPath: B, currentPath: F, filterString: N, isSupportedMimeType: h, files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o, showHiddenFiles: C, filteredFiles: m, noFilesDescription: f, onCreateFolder: async (_) => {\n try {\n const y = await o(_);\n F.value = y.path, Se(\"files:node:created\", w.value.filter((Q) => Q.basename === _)[0]);\n } catch (y) {\n console.warn(\"Could not create new folder\", { name: _, error: y }), V(v(\"Could not create the new folder\"));\n }\n }, handleClose: (_) => {\n !_ && !r && e(\"close\");\n }, IconFile: G, FileList: ft, FilePickerBreadcrumbs: Nt, FilePickerNavigation: Ot, NcDialog: ge, NcEmptyContent: ye, t: v };\n }\n});\nvar Kt = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(t.NcDialog, { attrs: { container: e.container, buttons: t.dialogButtons, name: e.name, size: \"large\", \"content-classes\": \"file-picker__content\", \"dialog-classes\": \"file-picker\", \"navigation-classes\": \"file-picker__navigation\", open: t.isOpen }, on: { \"update:open\": [function(n) {\n t.isOpen = n;\n }, t.handleClose] }, scopedSlots: e._u([{ key: \"navigation\", fn: function({ isCollapsed: n }) {\n return [i(t.FilePickerNavigation, { attrs: { \"is-collapsed\": n, \"current-view\": t.currentView, \"filter-string\": t.filterString, \"disabled-navigation\": e.disabledNavigation }, on: { \"update:currentView\": function(s) {\n t.currentView = s;\n }, \"update:current-view\": function(s) {\n t.currentView = s;\n }, \"update:filterString\": function(s) {\n t.filterString = s;\n }, \"update:filter-string\": function(s) {\n t.filterString = s;\n } } })];\n } }]) }, [i(\"div\", { staticClass: \"file-picker__main\" }, [t.currentView === \"files\" ? i(t.FilePickerBreadcrumbs, { attrs: { path: t.currentPath, \"show-menu\": e.allowPickDirectory }, on: { \"update:path\": function(n) {\n t.currentPath = n;\n }, \"create-node\": t.onCreateFolder } }) : i(\"div\", { staticClass: \"file-picker__view\" }, [i(\"h3\", [e._v(e._s(t.viewHeadline))])]), t.isLoading || t.filteredFiles.length > 0 ? i(t.FileList, { attrs: { \"allow-pick-directory\": e.allowPickDirectory, \"current-view\": t.currentView, files: t.filteredFiles, multiselect: e.multiselect, loading: t.isLoading, path: t.currentPath, \"selected-files\": t.selectedFiles, name: t.viewHeadline }, on: { \"update:path\": [function(n) {\n t.currentPath = n;\n }, function(n) {\n t.currentView = \"files\";\n }], \"update:selectedFiles\": function(n) {\n t.selectedFiles = n;\n }, \"update:selected-files\": function(n) {\n t.selectedFiles = n;\n } } }) : t.filterString ? i(t.NcEmptyContent, { attrs: { name: t.t(\"No matching files\"), description: t.t(\"No files matching your filter were found.\") }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconFile)];\n }, proxy: !0 }]) }) : i(t.NcEmptyContent, { attrs: { name: t.t(\"No files in here\"), description: t.noFilesDescription }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconFile)];\n }, proxy: !0 }]) })], 1)]);\n}, qt = [], Jt = /* @__PURE__ */ k(\n Gt,\n Kt,\n qt,\n !1,\n null,\n \"6ff1b36b\",\n null,\n null\n);\nconst pi = Jt.exports;\nexport {\n pi as default\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/federatedfilesharing-external.js b/dist/federatedfilesharing-external.js new file mode 100644 index 0000000000000..697d5c2903b71 --- /dev/null +++ b/dist/federatedfilesharing-external.js @@ -0,0 +1,6 @@ +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ +/******/ +/******/ })() +; \ No newline at end of file diff --git a/dist/federatedfilesharing-external.js.map b/dist/federatedfilesharing-external.js.map new file mode 100644 index 0000000000000..41afe34fee26f --- /dev/null +++ b/dist/federatedfilesharing-external.js.map @@ -0,0 +1 @@ +{"version":3,"file":"federatedfilesharing-external.js?v=5aa0b13c1846da983827","mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AClDA;;;;;AEAA;AACA;AACA;AACA;AACA","sources":["webpack:///nextcloud/apps/federatedfilesharing/src/external.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/before-startup","webpack:///nextcloud/webpack/startup","webpack:///nextcloud/webpack/after-startup"],"sourcesContent":["/**\n * Copyright (c) 2014 Robin Appelman \n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nwindow.OCA.Sharing = window.OCA.Sharing || {};\n\n/**\n * Shows \"add external share\" dialog.\n *\n * @param {object} share the share\n * @param {string} share.remote remote server URL\n * @param {string} share.owner owner name\n * @param {string} share.name name of the shared folder\n * @param {string} share.token authentication token\n * @param {boolean} passwordProtected true if the share is password protected\n * @param {Function} callback the callback\n */\nwindow.OCA.Sharing.showAddExternalDialog = function (share, passwordProtected, callback) {\n const remote = share.remote;\n const owner = share.ownerDisplayName || share.owner;\n const name = share.name;\n\n // Clean up the remote URL for display\n const remoteClean = remote.replace(/^https?:\\/\\//, '') // remove http:// or https://\n .replace(/\\/$/, ''); // remove trailing slash\n\n if (!passwordProtected) {\n window.OC.dialogs.confirm(t('files_sharing', 'Do you want to add the remote share {name} from {owner}@{remote}?', {\n name,\n owner,\n remote: remoteClean\n }), t('files_sharing', 'Remote share'), function (result) {\n callback(result, share);\n }, true).then(this._adjustDialog);\n } else {\n window.OC.dialogs.prompt(t('files_sharing', 'Do you want to add the remote share {name} from {owner}@{remote}?', {\n name,\n owner,\n remote: remoteClean\n }), t('files_sharing', 'Remote share'), function (result, password) {\n share.password = password;\n callback(result, share);\n }, true, t('files_sharing', 'Remote share password'), true).then(this._adjustDialog);\n }\n};\nwindow.OCA.Sharing._adjustDialog = function () {\n const $dialog = $('.oc-dialog:visible');\n const $buttons = $dialog.find('button');\n // hack the buttons\n $dialog.find('.ui-icon').remove();\n $buttons.eq(1).text(t('core', 'Cancel'));\n $buttons.eq(2).text(t('files_sharing', 'Add remote share'));\n};\nconst reloadFilesList = function () {\n var _window;\n if (!((_window = window) !== null && _window !== void 0 && (_window = _window.OCP) !== null && _window !== void 0 && (_window = _window.Files) !== null && _window !== void 0 && (_window = _window.Router) !== null && _window !== void 0 && _window.goToRoute)) {\n // No router, just reload the page\n window.location.reload();\n return;\n }\n\n // Let's redirect to the root as any accepted share would be there\n window.OCP.Files.Router.goToRoute(null, {\n ...this.$route.params,\n fileid: undefined\n }, {\n ...this.$route.query,\n openfile: undefined\n });\n};\n\n/**\n * Process incoming remote share that might have been passed\n * through the URL\n */\nconst processIncomingShareFromUrl = function () {\n const params = window.OC.Util.History.parseUrlQuery();\n\n // manually add server-to-server share\n if (params.remote && params.token && params.name) {\n const callbackAddShare = function (result, share) {\n const password = share.password || '';\n if (result) {\n $.post(generateUrl('apps/federatedfilesharing/askForFederatedShare'), {\n remote: share.remote,\n token: share.token,\n owner: share.owner,\n ownerDisplayName: share.ownerDisplayName || share.owner,\n name: share.name,\n password\n }).done(function (data) {\n if (data.hasOwnProperty('legacyMount')) {\n reloadFilesList();\n } else {\n window.OC.Notification.showTemporary(data.message);\n }\n }).fail(function (data) {\n window.OC.Notification.showTemporary(JSON.parse(data.responseText).message);\n });\n }\n };\n\n // clear hash, it is unlikely that it contain any extra parameters\n location.hash = '';\n params.passwordProtected = parseInt(params.protected, 10) === 1;\n window.OCA.Sharing.showAddExternalDialog(params, params.passwordProtected, callbackAddShare);\n }\n};\n\n/**\n * Retrieve a list of remote shares that need to be approved\n */\nconst processSharesToConfirm = function () {\n // check for new server-to-server shares which need to be approved\n $.get(generateUrl('/apps/files_sharing/api/externalShares'), {}, function (shares) {\n let index;\n for (index = 0; index < shares.length; ++index) {\n window.OCA.Sharing.showAddExternalDialog(shares[index], false, function (result, share) {\n if (result) {\n // Accept\n $.post(generateUrl('/apps/files_sharing/api/externalShares'), {\n id: share.id\n }).then(function () {\n reloadFilesList();\n });\n } else {\n // Delete\n $.ajax({\n url: generateUrl('/apps/files_sharing/api/externalShares/' + share.id),\n type: 'DELETE'\n });\n }\n });\n }\n });\n};\nprocessIncomingShareFromUrl();\nif (loadState('federatedfilesharing', 'notificationsEnabled', true) !== true) {\n // No notification app, display the modal\n processSharesToConfirm();\n}\n$('body').on('window.OCA.Notification.Action', function (e) {\n if (e.notification.app === 'files_sharing' && e.notification.object_type === 'remote_share' && e.action.type === 'POST') {\n // User accepted a remote share reload\n reloadFilesList();\n }\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\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\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};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"federatedfilesharing-external\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"core-common\"], () => (__webpack_require__(\"./apps/federatedfilesharing/src/external.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js b/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js new file mode 100644 index 0000000000000..839a561057f2b --- /dev/null +++ b/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js @@ -0,0 +1,44 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs"],{ + +/***/ "./node_modules/@nextcloud/dialogs/dist/chunks/index-CqRCpcyw.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/@nextcloud/dialogs/dist/chunks/index-CqRCpcyw.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ FilePickerVue: () => (/* binding */ i) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); + +/** + * @copyright Copyright (c) 2023 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +const i = (0,vue__WEBPACK_IMPORTED_MODULE_0__.defineAsyncComponent)(() => Promise.all(/*! import() */[__webpack_require__.e("core-common"), __webpack_require__.e("data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b")]).then(__webpack_require__.bind(__webpack_require__, /*! ./FilePicker-pvhGKHps.mjs */ "./node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs"))); + + + +/***/ }) + +}]); +//# sourceMappingURL=node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map?v=5b50eddb49f5dac2045c \ No newline at end of file diff --git a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map b/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map new file mode 100644 index 0000000000000..0579b9648a21e --- /dev/null +++ b/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js?v=5b50eddb49f5dac2045c","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA","sources":["webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/chunks/index-CqRCpcyw.mjs"],"sourcesContent":["import { defineAsyncComponent as e } from \"vue\";\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst i = e(() => import(\"./FilePicker-pvhGKHps.mjs\"));\nexport {\n i as FilePickerVue\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js b/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js new file mode 100644 index 0000000000000..d498b00fc1fdb --- /dev/null +++ b/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js @@ -0,0 +1,710 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs"],{ + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css": +/*!**********************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css ***! + \**********************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.node-picker__wrapper[data-v-f85db9fe]:not(:last-of-type) { + border-bottom: 1px solid var(--color-border); +} +.node-picker[data-v-f85db9fe] { + display: flex; + align-items: center; + height: 64px; +} +.node-picker__icon[data-v-f85db9fe], +.node-picker__preview[data-v-f85db9fe] { + height: 64px; + width: 64px; + margin: 0 var(--secondary-margin); + display: block; + flex: 0 0 64px; +} +.node-picker__icon[data-v-f85db9fe] { + color: var(--color-text-maxcontrast); +} +.node-picker__icon.folder-icon[data-v-f85db9fe] { + color: var(--color-primary-element); +} +.node-picker__preview[data-v-f85db9fe] { + overflow: hidden; + border-radius: calc(var(--border-radius) * 2); + background-position: center; + background-size: cover; +} +.node-picker__desc[data-v-f85db9fe] { + display: flex; + flex-direction: column; +} +.node-picker__desc span[data-v-f85db9fe] { + white-space: nowrap; +} +[data-v-12c4204f] .modal-container__content { + display: flex; + overflow: visible; + flex-direction: column; +} +.conflict-picker[data-v-12c4204f] { + --margin: 36px; + --secondary-margin: 18px; +} +.conflict-picker__header[data-v-12c4204f] { + position: sticky; + z-index: 10; + top: 0; + padding: 0 var(--margin); + padding-bottom: var(--secondary-margin); +} +.conflict-picker__form[data-v-12c4204f] { + position: relative; + overflow: auto; + padding: 0 var(--margin); + margin-top: calc(-1 * var(--secondary-margin)); +} +.conflict-picker fieldset[data-v-12c4204f] { + display: grid; + width: 100%; + margin-top: calc(var(--secondary-margin) * 1.5); + padding-bottom: var(--secondary-margin); + grid-template-columns: 1fr 1fr; +} +.conflict-picker fieldset[data-v-12c4204f] legend { + display: flex; + align-items: center; + width: 100%; + margin-bottom: calc(var(--secondary-margin) / 2); +} +.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] { + position: sticky; + top: 0; + margin: 0; + padding: var(--secondary-margin) 0; + background-image: + linear-gradient( + to top, + transparent, + var(--color-main-background-blur) 10%, + var(--color-main-background) 15%); +} +.conflict-picker fieldset.conflict-picker__all + fieldset[data-v-12c4204f] { + margin-top: 0; +} +.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] label { + font-weight: 700; +} +.conflict-picker .button-vue--disabled[data-v-12c4204f] { + cursor: default; + opacity: .5; + filter: saturate(.7); +} +.conflict-picker[data-v-12c4204f] .dialog__actions { + width: auto; + margin-inline: 12px; +} +.conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator { + margin-left: auto; +} +@media screen and (max-width: 768px) { + .conflict-picker[data-v-12c4204f] { + --margin: var(--secondary-margin) !important; + } + .conflict-picker__description[data-v-12c4204f] { + display: none !important; + } + .conflict-picker fieldset[data-v-12c4204f] { + grid-template-columns: 1fr !important; + } + .conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] { + position: static; + } +} +@media screen and (max-width: 512px) { + .conflict-picker[data-v-12c4204f] .dialog__actions { + flex-wrap: wrap; + } + .conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator { + width: 100%; + } +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css": +/*!********************************************************************************!*\ + !*** ./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../css-loader/dist/cjs.js!./ConflictPicker-BVcoqXxT.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-Bif6rCp6.mjs": +/*!********************************************************************************!*\ + !*** ./node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-Bif6rCp6.mjs ***! + \********************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ ae) +/* harmony export */ }); +/* harmony import */ var _assets_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../assets/ConflictPicker-BVcoqXxT.css */ "./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css"); +/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "./node_modules/path/path.js"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _nextcloud_files__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/files */ "./node_modules/@nextcloud/files/dist/index.mjs"); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index-DM2X1kc6.mjs */ "./node_modules/@nextcloud/upload/dist/chunks/index-DM2X1kc6.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js */ "./node_modules/@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDialog.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDialog.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDateTime.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDateTime.mjs"); + + + + + + + + + + + +const b = { + name: "ArrowRightIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var x = function() { + var e = this, t = e._self._c; + return t("span", e._b({ staticClass: "material-design-icon arrow-right-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { + return e.$emit("click", s); + } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, N = [], $ = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( + b, + x, + N, + !1, + null, + null, + null, + null +); +const L = $.exports, z = { + name: "CloseIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var F = function() { + var e = this, t = e._self._c; + return t("span", e._b({ staticClass: "material-design-icon close-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { + return e.$emit("click", s); + } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, P = [], A = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( + z, + F, + P, + !1, + null, + null, + null, + null +); +const R = A.exports, I = { + name: "FileIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var B = function() { + var e = this, t = e._self._c; + return t("span", e._b({ staticClass: "material-design-icon file-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { + return e.$emit("click", s); + } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, E = [], O = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( + I, + B, + E, + !1, + null, + null, + null, + null +); +const M = O.exports, U = { + name: "FolderIcon", + emits: ["click"], + props: { + title: { + type: String + }, + fillColor: { + type: String, + default: "currentColor" + }, + size: { + type: Number, + default: 24 + } + } +}; +var V = function() { + var e = this, t = e._self._c; + return t("span", e._b({ staticClass: "material-design-icon folder-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { + return e.$emit("click", s); + } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); +}, q = [], D = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( + U, + V, + q, + !1, + null, + null, + null, + null +); +const T = D.exports, h = 64, H = (0,vue__WEBPACK_IMPORTED_MODULE_10__.defineComponent)({ + name: "NodesPicker", + components: { + FileSvg: M, + FolderSvg: T, + NcCheckboxRadioSwitch: _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_5__["default"], + NcDateTime: _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_9__["default"] + }, + props: { + incoming: { + type: [File, Object], + required: !0 + }, + existing: { + type: Object, + required: !0 + }, + newSelected: { + type: Array, + required: !0 + }, + oldSelected: { + type: Array, + required: !0 + } + }, + data() { + return { + asyncPreview: null + }; + }, + computed: { + /** + * Whether the incoming or existing file is selected. + * This is used by the parent component to ensure + * that the user has selected at least one of the two files. + */ + isEnoughSelected() { + return this.isChecked(this.incoming, this.newSelected) || this.isChecked(this.existing, this.oldSelected); + }, + incomingPreview() { + return this.asyncPreview ? this.asyncPreview : this.previewUrl(this.incoming); + }, + existingPreview() { + return this.previewUrl(this.existing); + }, + incomingLastModified() { + return this.lastModified(this.incoming); + }, + existingLastModified() { + return this.lastModified(this.existing); + } + }, + methods: { + lastModified(i) { + return (i instanceof File ? new Date(i.lastModified) : i.mtime) ?? null; + }, + size(i) { + return i.size ? (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_2__.formatFileSize)(i.size, !0) : (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t)("Unknown size"); + }, + previewUrl(i) { + if (i instanceof File) { + this.previewImage(i).then((e) => { + this.asyncPreview = e; + }); + return; + } + if (i.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_2__.FileType.Folder) + return null; + try { + const e = i.attributes.previewUrl || (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_8__.generateUrl)("/core/preview?fileId={fileid}", { + fileid: i.fileid + }), t = new URL(window.location.origin + e); + return t.searchParams.set("x", h.toString()), t.searchParams.set("y", h.toString()), t.searchParams.set("mimeFallback", "true"), t.href; + } catch { + return null; + } + }, + isFolder(i) { + return i.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_2__.FileType.Folder || i.type === "httpd/unix-directory"; + }, + isChecked(i, e) { + return e.includes(i); + }, + onUpdateIncomingChecked(i) { + i ? this.$emit("update:newSelected", [this.incoming, ...this.newSelected]) : this.$emit("update:newSelected", this.newSelected.filter((e) => e !== this.incoming)); + }, + onUpdateExistingChecked(i) { + i ? this.$emit("update:oldSelected", [this.existing, ...this.oldSelected]) : this.$emit("update:oldSelected", this.oldSelected.filter((e) => e !== this.existing)); + }, + /** + * Get the preview Image of a file + * @param file the soon-to-be-uploaded File + */ + async previewImage(i) { + return new Promise((e) => { + if (i.type.startsWith("image/")) { + const t = new FileReader(); + t.onload = async (s) => { + const l = s?.target?.result; + if (l instanceof ArrayBuffer) { + const n = new Blob([l], { type: i.type }), c = URL.createObjectURL(n); + e(c); + return; + } + e(null); + }, t.readAsArrayBuffer(i); + } + }); + }, + t: _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t + } +}); +var Z = function() { + var e = this, t = e._self._c; + return e._self._setupProxy, t("fieldset", { staticClass: "node-picker__wrapper", attrs: { "data-cy-conflict-picker-fieldset": e.existing.basename } }, [t("legend", [e._v(e._s(e.existing.basename))]), t("NcCheckboxRadioSwitch", { attrs: { checked: e.isChecked(e.incoming, e.newSelected), required: !e.isEnoughSelected, "data-cy-conflict-picker-input-incoming": e.existing.basename }, on: { "update:checked": e.onUpdateIncomingChecked } }, [t("span", { staticClass: "node-picker node-picker--incoming" }, [e.incomingPreview ? t("img", { staticClass: "node-picker__preview", attrs: { src: e.incomingPreview, alt: e.t("Preview image"), loading: "lazy" } }) : [e.isFolder(e.existing) ? t("FolderSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } }) : t("FileSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } })], t("span", { staticClass: "node-picker__desc" }, [t("span", { staticClass: "node-picker__name" }, [e._v(e._s(e.t("New version")))]), e.incomingLastModified ? t("NcDateTime", { staticClass: "node-picker__mtime", attrs: { timestamp: e.incomingLastModified, "relative-time": !1, format: { timeStyle: "short", dateStyle: "medium" } } }) : t("span", { staticClass: "node-picker__mtime" }, [e._v(" " + e._s(e.t("Last modified date unknown")) + " ")]), t("span", { staticClass: "node-picker__size" }, [e._v(e._s(e.size(e.incoming)))])], 1)], 2)]), t("NcCheckboxRadioSwitch", { attrs: { checked: e.isChecked(e.existing, e.oldSelected), required: !e.isEnoughSelected, "data-cy-conflict-picker-input-existing": e.existing.basename }, on: { "update:checked": e.onUpdateExistingChecked } }, [t("span", { staticClass: "node-picker node-picker--existing" }, [e.existingPreview ? t("img", { staticClass: "node-picker__preview", attrs: { src: e.existingPreview, alt: e.t("Preview image"), loading: "lazy" } }) : [e.isFolder(e.existing) ? t("FolderSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } }) : t("FileSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } })], t("span", { staticClass: "node-picker__desc" }, [t("span", { staticClass: "node-picker__name" }, [e._v(e._s(e.t("Existing version")))]), e.existingLastModified ? t("NcDateTime", { staticClass: "node-picker__mtime", attrs: { timestamp: e.existingLastModified, "relative-time": !1, format: { timeStyle: "short", dateStyle: "medium" } } }) : t("span", { staticClass: "node-picker__mtime" }, [e._v(" " + e._s(e.t("Last modified date unknown")) + " ")]), t("span", { staticClass: "node-picker__size" }, [e._v(e._s(e.size(e.existing)))])], 1)], 2)])], 1); +}, j = [], W = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( + H, + Z, + j, + !1, + null, + "f85db9fe", + null, + null +); +const Y = W.exports, G = (0,vue__WEBPACK_IMPORTED_MODULE_10__.defineComponent)({ + name: "ConflictPicker", + components: { + ArrowRight: L, + Close: R, + NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_7__["default"], + NcCheckboxRadioSwitch: _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_5__["default"], + NcDialog: _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_6__["default"], + NodesPicker: Y + }, + props: { + /** Directory/context file name */ + dirname: { + type: String, + default: "" + }, + /** All the existing files in the current directory */ + content: { + type: Array, + required: !0 + }, + /** New files being moved/uploaded */ + conflicts: { + type: Array, + required: !0 + } + }, + emits: ["cancel", "submit"], + data() { + return { + // computed list of conflicting files already present in the directory + files: [], + opened: !0, + blockedTitle: (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t)("You need to select at least one version of each file to continue."), + newSelected: [], + oldSelected: [] + }; + }, + computed: { + name() { + return this?.dirname?.trim?.() !== "" ? (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.a)("{count} file conflict in {dirname}", "{count} file conflicts in {dirname}", this.conflicts.length, { + count: this.conflicts.length, + dirname: this.dirname + }) : (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.a)("{count} file conflict", "{count} files conflict", this.conflicts.length, { count: this.conflicts.length }); + }, + skipButtonLabel() { + return (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.a)("Skip this file", "Skip {count} files", this.conflicts.length, { count: this.conflicts.length }); + }, + // Select all incoming files + selectAllNewBind() { + const i = this.isNoneNewSelected || this.isSomeNewSelected ? this.t("Select all") : this.t("Unselect all"); + return { + "aria-label": i, + checked: this.isAllNewSelected, + indeterminate: this.isSomeNewSelected, + title: i + }; + }, + isAllNewSelected() { + return this.newSelected.length === this.conflicts.length; + }, + isNoneNewSelected() { + return this.newSelected.length === 0; + }, + isSomeNewSelected() { + return !this.isAllNewSelected && !this.isNoneNewSelected; + }, + // Select all existing files + selectAllOldBind() { + const i = this.isNoneOldSelected || this.isSomeOldSelected ? this.t("Select all") : this.t("Unselect all"); + return { + "aria-label": i, + checked: this.isAllOldSelected, + indeterminate: this.isSomeOldSelected, + title: i + }; + }, + isAllOldSelected() { + return this.oldSelected.length === this.files.length; + }, + isNoneOldSelected() { + return this.oldSelected.length === 0; + }, + isSomeOldSelected() { + return !this.isAllOldSelected && !this.isNoneOldSelected; + }, + // Global handlings + isEnoughSelected() { + return this.isAllOldSelected || this.isAllNewSelected ? !0 : this.$refs?.nodesPicker?.every?.((i) => i.isEnoughSelected); + } + }, + mounted() { + if (this.files = this.conflicts.map((i) => { + const e = i instanceof File ? i.name : i.basename; + return this.content.find((t) => t.basename === e); + }).filter(Boolean), this.conflicts.length === 0 || this.files.length === 0) { + const i = new Error("ConflictPicker: files and conflicts must not be empty"); + throw this.onCancel(i), i; + } + if (this.conflicts.length !== this.files.length) { + const i = new Error("ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array."); + throw this.onCancel(i), i; + } + _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("ConflictPicker initialised", { files: this.files, conflicts: this.conflicts, content: this.content }); + }, + methods: { + onCancel(i) { + this.opened = !1, this.$emit("cancel", i); + }, + onSkip() { + _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Conflict skipped. Ignoring all conflicting files"), this.opened = !1, this.$emit("submit", { + selected: [], + renamed: [] + }); + }, + onSubmit() { + if (!this.isEnoughSelected) { + this.scrollValidityInputIntoView(), this.$refs.form.reportValidity(), (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_3__.showError)(this.blockedTitle); + return; + } + const i = this.oldSelected.map((n) => n.basename), e = this.content.map((n) => n.basename), t = [], s = this.newSelected.filter((n) => { + const c = n instanceof File ? n.name : n.basename; + return i.includes(c); + }); + s.length > 0 && s.forEach((n) => { + const c = n instanceof File ? n.name : n.basename, u = this.getUniqueName(c, e); + if (n instanceof File) { + Object.defineProperty(n, "name", { value: u }), t.push(n); + return; + } + n.rename(u), t.push(n); + }); + const l = this.newSelected.filter((n) => { + const c = n instanceof File ? n.name : n.basename; + return !i.includes(c) && !s.includes(n); + }); + _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Conflict resolved", { selected: l, renamed: t }), this.opened = !1, this.$emit("submit", { + selected: l, + renamed: t + }); + }, + /** + * Get a unique name for a file based + * on the existing directory content. + * @param {string} name The original file name with extension + * @param {string} names The existing directory content names + * @return {string} A unique name + * TODO: migrate to @nextcloud/files + */ + getUniqueName(i, e) { + let t = i, s = 1; + for (; e.includes(t); ) { + const l = (0,path__WEBPACK_IMPORTED_MODULE_1__.extname)(i); + t = `${(0,path__WEBPACK_IMPORTED_MODULE_1__.basename)(i, l)} (${s++})${l}`; + } + return t; + }, + /** + * Scroll the first invalid input into view. + * This is needed because the browser uses behavior: "nearest" by default. + */ + scrollValidityInputIntoView() { + const i = '.checkbox-radio-switch input[type="checkbox"]'; + [...this.$el.querySelectorAll(i)].forEach((s) => s?.setCustomValidity?.("")); + const t = this.$el.querySelector(i + ":invalid"); + t && (t.setCustomValidity(this.blockedTitle), t.scrollIntoView({ behavior: "instant", block: "center" })); + }, + onSelectAllNew(i) { + i ? (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Selected all new files"), this.newSelected = this.conflicts) : (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Cleared new selection"), this.newSelected = []); + }, + onSelectAllOld(i) { + i ? (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Selected all existing files"), this.oldSelected = this.files) : (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Cleared old selection"), this.oldSelected = []); + }, + t: _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t + } +}); +var J = function() { + var e = this, t = e._self._c; + return e._self._setupProxy, t("NcDialog", { staticClass: "conflict-picker", attrs: { "data-cy-conflict-picker": "", "close-on-click-outside": !1, "can-close": !0, show: e.opened, name: e.name, size: "large" }, on: { closing: e.onCancel }, scopedSlots: e._u([{ key: "actions", fn: function() { + return [t("NcButton", { attrs: { "aria-label": e.t("Cancel"), title: e.t("Cancel the entire operation"), "data-cy-conflict-picker-cancel": "", type: "tertiary" }, on: { click: e.onCancel }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [t("Close", { attrs: { size: 20 } })]; + }, proxy: !0 }]) }, [e._v(" " + e._s(e.t("Cancel")) + " ")]), t("span", { staticClass: "dialog__actions-separator" }), t("NcButton", { attrs: { "aria-label": e.skipButtonLabel, "data-cy-conflict-picker-skip": "" }, on: { click: e.onSkip }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [t("Close", { attrs: { size: 20 } })]; + }, proxy: !0 }]) }, [e._v(" " + e._s(e.skipButtonLabel) + " ")]), t("NcButton", { class: { "button-vue--disabled": !e.isEnoughSelected }, attrs: { "aria-label": e.t("Continue"), title: e.isEnoughSelected ? "" : e.blockedTitle, "data-cy-conflict-picker-submit": "", "native-type": "submit", type: "primary" }, on: { click: function(s) { + return s.stopPropagation(), s.preventDefault(), e.onSubmit.apply(null, arguments); + } }, scopedSlots: e._u([{ key: "icon", fn: function() { + return [t("ArrowRight", { attrs: { size: 20 } })]; + }, proxy: !0 }]) }, [e._v(" " + e._s(e.t("Continue")) + " ")])]; + }, proxy: !0 }]) }, [t("div", { staticClass: "conflict-picker__header" }, [t("p", { staticClass: "conflict-picker__description", attrs: { id: "conflict-picker-description" } }, [e._v(" " + e._s(e.t("Which files do you want to keep?"))), t("br"), e._v(" " + e._s(e.t("If you select both versions, the copied file will have a number added to its name."))), t("br"), e._v(" " + e._s(e.t("When an incoming folder is selected, any conflicting files within it will also be overwritten.")) + " ")])]), t("form", { ref: "form", staticClass: "conflict-picker__form", attrs: { "aria-labelledby": "conflict-picker-description", "data-cy-conflict-picker-form": "" }, on: { submit: function(s) { + return s.preventDefault(), s.stopPropagation(), e.onSubmit.apply(null, arguments); + } } }, [t("fieldset", { staticClass: "conflict-picker__all", attrs: { "data-cy-conflict-picker-fieldset": "all" } }, [t("legend", { staticClass: "hidden-visually" }, [e._v(" " + e._s(e.t("Select all checkboxes")) + " ")]), t("NcCheckboxRadioSwitch", e._b({ attrs: { "data-cy-conflict-picker-input-incoming": "all" }, on: { "update:checked": e.onSelectAllNew } }, "NcCheckboxRadioSwitch", e.selectAllNewBind, !1), [e._v(" " + e._s(e.t("Select all new files")) + " ")]), t("NcCheckboxRadioSwitch", e._b({ attrs: { "data-cy-conflict-picker-input-existing": "all" }, on: { "update:checked": e.onSelectAllOld } }, "NcCheckboxRadioSwitch", e.selectAllOldBind, !1), [e._v(" " + e._s(e.t("Select all existing files")) + " ")])], 1), e._l(e.files, function(s, l) { + return t("NodesPicker", { key: s.fileid, ref: "nodesPicker", refInFor: !0, attrs: { incoming: e.conflicts[l], existing: e.files[l], "new-selected": e.newSelected, "old-selected": e.oldSelected }, on: { "update:newSelected": function(n) { + e.newSelected = n; + }, "update:new-selected": function(n) { + e.newSelected = n; + }, "update:oldSelected": function(n) { + e.oldSelected = n; + }, "update:old-selected": function(n) { + e.oldSelected = n; + } } }); + })], 2)]); +}, K = [], Q = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( + G, + J, + K, + !1, + null, + "12c4204f", + null, + null +); +const ae = Q.exports; + + + +/***/ }) + +}]); +//# sourceMappingURL=node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map?v=16643b171a2f787f7569 \ No newline at end of file diff --git a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map b/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map new file mode 100644 index 0000000000000..853cd8027f42e --- /dev/null +++ b/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js?v=16643b171a2f787f7569","mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA","sources":["webpack:///nextcloud/node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css","webpack://nextcloud/./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css?116c","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-Bif6rCp6.mjs"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.node-picker__wrapper[data-v-f85db9fe]:not(:last-of-type) {\n border-bottom: 1px solid var(--color-border);\n}\n.node-picker[data-v-f85db9fe] {\n display: flex;\n align-items: center;\n height: 64px;\n}\n.node-picker__icon[data-v-f85db9fe],\n.node-picker__preview[data-v-f85db9fe] {\n height: 64px;\n width: 64px;\n margin: 0 var(--secondary-margin);\n display: block;\n flex: 0 0 64px;\n}\n.node-picker__icon[data-v-f85db9fe] {\n color: var(--color-text-maxcontrast);\n}\n.node-picker__icon.folder-icon[data-v-f85db9fe] {\n color: var(--color-primary-element);\n}\n.node-picker__preview[data-v-f85db9fe] {\n overflow: hidden;\n border-radius: calc(var(--border-radius) * 2);\n background-position: center;\n background-size: cover;\n}\n.node-picker__desc[data-v-f85db9fe] {\n display: flex;\n flex-direction: column;\n}\n.node-picker__desc span[data-v-f85db9fe] {\n white-space: nowrap;\n}\n[data-v-12c4204f] .modal-container__content {\n display: flex;\n overflow: visible;\n flex-direction: column;\n}\n.conflict-picker[data-v-12c4204f] {\n --margin: 36px;\n --secondary-margin: 18px;\n}\n.conflict-picker__header[data-v-12c4204f] {\n position: sticky;\n z-index: 10;\n top: 0;\n padding: 0 var(--margin);\n padding-bottom: var(--secondary-margin);\n}\n.conflict-picker__form[data-v-12c4204f] {\n position: relative;\n overflow: auto;\n padding: 0 var(--margin);\n margin-top: calc(-1 * var(--secondary-margin));\n}\n.conflict-picker fieldset[data-v-12c4204f] {\n display: grid;\n width: 100%;\n margin-top: calc(var(--secondary-margin) * 1.5);\n padding-bottom: var(--secondary-margin);\n grid-template-columns: 1fr 1fr;\n}\n.conflict-picker fieldset[data-v-12c4204f] legend {\n display: flex;\n align-items: center;\n width: 100%;\n margin-bottom: calc(var(--secondary-margin) / 2);\n}\n.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] {\n position: sticky;\n top: 0;\n margin: 0;\n padding: var(--secondary-margin) 0;\n background-image:\n linear-gradient(\n to top,\n transparent,\n var(--color-main-background-blur) 10%,\n var(--color-main-background) 15%);\n}\n.conflict-picker fieldset.conflict-picker__all + fieldset[data-v-12c4204f] {\n margin-top: 0;\n}\n.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] label {\n font-weight: 700;\n}\n.conflict-picker .button-vue--disabled[data-v-12c4204f] {\n cursor: default;\n opacity: .5;\n filter: saturate(.7);\n}\n.conflict-picker[data-v-12c4204f] .dialog__actions {\n width: auto;\n margin-inline: 12px;\n}\n.conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator {\n margin-left: auto;\n}\n@media screen and (max-width: 768px) {\n .conflict-picker[data-v-12c4204f] {\n --margin: var(--secondary-margin) !important;\n }\n .conflict-picker__description[data-v-12c4204f] {\n display: none !important;\n }\n .conflict-picker fieldset[data-v-12c4204f] {\n grid-template-columns: 1fr !important;\n }\n .conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] {\n position: static;\n }\n}\n@media screen and (max-width: 512px) {\n .conflict-picker[data-v-12c4204f] .dialog__actions {\n flex-wrap: wrap;\n }\n .conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator {\n width: 100%;\n }\n}\n`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./ConflictPicker-BVcoqXxT.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./ConflictPicker-BVcoqXxT.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/ConflictPicker-BVcoqXxT.css';\nimport { extname as _, basename as g } from \"path\";\nimport { defineComponent as m } from \"vue\";\nimport { formatFileSize as S, FileType as f } from \"@nextcloud/files\";\nimport { showError as k } from \"@nextcloud/dialogs\";\nimport { n as o, t as a, a as d, l as r } from \"./index-DM2X1kc6.mjs\";\nimport p from \"@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js\";\nimport v from \"@nextcloud/vue/dist/Components/NcDialog.js\";\nimport w from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport { generateUrl as y } from \"@nextcloud/router\";\nimport C from \"@nextcloud/vue/dist/Components/NcDateTime.js\";\nconst b = {\n name: \"ArrowRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar x = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon arrow-right-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, N = [], $ = /* @__PURE__ */ o(\n b,\n x,\n N,\n !1,\n null,\n null,\n null,\n null\n);\nconst L = $.exports, z = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar F = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon close-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, P = [], A = /* @__PURE__ */ o(\n z,\n F,\n P,\n !1,\n null,\n null,\n null,\n null\n);\nconst R = A.exports, I = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar B = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon file-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, E = [], O = /* @__PURE__ */ o(\n I,\n B,\n E,\n !1,\n null,\n null,\n null,\n null\n);\nconst M = O.exports, U = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar V = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon folder-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, q = [], D = /* @__PURE__ */ o(\n U,\n V,\n q,\n !1,\n null,\n null,\n null,\n null\n);\nconst T = D.exports, h = 64, H = m({\n name: \"NodesPicker\",\n components: {\n FileSvg: M,\n FolderSvg: T,\n NcCheckboxRadioSwitch: p,\n NcDateTime: C\n },\n props: {\n incoming: {\n type: [File, Object],\n required: !0\n },\n existing: {\n type: Object,\n required: !0\n },\n newSelected: {\n type: Array,\n required: !0\n },\n oldSelected: {\n type: Array,\n required: !0\n }\n },\n data() {\n return {\n asyncPreview: null\n };\n },\n computed: {\n /**\n * Whether the incoming or existing file is selected.\n * This is used by the parent component to ensure\n * that the user has selected at least one of the two files.\n */\n isEnoughSelected() {\n return this.isChecked(this.incoming, this.newSelected) || this.isChecked(this.existing, this.oldSelected);\n },\n incomingPreview() {\n return this.asyncPreview ? this.asyncPreview : this.previewUrl(this.incoming);\n },\n existingPreview() {\n return this.previewUrl(this.existing);\n },\n incomingLastModified() {\n return this.lastModified(this.incoming);\n },\n existingLastModified() {\n return this.lastModified(this.existing);\n }\n },\n methods: {\n lastModified(i) {\n return (i instanceof File ? new Date(i.lastModified) : i.mtime) ?? null;\n },\n size(i) {\n return i.size ? S(i.size, !0) : a(\"Unknown size\");\n },\n previewUrl(i) {\n if (i instanceof File) {\n this.previewImage(i).then((e) => {\n this.asyncPreview = e;\n });\n return;\n }\n if (i.type === f.Folder)\n return null;\n try {\n const e = i.attributes.previewUrl || y(\"/core/preview?fileId={fileid}\", {\n fileid: i.fileid\n }), t = new URL(window.location.origin + e);\n return t.searchParams.set(\"x\", h.toString()), t.searchParams.set(\"y\", h.toString()), t.searchParams.set(\"mimeFallback\", \"true\"), t.href;\n } catch {\n return null;\n }\n },\n isFolder(i) {\n return i.type === f.Folder || i.type === \"httpd/unix-directory\";\n },\n isChecked(i, e) {\n return e.includes(i);\n },\n onUpdateIncomingChecked(i) {\n i ? this.$emit(\"update:newSelected\", [this.incoming, ...this.newSelected]) : this.$emit(\"update:newSelected\", this.newSelected.filter((e) => e !== this.incoming));\n },\n onUpdateExistingChecked(i) {\n i ? this.$emit(\"update:oldSelected\", [this.existing, ...this.oldSelected]) : this.$emit(\"update:oldSelected\", this.oldSelected.filter((e) => e !== this.existing));\n },\n /**\n * Get the preview Image of a file\n * @param file the soon-to-be-uploaded File\n */\n async previewImage(i) {\n return new Promise((e) => {\n if (i.type.startsWith(\"image/\")) {\n const t = new FileReader();\n t.onload = async (s) => {\n const l = s?.target?.result;\n if (l instanceof ArrayBuffer) {\n const n = new Blob([l], { type: i.type }), c = URL.createObjectURL(n);\n e(c);\n return;\n }\n e(null);\n }, t.readAsArrayBuffer(i);\n }\n });\n },\n t: a\n }\n});\nvar Z = function() {\n var e = this, t = e._self._c;\n return e._self._setupProxy, t(\"fieldset\", { staticClass: \"node-picker__wrapper\", attrs: { \"data-cy-conflict-picker-fieldset\": e.existing.basename } }, [t(\"legend\", [e._v(e._s(e.existing.basename))]), t(\"NcCheckboxRadioSwitch\", { attrs: { checked: e.isChecked(e.incoming, e.newSelected), required: !e.isEnoughSelected, \"data-cy-conflict-picker-input-incoming\": e.existing.basename }, on: { \"update:checked\": e.onUpdateIncomingChecked } }, [t(\"span\", { staticClass: \"node-picker node-picker--incoming\" }, [e.incomingPreview ? t(\"img\", { staticClass: \"node-picker__preview\", attrs: { src: e.incomingPreview, alt: e.t(\"Preview image\"), loading: \"lazy\" } }) : [e.isFolder(e.existing) ? t(\"FolderSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } }) : t(\"FileSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } })], t(\"span\", { staticClass: \"node-picker__desc\" }, [t(\"span\", { staticClass: \"node-picker__name\" }, [e._v(e._s(e.t(\"New version\")))]), e.incomingLastModified ? t(\"NcDateTime\", { staticClass: \"node-picker__mtime\", attrs: { timestamp: e.incomingLastModified, \"relative-time\": !1, format: { timeStyle: \"short\", dateStyle: \"medium\" } } }) : t(\"span\", { staticClass: \"node-picker__mtime\" }, [e._v(\" \" + e._s(e.t(\"Last modified date unknown\")) + \" \")]), t(\"span\", { staticClass: \"node-picker__size\" }, [e._v(e._s(e.size(e.incoming)))])], 1)], 2)]), t(\"NcCheckboxRadioSwitch\", { attrs: { checked: e.isChecked(e.existing, e.oldSelected), required: !e.isEnoughSelected, \"data-cy-conflict-picker-input-existing\": e.existing.basename }, on: { \"update:checked\": e.onUpdateExistingChecked } }, [t(\"span\", { staticClass: \"node-picker node-picker--existing\" }, [e.existingPreview ? t(\"img\", { staticClass: \"node-picker__preview\", attrs: { src: e.existingPreview, alt: e.t(\"Preview image\"), loading: \"lazy\" } }) : [e.isFolder(e.existing) ? t(\"FolderSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } }) : t(\"FileSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } })], t(\"span\", { staticClass: \"node-picker__desc\" }, [t(\"span\", { staticClass: \"node-picker__name\" }, [e._v(e._s(e.t(\"Existing version\")))]), e.existingLastModified ? t(\"NcDateTime\", { staticClass: \"node-picker__mtime\", attrs: { timestamp: e.existingLastModified, \"relative-time\": !1, format: { timeStyle: \"short\", dateStyle: \"medium\" } } }) : t(\"span\", { staticClass: \"node-picker__mtime\" }, [e._v(\" \" + e._s(e.t(\"Last modified date unknown\")) + \" \")]), t(\"span\", { staticClass: \"node-picker__size\" }, [e._v(e._s(e.size(e.existing)))])], 1)], 2)])], 1);\n}, j = [], W = /* @__PURE__ */ o(\n H,\n Z,\n j,\n !1,\n null,\n \"f85db9fe\",\n null,\n null\n);\nconst Y = W.exports, G = m({\n name: \"ConflictPicker\",\n components: {\n ArrowRight: L,\n Close: R,\n NcButton: w,\n NcCheckboxRadioSwitch: p,\n NcDialog: v,\n NodesPicker: Y\n },\n props: {\n /** Directory/context file name */\n dirname: {\n type: String,\n default: \"\"\n },\n /** All the existing files in the current directory */\n content: {\n type: Array,\n required: !0\n },\n /** New files being moved/uploaded */\n conflicts: {\n type: Array,\n required: !0\n }\n },\n emits: [\"cancel\", \"submit\"],\n data() {\n return {\n // computed list of conflicting files already present in the directory\n files: [],\n opened: !0,\n blockedTitle: a(\"You need to select at least one version of each file to continue.\"),\n newSelected: [],\n oldSelected: []\n };\n },\n computed: {\n name() {\n return this?.dirname?.trim?.() !== \"\" ? d(\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\", this.conflicts.length, {\n count: this.conflicts.length,\n dirname: this.dirname\n }) : d(\"{count} file conflict\", \"{count} files conflict\", this.conflicts.length, { count: this.conflicts.length });\n },\n skipButtonLabel() {\n return d(\"Skip this file\", \"Skip {count} files\", this.conflicts.length, { count: this.conflicts.length });\n },\n // Select all incoming files\n selectAllNewBind() {\n const i = this.isNoneNewSelected || this.isSomeNewSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": i,\n checked: this.isAllNewSelected,\n indeterminate: this.isSomeNewSelected,\n title: i\n };\n },\n isAllNewSelected() {\n return this.newSelected.length === this.conflicts.length;\n },\n isNoneNewSelected() {\n return this.newSelected.length === 0;\n },\n isSomeNewSelected() {\n return !this.isAllNewSelected && !this.isNoneNewSelected;\n },\n // Select all existing files\n selectAllOldBind() {\n const i = this.isNoneOldSelected || this.isSomeOldSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": i,\n checked: this.isAllOldSelected,\n indeterminate: this.isSomeOldSelected,\n title: i\n };\n },\n isAllOldSelected() {\n return this.oldSelected.length === this.files.length;\n },\n isNoneOldSelected() {\n return this.oldSelected.length === 0;\n },\n isSomeOldSelected() {\n return !this.isAllOldSelected && !this.isNoneOldSelected;\n },\n // Global handlings\n isEnoughSelected() {\n return this.isAllOldSelected || this.isAllNewSelected ? !0 : this.$refs?.nodesPicker?.every?.((i) => i.isEnoughSelected);\n }\n },\n mounted() {\n if (this.files = this.conflicts.map((i) => {\n const e = i instanceof File ? i.name : i.basename;\n return this.content.find((t) => t.basename === e);\n }).filter(Boolean), this.conflicts.length === 0 || this.files.length === 0) {\n const i = new Error(\"ConflictPicker: files and conflicts must not be empty\");\n throw this.onCancel(i), i;\n }\n if (this.conflicts.length !== this.files.length) {\n const i = new Error(\"ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array.\");\n throw this.onCancel(i), i;\n }\n r.debug(\"ConflictPicker initialised\", { files: this.files, conflicts: this.conflicts, content: this.content });\n },\n methods: {\n onCancel(i) {\n this.opened = !1, this.$emit(\"cancel\", i);\n },\n onSkip() {\n r.debug(\"Conflict skipped. Ignoring all conflicting files\"), this.opened = !1, this.$emit(\"submit\", {\n selected: [],\n renamed: []\n });\n },\n onSubmit() {\n if (!this.isEnoughSelected) {\n this.scrollValidityInputIntoView(), this.$refs.form.reportValidity(), k(this.blockedTitle);\n return;\n }\n const i = this.oldSelected.map((n) => n.basename), e = this.content.map((n) => n.basename), t = [], s = this.newSelected.filter((n) => {\n const c = n instanceof File ? n.name : n.basename;\n return i.includes(c);\n });\n s.length > 0 && s.forEach((n) => {\n const c = n instanceof File ? n.name : n.basename, u = this.getUniqueName(c, e);\n if (n instanceof File) {\n Object.defineProperty(n, \"name\", { value: u }), t.push(n);\n return;\n }\n n.rename(u), t.push(n);\n });\n const l = this.newSelected.filter((n) => {\n const c = n instanceof File ? n.name : n.basename;\n return !i.includes(c) && !s.includes(n);\n });\n r.debug(\"Conflict resolved\", { selected: l, renamed: t }), this.opened = !1, this.$emit(\"submit\", {\n selected: l,\n renamed: t\n });\n },\n /**\n * Get a unique name for a file based\n * on the existing directory content.\n * @param {string} name The original file name with extension\n * @param {string} names The existing directory content names\n * @return {string} A unique name\n * TODO: migrate to @nextcloud/files\n */\n getUniqueName(i, e) {\n let t = i, s = 1;\n for (; e.includes(t); ) {\n const l = _(i);\n t = `${g(i, l)} (${s++})${l}`;\n }\n return t;\n },\n /**\n * Scroll the first invalid input into view.\n * This is needed because the browser uses behavior: \"nearest\" by default.\n */\n scrollValidityInputIntoView() {\n const i = '.checkbox-radio-switch input[type=\"checkbox\"]';\n [...this.$el.querySelectorAll(i)].forEach((s) => s?.setCustomValidity?.(\"\"));\n const t = this.$el.querySelector(i + \":invalid\");\n t && (t.setCustomValidity(this.blockedTitle), t.scrollIntoView({ behavior: \"instant\", block: \"center\" }));\n },\n onSelectAllNew(i) {\n i ? (r.debug(\"Selected all new files\"), this.newSelected = this.conflicts) : (r.debug(\"Cleared new selection\"), this.newSelected = []);\n },\n onSelectAllOld(i) {\n i ? (r.debug(\"Selected all existing files\"), this.oldSelected = this.files) : (r.debug(\"Cleared old selection\"), this.oldSelected = []);\n },\n t: a\n }\n});\nvar J = function() {\n var e = this, t = e._self._c;\n return e._self._setupProxy, t(\"NcDialog\", { staticClass: \"conflict-picker\", attrs: { \"data-cy-conflict-picker\": \"\", \"close-on-click-outside\": !1, \"can-close\": !0, show: e.opened, name: e.name, size: \"large\" }, on: { closing: e.onCancel }, scopedSlots: e._u([{ key: \"actions\", fn: function() {\n return [t(\"NcButton\", { attrs: { \"aria-label\": e.t(\"Cancel\"), title: e.t(\"Cancel the entire operation\"), \"data-cy-conflict-picker-cancel\": \"\", type: \"tertiary\" }, on: { click: e.onCancel }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Close\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.t(\"Cancel\")) + \" \")]), t(\"span\", { staticClass: \"dialog__actions-separator\" }), t(\"NcButton\", { attrs: { \"aria-label\": e.skipButtonLabel, \"data-cy-conflict-picker-skip\": \"\" }, on: { click: e.onSkip }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Close\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.skipButtonLabel) + \" \")]), t(\"NcButton\", { class: { \"button-vue--disabled\": !e.isEnoughSelected }, attrs: { \"aria-label\": e.t(\"Continue\"), title: e.isEnoughSelected ? \"\" : e.blockedTitle, \"data-cy-conflict-picker-submit\": \"\", \"native-type\": \"submit\", type: \"primary\" }, on: { click: function(s) {\n return s.stopPropagation(), s.preventDefault(), e.onSubmit.apply(null, arguments);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"ArrowRight\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.t(\"Continue\")) + \" \")])];\n }, proxy: !0 }]) }, [t(\"div\", { staticClass: \"conflict-picker__header\" }, [t(\"p\", { staticClass: \"conflict-picker__description\", attrs: { id: \"conflict-picker-description\" } }, [e._v(\" \" + e._s(e.t(\"Which files do you want to keep?\"))), t(\"br\"), e._v(\" \" + e._s(e.t(\"If you select both versions, the copied file will have a number added to its name.\"))), t(\"br\"), e._v(\" \" + e._s(e.t(\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\")) + \" \")])]), t(\"form\", { ref: \"form\", staticClass: \"conflict-picker__form\", attrs: { \"aria-labelledby\": \"conflict-picker-description\", \"data-cy-conflict-picker-form\": \"\" }, on: { submit: function(s) {\n return s.preventDefault(), s.stopPropagation(), e.onSubmit.apply(null, arguments);\n } } }, [t(\"fieldset\", { staticClass: \"conflict-picker__all\", attrs: { \"data-cy-conflict-picker-fieldset\": \"all\" } }, [t(\"legend\", { staticClass: \"hidden-visually\" }, [e._v(\" \" + e._s(e.t(\"Select all checkboxes\")) + \" \")]), t(\"NcCheckboxRadioSwitch\", e._b({ attrs: { \"data-cy-conflict-picker-input-incoming\": \"all\" }, on: { \"update:checked\": e.onSelectAllNew } }, \"NcCheckboxRadioSwitch\", e.selectAllNewBind, !1), [e._v(\" \" + e._s(e.t(\"Select all new files\")) + \" \")]), t(\"NcCheckboxRadioSwitch\", e._b({ attrs: { \"data-cy-conflict-picker-input-existing\": \"all\" }, on: { \"update:checked\": e.onSelectAllOld } }, \"NcCheckboxRadioSwitch\", e.selectAllOldBind, !1), [e._v(\" \" + e._s(e.t(\"Select all existing files\")) + \" \")])], 1), e._l(e.files, function(s, l) {\n return t(\"NodesPicker\", { key: s.fileid, ref: \"nodesPicker\", refInFor: !0, attrs: { incoming: e.conflicts[l], existing: e.files[l], \"new-selected\": e.newSelected, \"old-selected\": e.oldSelected }, on: { \"update:newSelected\": function(n) {\n e.newSelected = n;\n }, \"update:new-selected\": function(n) {\n e.newSelected = n;\n }, \"update:oldSelected\": function(n) {\n e.oldSelected = n;\n }, \"update:old-selected\": function(n) {\n e.oldSelected = n;\n } } });\n })], 2)]);\n}, K = [], Q = /* @__PURE__ */ o(\n G,\n J,\n K,\n !1,\n null,\n \"12c4204f\",\n null,\n null\n);\nconst ae = Q.exports;\nexport {\n ae as default\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js b/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js new file mode 100644 index 0000000000000..477b956f80a4b --- /dev/null +++ b/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js @@ -0,0 +1,26 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs"],{ + +/***/ "./node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ NcAutoCompleteResult: () => (/* reexport safe */ _chunks_NcRichContenteditable_CEqdmoem_mjs__WEBPACK_IMPORTED_MODULE_1__.N), +/* harmony export */ NcMentionBubble: () => (/* reexport safe */ _chunks_index_uiNhPYvS_mjs__WEBPACK_IMPORTED_MODULE_0__.N), +/* harmony export */ "default": () => (/* reexport safe */ _chunks_NcRichContenteditable_CEqdmoem_mjs__WEBPACK_IMPORTED_MODULE_1__.a) +/* harmony export */ }); +/* harmony import */ var _chunks_index_uiNhPYvS_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../chunks/index-uiNhPYvS.mjs */ "./node_modules/@nextcloud/vue/dist/chunks/index-uiNhPYvS.mjs"); +/* harmony import */ var _chunks_NcRichContenteditable_CEqdmoem_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../chunks/NcRichContenteditable-CEqdmoem.mjs */ "./node_modules/@nextcloud/vue/dist/chunks/NcRichContenteditable-CEqdmoem.mjs"); + + + + + +/***/ }) + +}]); +//# sourceMappingURL=node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map?v=ffc12738fb24256850ac \ No newline at end of file diff --git a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map b/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map new file mode 100644 index 0000000000000..9502164ef4398 --- /dev/null +++ b/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js?v=ffc12738fb24256850ac","mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAKA","sources":["webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs"],"sourcesContent":["import { N as t } from \"../chunks/index-uiNhPYvS.mjs\";\nimport { N as l, a as r } from \"../chunks/NcRichContenteditable-CEqdmoem.mjs\";\nexport {\n l as NcAutoCompleteResult,\n t as NcMentionBubble,\n r as default\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/settings-apps-view-settings-apps-view.js b/dist/settings-apps-view-settings-apps-view.js new file mode 100644 index 0000000000000..18e1436a52354 --- /dev/null +++ b/dist/settings-apps-view-settings-apps-view.js @@ -0,0 +1,6005 @@ +"use strict"; +(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["settings-apps-view"],{ + +/***/ "./apps/settings/src/constants/AppsConstants.js": +/*!******************************************************!*\ + !*** ./apps/settings/src/constants/AppsConstants.js ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ APPS_SECTION_ENUM: () => (/* binding */ APPS_SECTION_ENUM) +/* harmony export */ }); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/** + * @copyright 2022, Julia Kirschenheuter + * + * @author Julia Kirschenheuter + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + + +/** Enum of verification constants, according to Apps */ +const APPS_SECTION_ENUM = Object.freeze({ + discover: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Discover'), + installed: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Your apps'), + enabled: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Active apps'), + disabled: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Disabled apps'), + updates: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Updates'), + 'app-bundles': (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'App bundles'), + featured: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Featured apps'), + supported: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Supported apps') // From subscription +}); + +/***/ }), + +/***/ "./apps/settings/src/mixins/AppManagement.js": +/*!***************************************************!*\ + !*** ./apps/settings/src/mixins/AppManagement.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../service/rebuild-navigation.js */ "./apps/settings/src/service/rebuild-navigation.js"); +/** + * @copyright Copyright (c) 2019 Julius Härtl + * + * @author John Molakvoæ + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + computed: { + appGroups() { + return this.app.groups.map(group => { + return { + id: group, + name: group + }; + }); + }, + installing() { + return this.$store.getters.loading('install'); + }, + isLoading() { + return this.app && this.$store.getters.loading(this.app.id); + }, + enableButtonText() { + if (this.app.needsDownload) { + return t('settings', 'Download and enable'); + } + return t('settings', 'Enable'); + }, + forceEnableButtonText() { + if (this.app.needsDownload) { + return t('settings', 'Allow untested app'); + } + return t('settings', 'Allow untested app'); + }, + enableButtonTooltip() { + if (this.app.needsDownload) { + return t('settings', 'The app will be downloaded from the App Store'); + } + return null; + }, + forceEnableButtonTooltip() { + const base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.'); + if (this.app.needsDownload) { + return base + ' ' + t('settings', 'The app will be downloaded from the App Store'); + } + return base; + } + }, + data() { + return { + groupCheckedAppsData: false + }; + }, + mounted() { + if (this.app && this.app.groups && this.app.groups.length > 0) { + this.groupCheckedAppsData = true; + } + }, + methods: { + asyncFindGroup(query) { + return this.$store.dispatch('getGroups', { + search: query, + limit: 5, + offset: 0 + }); + }, + isLimitedToGroups(app) { + if (this.app.groups.length || this.groupCheckedAppsData) { + return true; + } + return false; + }, + setGroupLimit() { + if (!this.groupCheckedAppsData) { + this.$store.dispatch('enableApp', { + appId: this.app.id, + groups: [] + }); + } + }, + canLimitToGroups(app) { + if (app.types && app.types.includes('filesystem') || app.types.includes('prelogin') || app.types.includes('authentication') || app.types.includes('logging') || app.types.includes('prevent_group_restriction')) { + return false; + } + return true; + }, + addGroupLimitation(groupArray) { + const group = groupArray.pop(); + const groups = this.app.groups.concat([]).concat([group.id]); + this.$store.dispatch('enableApp', { + appId: this.app.id, + groups + }); + }, + removeGroupLimitation(group) { + const currentGroups = this.app.groups.concat([]); + const index = currentGroups.indexOf(group.id); + if (index > -1) { + currentGroups.splice(index, 1); + } + this.$store.dispatch('enableApp', { + appId: this.app.id, + groups: currentGroups + }); + }, + forceEnable(appId) { + this.$store.dispatch('forceEnableApp', { + appId, + groups: [] + }).then(response => { + (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); + }).catch(error => { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); + }); + }, + enable(appId) { + this.$store.dispatch('enableApp', { + appId, + groups: [] + }).then(response => { + (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); + }).catch(error => { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); + }); + }, + disable(appId) { + this.$store.dispatch('disableApp', { + appId + }).then(response => { + (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); + }).catch(error => { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); + }); + }, + remove(appId) { + this.$store.dispatch('uninstallApp', { + appId + }).then(response => { + (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); + }).catch(error => { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); + }); + }, + install(appId) { + this.$store.dispatch('enableApp', { + appId + }).then(response => { + (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); + }).catch(error => { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); + }); + }, + update(appId) { + this.$store.dispatch('updateApp', { + appId + }).then(response => { + (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); + }).catch(error => { + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); + }); + } + } +}); + +/***/ }), + +/***/ "./apps/settings/src/service/rebuild-navigation.js": +/*!*********************************************************!*\ + !*** ./apps/settings/src/service/rebuild-navigation.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (() => { + return _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateOcsUrl)('core/navigation', 2) + '/apps?format=json').then(_ref => { + let { + data + } = _ref; + if (data.ocs.meta.statuscode !== 200) { + return; + } + (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_2__.emit)('nextcloud:app-menu.refresh', { + apps: data.ocs.data + }); + window.dispatchEvent(new Event('resize')); + }); +}); + +/***/ }), + +/***/ "./apps/settings/src/composables/useAppIcon.ts": +/*!*****************************************************!*\ + !*** ./apps/settings/src/composables/useAppIcon.ts ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ useAppIcon: () => (/* binding */ useAppIcon) +/* harmony export */ }); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants/AppstoreCategoryIcons.ts */ "./apps/settings/src/constants/AppstoreCategoryIcons.ts"); +/* harmony import */ var _logger_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger.ts */ "./apps/settings/src/logger.ts"); + + + + +/** + * Get the app icon raw SVG for use with `NcIconSvgWrapper` (do never use without sanitizing) + * It has a fallback to the categroy icon. + * + * @param app The app to get the icon for + */ +function useAppIcon(app) { + const appIcon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.ref)(null); + /** + * Fallback value if no app icon available + */ + const categoryIcon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => { + var _flat$map$filter$at, _app$value$category, _app$value; + const path = (_flat$map$filter$at = [(_app$value$category = (_app$value = app.value) === null || _app$value === void 0 ? void 0 : _app$value.category) !== null && _app$value$category !== void 0 ? _app$value$category : []].flat().map(name => _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_0__["default"][name]).filter(icon => !!icon).at(0)) !== null && _flat$map$filter$at !== void 0 ? _flat$map$filter$at : _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiCog; + return path ? "") : null; + }); + (0,vue__WEBPACK_IMPORTED_MODULE_2__.watchEffect)(async () => { + var _app$value2; + // Note: Only variables until the first `await` will be watched! + if (!((_app$value2 = app.value) !== null && _app$value2 !== void 0 && _app$value2.preview)) { + appIcon.value = categoryIcon.value; + } else { + appIcon.value = null; + // Now try to load the real app icon + try { + const response = await window.fetch(app.value.preview); + const blob = await response.blob(); + const rawSvg = await blob.text(); + appIcon.value = rawSvg.replaceAll(/fill="#(fff|ffffff)([a-z0-9]{1,2})?"/ig, 'fill="currentColor"'); + } catch (error) { + appIcon.value = categoryIcon.value; + _logger_ts__WEBPACK_IMPORTED_MODULE_1__["default"].error('Could not load app icon', { + error + }); + } + } + }); + return { + appIcon + }; +} + +/***/ }), + +/***/ "./apps/settings/src/constants/AppstoreCategoryIcons.ts": +/*!**************************************************************!*\ + !*** ./apps/settings/src/constants/AppstoreCategoryIcons.ts ***! + \**************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/** + * @copyright Copyright (c) 2024 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +/** + * SVG paths used for appstore category icons + */ +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Object.freeze({ + // system special categories + discover: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiStarCircleOutline, + installed: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiAccount, + enabled: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiCheck, + disabled: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiClose, + bundles: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiArchive, + supported: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiStarShooting, + featured: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiStar, + updates: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiDownload, + // generic categories + auth: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiKey, + customization: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiCog, + dashboard: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiViewDashboard, + files: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiFolder, + games: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiControllerClassic, + integration: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiOpenInApp, + monitoring: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiMonitorEye, + multimedia: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiMultimedia, + office: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiFileDocumentEdit, + organization: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiOfficeBuilding, + search: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiMagnify, + security: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiSecurity, + social: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiAccountMultiple, + tools: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiTools, + workflow: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiClipboardFlow +})); + +/***/ }), + +/***/ "./apps/settings/src/store/apps-store.ts": +/*!***********************************************!*\ + !*** ./apps/settings/src/store/apps-store.ts ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ useAppsStore: () => (/* binding */ useAppsStore) +/* harmony export */ }); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var pinia__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! pinia */ "./node_modules/pinia/dist/pinia.mjs"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../logger */ "./apps/settings/src/logger.ts"); +/* harmony import */ var _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../constants/AppstoreCategoryIcons.ts */ "./apps/settings/src/constants/AppstoreCategoryIcons.ts"); +/** + * @copyright Copyright (c) 2024 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + + + + + + + + +const showApiError = () => (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)((0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__.translate)('settings', 'An error occurred during the request. Unable to proceed.')); +const useAppsStore = (0,pinia__WEBPACK_IMPORTED_MODULE_7__.defineStore)('settings-apps', { + state: () => ({ + apps: [], + categories: [], + updateCount: (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_1__.loadState)('settings', 'appstoreUpdateCount', 0), + loading: { + apps: false, + categories: false + }, + loadingList: false, + gettingCategoriesPromise: null + }), + actions: { + async loadCategories() { + let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (this.categories.length > 0 && !force) { + return; + } + try { + this.loading.categories = true; + const { + data: categories + } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_4__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_3__.generateUrl)('settings/apps/categories')); + for (const category of categories) { + var _APPSTORE_CATEGORY_IC; + category.icon = (_APPSTORE_CATEGORY_IC = _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_6__["default"][category.id]) !== null && _APPSTORE_CATEGORY_IC !== void 0 ? _APPSTORE_CATEGORY_IC : ''; + } + this.$patch({ + categories + }); + } catch (error) { + _logger__WEBPACK_IMPORTED_MODULE_5__["default"].error(error); + showApiError(); + } finally { + this.loading.categories = false; + } + }, + async loadApps() { + let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + if (this.apps.length > 0 && !force) { + return; + } + try { + this.loading.apps = true; + const { + data + } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_4__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_3__.generateUrl)('settings/apps/list')); + this.$patch({ + apps: data.apps + }); + } catch (error) { + _logger__WEBPACK_IMPORTED_MODULE_5__["default"].error(error); + showApiError(); + } finally { + this.loading.apps = false; + } + }, + getCategoryById(categoryId) { + var _this$categories$find; + return (_this$categories$find = this.categories.find(_ref => { + let { + id + } = _ref; + return id === categoryId; + })) !== null && _this$categories$find !== void 0 ? _this$categories$find : null; + }, + getAppById(appId) { + var _this$apps$find; + return (_this$apps$find = this.apps.find(_ref2 => { + let { + id + } = _ref2; + return id === appId; + })) !== null && _this$apps$find !== void 0 ? _this$apps$find : null; + } + } +}); + +/***/ }), + +/***/ "./apps/settings/src/utils/appDiscoverParser.ts": +/*!******************************************************!*\ + !*** ./apps/settings/src/utils/appDiscoverParser.ts ***! + \******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ filterElements: () => (/* binding */ filterElements), +/* harmony export */ parseApiResponse: () => (/* binding */ parseApiResponse) +/* harmony export */ }); +/** + * @copyright Copyright (c) 2024 Ferdinand Thiessen + * + * @author Ferdinand Thiessen + * + * @license AGPL-3.0-or-later + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +/** + * Helper to transform the JSON API results to proper frontend objects (app discover section elements) + * + * @param element The JSON API element to transform + */ +const parseApiResponse = element => { + var _element$type; + const appElement = { + ...element + }; + if (appElement.date) { + appElement.date = Date.parse(appElement.date); + } + if (appElement.expiryDate) { + appElement.expiryDate = Date.parse(appElement.expiryDate); + } + if (appElement.type === 'post') { + return appElement; + } else if (appElement.type === 'showcase') { + return appElement; + } else if (appElement.type === 'carousel') { + return appElement; + } + throw new Error("Invalid argument, app discover element with type ".concat((_element$type = element.type) !== null && _element$type !== void 0 ? _element$type : 'unknown', " is unknown")); +}; +/** + * Filter outdated or upcoming elements + * @param element Element to check + */ +const filterElements = element => { + const now = Date.now(); + // Element not yet published + if (element.date && element.date > now) { + return false; + } + // Element expired + if (element.expiryDate && element.expiryDate < now) { + return false; + } + return true; +}; + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts": +/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts ***! + \*****************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_2__.defineComponent)({ + __name: 'AppLevelBadge', + props: { + level: { + type: Number, + required: false + } + }, + setup(__props) { + const props = __props; + const isSupported = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => props.level === 300); + const isFeatured = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => props.level === 200); + const badgeIcon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => isSupported.value ? _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStarShooting : _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiCheck); + const badgeText = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => isSupported.value ? (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Supported') : (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Featured')); + const badgeTitle = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => isSupported.value ? (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'This app is supported via your current Nextcloud subscription.') : (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')); + return { + __sfc: true, + props, + isSupported, + isFeatured, + badgeIcon, + badgeText, + badgeTitle, + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__["default"] + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts": +/*!*************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts ***! + \*************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_2__.defineComponent)({ + name: 'AppScore', + components: { + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__["default"] + }, + props: { + score: { + type: Number, + required: true + } + }, + setup() { + return { + mdiStar: _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStar, + mdiStarHalfFull: _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStarHalfFull, + mdiStarOutline: _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStarOutline + }; + }, + computed: { + title() { + const appScore = (this.score * 5).toFixed(1); + return (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Community rating: {score}/5', { + score: appScore + }); + }, + fullStars() { + return Math.floor(this.score * 5 + 0.25); + }, + emptyStars() { + return Math.min(Math.floor((1 - this.score) * 5 + 0.25), 5 - this.fullStars); + }, + hasHalfStar() { + return this.fullStars + this.emptyStars < 5; + } + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts": +/*!************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts ***! + \************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); +/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcEmptyContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcEmptyContent.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); +/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./apps/settings/src/logger.ts"); +/* harmony import */ var _utils_appDiscoverParser_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/appDiscoverParser.ts */ "./apps/settings/src/utils/appDiscoverParser.ts"); + + + + + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_9__.defineComponent)({ + __name: 'AppStoreDiscoverSection', + setup(__props) { + const PostType = (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineAsyncComponent)(() => __webpack_require__.e(/*! import() */ "apps_settings_src_components_AppStoreDiscover_PostType_vue").then(__webpack_require__.bind(__webpack_require__, /*! ./PostType.vue */ "./apps/settings/src/components/AppStoreDiscover/PostType.vue"))); + const CarouselType = (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineAsyncComponent)(() => Promise.all(/*! import() */[__webpack_require__.e("apps_settings_src_components_AppStoreDiscover_PostType_vue"), __webpack_require__.e("apps_settings_src_components_AppStoreDiscover_CarouselType_vue")]).then(__webpack_require__.bind(__webpack_require__, /*! ./CarouselType.vue */ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue"))); + const ShowcaseType = (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineAsyncComponent)(() => Promise.all(/*! import() */[__webpack_require__.e("apps_settings_src_components_AppStoreDiscover_PostType_vue"), __webpack_require__.e("apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue")]).then(__webpack_require__.bind(__webpack_require__, /*! ./ShowcaseType.vue */ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue"))); + const hasError = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)(false); + const elements = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)([]); + /** + * Shuffle using the Fisher-Yates algorithm + * @param array The array to shuffle (in place) + */ + const shuffleArray = array => { + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } + return array; + }; + /** + * Load the app discover section information + */ + (0,vue__WEBPACK_IMPORTED_MODULE_9__.onBeforeMount)(async () => { + try { + const { + data + } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_2__.generateUrl)('/settings/api/apps/discover')); + if (data.length === 0) { + _logger__WEBPACK_IMPORTED_MODULE_7__["default"].info('No app discover elements available (empty response)'); + hasError.value = true; + return; + } + // Parse data to ensure dates are useable and then filter out expired or future elements + const parsedElements = data.map(_utils_appDiscoverParser_ts__WEBPACK_IMPORTED_MODULE_8__.parseApiResponse).filter(_utils_appDiscoverParser_ts__WEBPACK_IMPORTED_MODULE_8__.filterElements); + // Shuffle elements to make it looks more interesting + const shuffledElements = shuffleArray(parsedElements); + // Sort pinned elements first + shuffledElements.sort((a, b) => { + var _a$order, _b$order; + return ((_a$order = a.order) !== null && _a$order !== void 0 ? _a$order : Infinity) < ((_b$order = b.order) !== null && _b$order !== void 0 ? _b$order : Infinity) ? -1 : 1; + }); + // Set the elements to the UI + elements.value = shuffledElements; + } catch (error) { + hasError.value = true; + _logger__WEBPACK_IMPORTED_MODULE_7__["default"].error(error); + (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)((0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Could not load app discover section')); + } + }); + const getComponent = type => { + if (type === 'post') { + return PostType; + } else if (type === 'carousel') { + return CarouselType; + } else if (type === 'showcase') { + return ShowcaseType; + } + return (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineComponent)({ + mounted: () => _logger__WEBPACK_IMPORTED_MODULE_7__["default"].error('Unknown component requested ', type), + render: h => h('div', (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Could not render element')) + }); + }; + return { + __sfc: true, + PostType, + CarouselType, + ShowcaseType, + hasError, + elements, + shuffleArray, + getComponent, + mdiEyeOff: _mdi_js__WEBPACK_IMPORTED_MODULE_10__.mdiEyeOff, + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate, + NcEmptyContent: _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__["default"], + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_5__["default"], + NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_6__["default"] + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts": +/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts ***! + \*****************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebarTab.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebarTab.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Markdown.vue */ "./apps/settings/src/components/Markdown.vue"); + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ + __name: 'AppDescriptionTab', + props: { + app: { + type: null, + required: true + } + }, + setup(__props) { + return { + __sfc: true, + mdiTextShort: _mdi_js__WEBPACK_IMPORTED_MODULE_5__.mdiTextShort, + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, + NcAppSidebarTab: _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__["default"], + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__["default"], + Markdown: _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__["default"] + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts": +/*!**************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts ***! + \**************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebarTab.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebarTab.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Markdown.vue */ "./apps/settings/src/components/Markdown.vue"); + + + + + + + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ + __name: 'AppReleasesTab', + props: { + app: { + type: null, + required: true + } + }, + setup(__props) { + const props = __props; + const hasChangelog = (0,vue__WEBPACK_IMPORTED_MODULE_4__.computed)(() => { + var _props$app$releases$, _props$app$releases; + return Object.values((_props$app$releases$ = (_props$app$releases = props.app.releases) === null || _props$app$releases === void 0 || (_props$app$releases = _props$app$releases[0]) === null || _props$app$releases === void 0 ? void 0 : _props$app$releases.translations) !== null && _props$app$releases$ !== void 0 ? _props$app$releases$ : {}).some(_ref => { + let { + changelog + } = _ref; + return !!changelog; + }); + }); + const createChangelogFromRelease = release => { + var _ref2, _release$translations, _release$translations2, _release$translations3; + return (_ref2 = (_release$translations = (_release$translations2 = release.translations) === null || _release$translations2 === void 0 || (_release$translations2 = _release$translations2[(0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.getLanguage)()]) === null || _release$translations2 === void 0 ? void 0 : _release$translations2.changelog) !== null && _release$translations !== void 0 ? _release$translations : (_release$translations3 = release.translations) === null || _release$translations3 === void 0 || (_release$translations3 = _release$translations3.en) === null || _release$translations3 === void 0 ? void 0 : _release$translations3.changelog) !== null && _ref2 !== void 0 ? _ref2 : ''; + }; + return { + __sfc: true, + props, + hasChangelog, + createChangelogFromRelease, + mdiClockFast: _mdi_js__WEBPACK_IMPORTED_MODULE_5__.mdiClockFast, + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, + NcAppSidebarTab: _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__["default"], + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__["default"], + Markdown: _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__["default"] + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts": +/*!***********************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts ***! + \***********************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var vue_router_composables__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue-router/composables */ "./node_modules/vue-router/composables.mjs"); +/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); +/* harmony import */ var _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants/AppsConstants */ "./apps/settings/src/constants/AppsConstants.js"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAppContent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppContent.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcEmptyContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcEmptyContent.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); +/* harmony import */ var _components_AppList_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/AppList.vue */ "./apps/settings/src/components/AppList.vue"); +/* harmony import */ var _components_AppStoreDiscover_AppStoreDiscoverSection_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/AppStoreDiscover/AppStoreDiscoverSection.vue */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue"); + + + + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_8__.defineComponent)({ + __name: 'AppStore', + setup(__props) { + const route = (0,vue_router_composables__WEBPACK_IMPORTED_MODULE_9__.useRoute)(); + const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_1__.useAppsStore)(); + /** + * ID of the current active category, default is `discover` + */ + const currentCategory = (0,vue__WEBPACK_IMPORTED_MODULE_8__.computed)(() => { + var _route$params$categor, _route$params; + return (_route$params$categor = (_route$params = route.params) === null || _route$params === void 0 ? void 0 : _route$params.category) !== null && _route$params$categor !== void 0 ? _route$params$categor : 'discover'; + }); + const appStoreLabel = (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'App Store'); + const viewLabel = (0,vue__WEBPACK_IMPORTED_MODULE_8__.computed)(() => { + var _ref, _APPS_SECTION_ENUM$cu, _store$getCategoryByI; + return (_ref = (_APPS_SECTION_ENUM$cu = _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__.APPS_SECTION_ENUM[currentCategory.value]) !== null && _APPS_SECTION_ENUM$cu !== void 0 ? _APPS_SECTION_ENUM$cu : (_store$getCategoryByI = store.getCategoryById(currentCategory.value)) === null || _store$getCategoryByI === void 0 ? void 0 : _store$getCategoryByI.displayName) !== null && _ref !== void 0 ? _ref : appStoreLabel; + }); + (0,vue__WEBPACK_IMPORTED_MODULE_8__.watchEffect)(() => { + window.document.title = "".concat(viewLabel.value, " - ").concat(appStoreLabel, " - Nextcloud"); + }); + // TODO this part should be migrated to pinia + const instance = (0,vue__WEBPACK_IMPORTED_MODULE_8__.getCurrentInstance)(); + /** Is the app list loading */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const isLoading = (0,vue__WEBPACK_IMPORTED_MODULE_8__.computed)(() => (instance === null || instance === void 0 ? void 0 : instance.proxy).$store.getters.loading('list')); + (0,vue__WEBPACK_IMPORTED_MODULE_8__.onBeforeMount)(() => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (instance === null || instance === void 0 ? void 0 : instance.proxy).$store.dispatch('getCategories', { + shouldRefetchCategories: true + }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (instance === null || instance === void 0 ? void 0 : instance.proxy).$store.dispatch('getAllApps'); + }); + return { + __sfc: true, + route, + store, + currentCategory, + appStoreLabel, + viewLabel, + instance, + isLoading, + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, + NcAppContent: _nextcloud_vue_dist_Components_NcAppContent_js__WEBPACK_IMPORTED_MODULE_3__["default"], + NcEmptyContent: _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__["default"], + NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_5__["default"], + AppList: _components_AppList_vue__WEBPACK_IMPORTED_MODULE_6__["default"], + AppStoreDiscoverSection: _components_AppStoreDiscover_AppStoreDiscoverSection_vue__WEBPACK_IMPORTED_MODULE_7__["default"] + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts": +/*!*********************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts ***! + \*********************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants/AppsConstants */ "./apps/settings/src/constants/AppsConstants.js"); +/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAppNavigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppNavigation.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppNavigation.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAppNavigationItem_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppNavigationItem.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppNavigationItem.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAppNavigationSpacer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppNavigationSpacer.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppNavigationSpacer.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcCounterBubble_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcCounterBubble.js */ "./node_modules/@nextcloud/vue/dist/Components/NcCounterBubble.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); +/* harmony import */ var _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../constants/AppstoreCategoryIcons.ts */ "./apps/settings/src/constants/AppstoreCategoryIcons.ts"); + + + + + + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_11__.defineComponent)({ + __name: 'AppStoreNavigation', + setup(__props) { + const updateCount = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('settings', 'appstoreUpdateCount', 0); + const appstoreEnabled = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('settings', 'appstoreEnabled', true); + const developerDocsUrl = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('settings', 'appstoreDeveloperDocs', ''); + const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_3__.useAppsStore)(); + const categories = (0,vue__WEBPACK_IMPORTED_MODULE_11__.computed)(() => store.categories); + const categoriesLoading = (0,vue__WEBPACK_IMPORTED_MODULE_11__.computed)(() => store.loading.categories); + /** + * Check if the current instance has a support subscription from the Nextcloud GmbH + * + * For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription + */ + const isSubscribed = (0,vue__WEBPACK_IMPORTED_MODULE_11__.computed)(() => store.apps.find(_ref => { + let { + level + } = _ref; + return level === 300; + }) !== undefined); + // load categories when component is mounted + (0,vue__WEBPACK_IMPORTED_MODULE_11__.onBeforeMount)(() => { + store.loadCategories(); + store.loadApps(); + }); + return { + __sfc: true, + updateCount, + appstoreEnabled, + developerDocsUrl, + store, + categories, + categoriesLoading, + isSubscribed, + t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate, + APPS_SECTION_ENUM: _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__.APPS_SECTION_ENUM, + NcAppNavigation: _nextcloud_vue_dist_Components_NcAppNavigation_js__WEBPACK_IMPORTED_MODULE_4__["default"], + NcAppNavigationItem: _nextcloud_vue_dist_Components_NcAppNavigationItem_js__WEBPACK_IMPORTED_MODULE_5__["default"], + NcAppNavigationSpacer: _nextcloud_vue_dist_Components_NcAppNavigationSpacer_js__WEBPACK_IMPORTED_MODULE_6__["default"], + NcCounterBubble: _nextcloud_vue_dist_Components_NcCounterBubble_js__WEBPACK_IMPORTED_MODULE_7__["default"], + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_8__["default"], + NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_9__["default"], + APPSTORE_CATEGORY_ICONS: _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_10__["default"] + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts": +/*!******************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts ***! + \******************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); +/* harmony import */ var vue_router_composables__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vue-router/composables */ "./node_modules/vue-router/composables.mjs"); +/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebar_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebar.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _components_AppList_AppScore_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/AppList/AppScore.vue */ "./apps/settings/src/components/AppList/AppScore.vue"); +/* harmony import */ var _components_AppStoreSidebar_AppDescriptionTab_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/AppStoreSidebar/AppDescriptionTab.vue */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue"); +/* harmony import */ var _components_AppStoreSidebar_AppDetailsTab_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/AppStoreSidebar/AppDetailsTab.vue */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue"); +/* harmony import */ var _components_AppStoreSidebar_AppReleasesTab_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/AppStoreSidebar/AppReleasesTab.vue */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue"); +/* harmony import */ var _components_AppList_AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/AppList/AppLevelBadge.vue */ "./apps/settings/src/components/AppList/AppLevelBadge.vue"); +/* harmony import */ var _composables_useAppIcon_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../composables/useAppIcon.ts */ "./apps/settings/src/composables/useAppIcon.ts"); + + + + + + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_10__.defineComponent)({ + __name: 'AppStoreSidebar', + setup(__props) { + const route = (0,vue_router_composables__WEBPACK_IMPORTED_MODULE_11__.useRoute)(); + const router = (0,vue_router_composables__WEBPACK_IMPORTED_MODULE_11__.useRouter)(); + const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_1__.useAppsStore)(); + const appId = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { + var _route$params$id; + return (_route$params$id = route.params.id) !== null && _route$params$id !== void 0 ? _route$params$id : ''; + }); + const app = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => store.getAppById(appId.value)); + const hasRating = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { + var _app$value$appstoreDa; + return ((_app$value$appstoreDa = app.value.appstoreData) === null || _app$value$appstoreDa === void 0 ? void 0 : _app$value$appstoreDa.ratingNumOverall) > 5; + }); + const rating = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { + var _app$value$appstoreDa2, _app$value$appstoreDa3, _app$value$appstoreDa4; + return ((_app$value$appstoreDa2 = app.value.appstoreData) === null || _app$value$appstoreDa2 === void 0 ? void 0 : _app$value$appstoreDa2.ratingNumRecent) > 5 ? app.value.appstoreData.ratingRecent : (_app$value$appstoreDa3 = (_app$value$appstoreDa4 = app.value.appstoreData) === null || _app$value$appstoreDa4 === void 0 ? void 0 : _app$value$appstoreDa4.ratingOverall) !== null && _app$value$appstoreDa3 !== void 0 ? _app$value$appstoreDa3 : 0.5; + }); + const showSidebar = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => app.value !== null); + const { + appIcon + } = (0,_composables_useAppIcon_ts__WEBPACK_IMPORTED_MODULE_9__.useAppIcon)(app); + /** + * The second text line shown on the sidebar + */ + const licenseText = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => app.value ? (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Version {version}, {license}-licensed', { + version: app.value.version, + license: app.value.licence.toString().toUpperCase() + }) : ''); + const activeTab = (0,vue__WEBPACK_IMPORTED_MODULE_10__.ref)('details'); + (0,vue__WEBPACK_IMPORTED_MODULE_10__.watch)([app], () => { + activeTab.value = 'details'; + }); + /** + * Hide the details sidebar by pushing a new route + */ + const hideAppDetails = () => { + router.push({ + name: 'apps-category', + params: { + category: route.params.category + } + }); + }; + /** + * Whether the app screenshot is loaded + */ + const screenshotLoaded = (0,vue__WEBPACK_IMPORTED_MODULE_10__.ref)(false); + const hasScreenshot = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { + var _app$value; + return ((_app$value = app.value) === null || _app$value === void 0 ? void 0 : _app$value.screenshot) && screenshotLoaded.value; + }); + /** + * Preload the app screenshot + */ + const loadScreenshot = () => { + var _app$value2, _app$value3; + if ((_app$value2 = app.value) !== null && _app$value2 !== void 0 && _app$value2.releases && (_app$value3 = app.value) !== null && _app$value3 !== void 0 && _app$value3.screenshot) { + const image = new Image(); + image.onload = () => { + screenshotLoaded.value = true; + }; + image.src = app.value.screenshot; + } + }; + // Watch app and set screenshot loaded when + (0,vue__WEBPACK_IMPORTED_MODULE_10__.watch)([app], loadScreenshot); + (0,vue__WEBPACK_IMPORTED_MODULE_10__.onMounted)(loadScreenshot); + return { + __sfc: true, + route, + router, + store, + appId, + app, + hasRating, + rating, + showSidebar, + appIcon, + licenseText, + activeTab, + hideAppDetails, + screenshotLoaded, + hasScreenshot, + loadScreenshot, + NcAppSidebar: _nextcloud_vue_dist_Components_NcAppSidebar_js__WEBPACK_IMPORTED_MODULE_2__["default"], + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__["default"], + AppScore: _components_AppList_AppScore_vue__WEBPACK_IMPORTED_MODULE_4__["default"], + AppDescriptionTab: _components_AppStoreSidebar_AppDescriptionTab_vue__WEBPACK_IMPORTED_MODULE_5__["default"], + AppDetailsTab: _components_AppStoreSidebar_AppDetailsTab_vue__WEBPACK_IMPORTED_MODULE_6__["default"], + AppReleasesTab: _components_AppStoreSidebar_AppReleasesTab_vue__WEBPACK_IMPORTED_MODULE_7__["default"], + AppLevelBadge: _components_AppList_AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_8__["default"] + }; + } +})); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=script&lang=js": +/*!******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=script&lang=js ***! + \******************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); +/* harmony import */ var _AppList_AppItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppList/AppItem.vue */ "./apps/settings/src/components/AppList/AppItem.vue"); +/* harmony import */ var p_limit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! p-limit */ "./node_modules/p-limit/index.js"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'AppList', + components: { + AppItem: _AppList_AppItem_vue__WEBPACK_IMPORTED_MODULE_1__["default"], + NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_3__["default"] + }, + props: { + category: { + type: String, + required: true + } + }, + data() { + return { + search: '' + }; + }, + computed: { + counter() { + return this.apps.filter(app => app.update).length; + }, + loading() { + return this.$store.getters.loading('list'); + }, + hasPendingUpdate() { + return this.apps.filter(app => app.update).length > 0; + }, + showUpdateAll() { + return this.hasPendingUpdate && this.useListView; + }, + apps() { + const apps = this.$store.getters.getAllApps.filter(app => app.name.toLowerCase().search(this.search.toLowerCase()) !== -1).sort(function (a, b) { + const sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1) + a.name; + const sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1) + b.name; + return OC.Util.naturalSortCompare(sortStringA, sortStringB); + }); + if (this.category === 'installed') { + return apps.filter(app => app.installed); + } + if (this.category === 'enabled') { + return apps.filter(app => app.active && app.installed); + } + if (this.category === 'disabled') { + return apps.filter(app => !app.active && app.installed); + } + if (this.category === 'app-bundles') { + return apps.filter(app => app.bundles); + } + if (this.category === 'updates') { + return apps.filter(app => app.update); + } + if (this.category === 'supported') { + // For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription + return apps.filter(app => app.level === 300); + } + if (this.category === 'featured') { + // An app level of `200` will be set for apps featured on the app store + return apps.filter(app => app.level === 200); + } + + // filter app store categories + return apps.filter(app => { + return app.appstore && app.category !== undefined && (app.category === this.category || app.category.indexOf(this.category) > -1); + }); + }, + bundles() { + return this.$store.getters.getAppBundles.filter(bundle => this.bundleApps(bundle.id).length > 0); + }, + bundleApps() { + return function (bundle) { + return this.$store.getters.getAllApps.filter(app => { + return app.bundleIds !== undefined && app.bundleIds.includes(bundle); + }); + }; + }, + searchApps() { + if (this.search === '') { + return []; + } + return this.$store.getters.getAllApps.filter(app => { + if (app.name.toLowerCase().search(this.search.toLowerCase()) !== -1) { + return !this.apps.find(_app => _app.id === app.id); + } + return false; + }); + }, + useAppStoreView() { + return !this.useListView && !this.useBundleView; + }, + useListView() { + return this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates' || this.category === 'featured' || this.category === 'supported'; + }, + useBundleView() { + return this.category === 'app-bundles'; + }, + allBundlesEnabled() { + return id => { + return this.bundleApps(id).filter(app => !app.active).length === 0; + }; + }, + bundleToggleText() { + return id => { + if (this.allBundlesEnabled(id)) { + return t('settings', 'Disable all'); + } + return t('settings', 'Download and enable all'); + }; + } + }, + beforeDestroy() { + (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.unsubscribe)('nextcloud:unified-search.search', this.setSearch); + (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.unsubscribe)('nextcloud:unified-search.reset', this.resetSearch); + }, + mounted() { + (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.subscribe)('nextcloud:unified-search.search', this.setSearch); + (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.subscribe)('nextcloud:unified-search.reset', this.resetSearch); + }, + methods: { + setSearch(_ref) { + let { + query + } = _ref; + this.search = query; + }, + resetSearch() { + this.search = ''; + }, + toggleBundle(id) { + if (this.allBundlesEnabled(id)) { + return this.disableBundle(id); + } + return this.enableBundle(id); + }, + enableBundle(id) { + const apps = this.bundleApps(id).map(app => app.id); + this.$store.dispatch('enableApp', { + appId: apps, + groups: [] + }).catch(error => { + console.error(error); + OC.Notification.show(error); + }); + }, + disableBundle(id) { + const apps = this.bundleApps(id).map(app => app.id); + this.$store.dispatch('disableApp', { + appId: apps, + groups: [] + }).catch(error => { + OC.Notification.show(error); + }); + }, + updateAll() { + const limit = (0,p_limit__WEBPACK_IMPORTED_MODULE_2__["default"])(1); + this.apps.filter(app => app.update).map(app => limit(() => this.$store.dispatch('updateApp', { + appId: app.id + }))); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js": +/*!**************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js ***! + \**************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppScore_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppScore.vue */ "./apps/settings/src/components/AppList/AppScore.vue"); +/* harmony import */ var _AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppLevelBadge.vue */ "./apps/settings/src/components/AppList/AppLevelBadge.vue"); +/* harmony import */ var _mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/AppManagement.js */ "./apps/settings/src/mixins/AppManagement.js"); +/* harmony import */ var _SvgFilterMixin_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../SvgFilterMixin.vue */ "./apps/settings/src/components/SvgFilterMixin.vue"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'AppItem', + components: { + AppLevelBadge: _AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_1__["default"], + AppScore: _AppScore_vue__WEBPACK_IMPORTED_MODULE_0__["default"], + NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + mixins: [_mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_2__["default"], _SvgFilterMixin_vue__WEBPACK_IMPORTED_MODULE_3__["default"]], + props: { + app: { + type: Object, + required: true + }, + category: { + type: String, + required: true + }, + listView: { + type: Boolean, + default: true + }, + useBundleView: { + type: Boolean, + default: false + }, + headers: { + type: String, + default: null + }, + inline: { + type: Boolean, + default: false + } + }, + data() { + return { + isSelected: false, + scrolled: false, + screenshotLoaded: false + }; + }, + computed: { + hasRating() { + return this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5; + }, + dataItemTag() { + return this.listView ? 'td' : 'div'; + }, + withSidebar() { + return !!this.$route.params.id; + } + }, + watch: { + '$route.params.id'(id) { + this.isSelected = this.app.id === id; + } + }, + mounted() { + this.isSelected = this.app.id === this.$route.params.id; + if (this.app.releases && this.app.screenshot) { + const image = new Image(); + image.onload = () => { + this.screenshotLoaded = true; + }; + image.src = this.app.screenshot; + } + }, + watchers: {}, + methods: { + prefix(prefix, content) { + return prefix + '_' + content; + }, + getDataItemHeaders(columnName) { + return this.useBundleView ? [this.headers, columnName].join(' ') : null; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js": +/*!****************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js ***! + \****************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebarTab.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebarTab.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDateTime.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDateTime.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); +/* harmony import */ var _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcSelect.js */ "./node_modules/@nextcloud/vue/dist/Components/NcSelect.mjs"); +/* harmony import */ var _mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/AppManagement.js */ "./apps/settings/src/mixins/AppManagement.js"); +/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); +/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); +/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); + + + + + + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'AppDetailsTab', + components: { + NcAppSidebarTab: _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_0__["default"], + NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_1__["default"], + NcDateTime: _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_2__["default"], + NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__["default"], + NcSelect: _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_4__["default"] + }, + mixins: [_mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_5__["default"]], + props: { + app: { + type: Object, + required: true + } + }, + setup() { + const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_6__.useAppsStore)(); + return { + store, + mdiBug: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiBug, + mdiFeatureSearch: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiFeatureSearch, + mdiStar: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiStar, + mdiTextBox: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiTextBox, + mdiTooltipQuestion: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiTooltipQuestion + }; + }, + data() { + return { + groupCheckedAppsData: false + }; + }, + computed: { + lastModified() { + var _map$sort$at, _this$app$appstoreDat, _this$app$appstoreDat2; + return (_map$sort$at = ((_this$app$appstoreDat = (_this$app$appstoreDat2 = this.app.appstoreData) === null || _this$app$appstoreDat2 === void 0 ? void 0 : _this$app$appstoreDat2.releases) !== null && _this$app$appstoreDat !== void 0 ? _this$app$appstoreDat : []).map(_ref => { + let { + lastModified + } = _ref; + return Date.parse(lastModified); + }).sort().at(0)) !== null && _map$sort$at !== void 0 ? _map$sort$at : null; + }, + /** + * App authors as comma separated string + */ + appAuthors() { + console.warn(this.app); + if (!this.app) { + return ''; + } + const authorName = xmlNode => { + if (xmlNode['@value']) { + // Complex node (with email or homepage attribute) + return xmlNode['@value']; + } + // Simple text node + return xmlNode; + }; + const authors = Array.isArray(this.app.author) ? this.app.author.map(authorName) : [authorName(this.app.author)]; + return authors.sort((a, b) => a.split(' ').at(-1).localeCompare(b.split(' ').at(-1))).join(', '); + }, + appstoreUrl() { + return "https://apps.nextcloud.com/apps/".concat(this.app.id); + }, + /** + * Further external resources (e.g. website) + */ + externalResources() { + const resources = []; + if (!this.app.internal) { + resources.push({ + id: 'appstore', + href: this.appstoreUrl, + label: t('settings', 'View in store') + }); + } + if (this.app.website) { + resources.push({ + id: 'website', + href: this.app.website, + label: t('settings', 'Visit website') + }); + } + if (this.app.documentation) { + if (this.app.documentation.user) { + resources.push({ + id: 'doc-user', + href: this.app.documentation.user, + label: t('settings', 'Usage documentation') + }); + } + if (this.app.documentation.admin) { + resources.push({ + id: 'doc-admin', + href: this.app.documentation.admin, + label: t('settings', 'Admin documentation') + }); + } + if (this.app.documentation.developer) { + resources.push({ + id: 'doc-developer', + href: this.app.documentation.developer, + label: t('settings', 'Developer documentation') + }); + } + } + return resources; + }, + appCategories() { + return [this.app.category].flat().map(id => { + var _this$store$getCatego, _this$store$getCatego2; + return (_this$store$getCatego = (_this$store$getCatego2 = this.store.getCategoryById(id)) === null || _this$store$getCatego2 === void 0 ? void 0 : _this$store$getCatego2.displayName) !== null && _this$store$getCatego !== void 0 ? _this$store$getCatego : id; + }).join(', '); + }, + rateAppUrl() { + return "".concat(this.appstoreUrl, "#comments"); + }, + appGroups() { + return this.app.groups.map(group => { + return { + id: group, + name: group + }; + }); + }, + groups() { + return this.$store.getters.getGroups.filter(group => group.id !== 'disabled').sort((a, b) => a.name.localeCompare(b.name)); + } + }, + mounted() { + if (this.app.groups.length > 0) { + this.groupCheckedAppsData = true; + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js": +/*!*******************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js ***! + \*******************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! marked */ "./node_modules/marked/lib/marked.esm.js"); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dompurify */ "./node_modules/dompurify/dist/purify.js"); +/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_1__); + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'Markdown', + props: { + text: { + type: String, + default: '' + }, + minHeading: { + type: Number, + default: 1 + } + }, + computed: { + renderMarkdown() { + const renderer = new marked__WEBPACK_IMPORTED_MODULE_0__.marked.Renderer(); + renderer.link = function (href, title, text) { + let prot; + try { + prot = decodeURIComponent(unescape(href)).replace(/[^\w:]/g, '').toLowerCase(); + } catch (e) { + return ''; + } + if (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) { + return ''; + } + let out = ''; + return out; + }; + renderer.heading = (text, level) => { + level = Math.min(6, level + (this.minHeading - 1)); + return "").concat(text, ""); + }; + renderer.image = function (href, title, text) { + if (text) { + return text; + } + return title; + }; + renderer.blockquote = function (quote) { + return quote; + }; + return dompurify__WEBPACK_IMPORTED_MODULE_1___default().sanitize((0,marked__WEBPACK_IMPORTED_MODULE_0__.marked)(this.text.trim(), { + renderer, + gfm: false, + highlight: false, + tables: false, + breaks: false, + pedantic: false, + sanitize: true, + smartLists: true, + smartypants: false + }), { + SAFE_FOR_JQUERY: true, + ALLOWED_TAGS: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'strong', 'p', 'a', 'ul', 'ol', 'li', 'em', 'del', 'blockquote'] + }); + } + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js": +/*!*************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js ***! + \*************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ + name: 'SvgFilterMixin', + data() { + return { + filterId: '' + }; + }, + computed: { + filterUrl() { + return "url(#".concat(this.filterId, ")"); + } + }, + mounted() { + this.filterId = 'invertIconApps-' + Math.random().toString(36).substring(2); + } +}); + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true": +/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true ***! + \*****************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("div", { + attrs: { + id: "app-content-inner" + } + }, [_c("div", { + staticClass: "apps-list", + class: { + "apps-list--list-view": _vm.useBundleView || _vm.useListView, + "apps-list--store-view": _vm.useAppStoreView + }, + attrs: { + id: "apps-list" + } + }, [_vm.useListView ? [_vm.showUpdateAll ? _c("div", { + staticClass: "apps-list__toolbar" + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.n("settings", "%n app has an update available", "%n apps have an update available", _vm.counter)) + "\n\t\t\t\t"), _vm.showUpdateAll ? _c("NcButton", { + attrs: { + id: "app-list-update-all", + type: "primary" + }, + on: { + click: _vm.updateAll + } + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.n("settings", "Update", "Update all", _vm.counter)) + "\n\t\t\t\t")]) : _vm._e()], 1) : _vm._e(), _vm._v(" "), !_vm.showUpdateAll ? _c("div", { + staticClass: "apps-list__toolbar" + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "All apps are up-to-date.")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), _c("TransitionGroup", { + staticClass: "apps-list__list-container", + attrs: { + name: "apps-list", + tag: "table" + } + }, [_c("tr", { + key: "app-list-view-header" + }, [_c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Icon")))])]), _vm._v(" "), _c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Name")))])]), _vm._v(" "), _c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Version")))])]), _vm._v(" "), _c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Level")))])]), _vm._v(" "), _c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Actions")))])])]), _vm._v(" "), _vm._l(_vm.apps, function (app) { + return _c("AppItem", { + key: app.id, + attrs: { + app: app, + category: _vm.category + } + }); + })], 2)] : _vm._e(), _vm._v(" "), _vm.useBundleView ? _c("table", { + staticClass: "apps-list__list-container" + }, [_c("tr", { + key: "app-list-view-header" + }, [_c("th", { + attrs: { + id: "app-table-col-icon" + } + }, [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Icon")))])]), _vm._v(" "), _c("th", { + attrs: { + id: "app-table-col-name" + } + }, [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Name")))])]), _vm._v(" "), _c("th", { + attrs: { + id: "app-table-col-version" + } + }, [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Version")))])]), _vm._v(" "), _c("th", { + attrs: { + id: "app-table-col-level" + } + }, [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Level")))])]), _vm._v(" "), _c("th", { + attrs: { + id: "app-table-col-actions" + } + }, [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Actions")))])])]), _vm._v(" "), _vm._l(_vm.bundles, function (bundle) { + return [_c("tr", { + key: bundle.id + }, [_c("th", { + attrs: { + id: "app-table-rowgroup-".concat(bundle.id), + colspan: "5", + scope: "rowgroup" + } + }, [_c("div", { + staticClass: "apps-list__bundle-heading" + }, [_c("span", { + staticClass: "apps-list__bundle-header" + }, [_vm._v("\n\t\t\t\t\t\t\t\t" + _vm._s(bundle.name) + "\n\t\t\t\t\t\t\t")]), _vm._v(" "), _c("NcButton", { + attrs: { + type: "secondary" + }, + on: { + click: function ($event) { + return _vm.toggleBundle(bundle.id); + } + } + }, [_vm._v("\n\t\t\t\t\t\t\t\t" + _vm._s(_vm.t("settings", _vm.bundleToggleText(bundle.id))) + "\n\t\t\t\t\t\t\t")])], 1)])]), _vm._v(" "), _vm._l(_vm.bundleApps(bundle.id), function (app) { + return _c("AppItem", { + key: bundle.id + app.id, + attrs: { + "use-bundle-view": true, + headers: "app-table-rowgroup-".concat(bundle.id), + app: app, + category: _vm.category + } + }); + })]; + })], 2) : _vm._e(), _vm._v(" "), _vm.useAppStoreView ? _c("ul", { + staticClass: "apps-list__store-container" + }, _vm._l(_vm.apps, function (app) { + return _c("AppItem", { + key: app.id, + attrs: { + app: app, + category: _vm.category, + "list-view": false + } + }); + }), 1) : _vm._e()], 2), _vm._v(" "), _c("div", { + staticClass: "apps-list apps-list--list-view", + attrs: { + id: "apps-list-search" + } + }, [_c("div", { + staticClass: "apps-list__list-container" + }, [_vm.search !== "" && _vm.searchApps.length > 0 ? _c("table", { + staticClass: "apps-list__list-container" + }, [_c("caption", { + staticClass: "apps-list__bundle-header" + }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("settings", "Results from other categories")) + "\n\t\t\t\t")]), _vm._v(" "), _c("tr", { + key: "app-list-view-header" + }, [_c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Icon")))])]), _vm._v(" "), _c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Name")))])]), _vm._v(" "), _c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Version")))])]), _vm._v(" "), _c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Level")))])]), _vm._v(" "), _c("th", [_c("span", { + staticClass: "hidden-visually" + }, [_vm._v(_vm._s(_vm.t("settings", "Actions")))])])]), _vm._v(" "), _vm._l(_vm.searchApps, function (app) { + return _c("AppItem", { + key: app.id, + attrs: { + app: app, + category: _vm.category + } + }); + })], 2) : _vm._e()])]), _vm._v(" "), _vm.search !== "" && !_vm.loading && _vm.searchApps.length === 0 && _vm.apps.length === 0 ? _c("div", { + staticClass: "emptycontent emptycontent-search", + attrs: { + id: "apps-list-empty" + } + }, [_c("div", { + staticClass: "icon-settings-dark", + attrs: { + id: "app-list-empty-icon" + } + }), _vm._v(" "), _c("h2", [_vm._v(_vm._s(_vm.t("settings", "No apps found for your version")))])]) : _vm._e()]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true": +/*!*************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true ***! + \*************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c(_vm.listView ? "tr" : _vm.inline ? "article" : "li", { + tag: "component", + staticClass: "app-item", + class: { + "app-item--list-view": _vm.listView, + "app-item--store-view": !_vm.listView, + "app-item--selected": _vm.isSelected, + "app-item--with-sidebar": _vm.withSidebar + } + }, [_c(_vm.dataItemTag, { + tag: "component", + staticClass: "app-image app-image-icon", + attrs: { + headers: _vm.getDataItemHeaders("app-table-col-icon") + } + }, [_vm.listView && !_vm.app.preview || !_vm.listView && !_vm.screenshotLoaded ? _c("div", { + staticClass: "icon-settings-dark" + }) : _vm.listView && _vm.app.preview ? _c("svg", { + attrs: { + width: "32", + height: "32", + viewBox: "0 0 32 32" + } + }, [_c("image", { + staticClass: "app-icon", + attrs: { + x: "0", + y: "0", + width: "32", + height: "32", + preserveAspectRatio: "xMinYMin meet", + "xlink:href": _vm.app.preview + } + })]) : _vm._e(), _vm._v(" "), !_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded ? _c("img", { + attrs: { + src: _vm.app.screenshot, + alt: "" + } + }) : _vm._e()]), _vm._v(" "), _c(_vm.dataItemTag, { + tag: "component", + staticClass: "app-name", + attrs: { + headers: _vm.getDataItemHeaders("app-table-col-name") + } + }, [_c("router-link", { + staticClass: "app-name--link", + attrs: { + to: { + name: "apps-details", + params: { + category: _vm.category, + id: _vm.app.id + } + }, + "aria-label": _vm.t("settings", "Show details for {appName} app", { + appName: _vm.app.name + }) + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.app.name) + "\n\t\t")])], 1), _vm._v(" "), !_vm.listView ? _c(_vm.dataItemTag, { + tag: "component", + staticClass: "app-summary", + attrs: { + headers: _vm.getDataItemHeaders("app-version") + } + }, [_vm._v("\n\t\t" + _vm._s(_vm.app.summary) + "\n\t")]) : _vm._e(), _vm._v(" "), _vm.listView ? _c(_vm.dataItemTag, { + tag: "component", + staticClass: "app-version", + attrs: { + headers: _vm.getDataItemHeaders("app-table-col-version") + } + }, [_vm.app.version ? _c("span", [_vm._v(_vm._s(_vm.app.version))]) : _vm.app.appstoreData.releases[0].version ? _c("span", [_vm._v(_vm._s(_vm.app.appstoreData.releases[0].version))]) : _vm._e()]) : _vm._e(), _vm._v(" "), _c(_vm.dataItemTag, { + tag: "component", + staticClass: "app-level", + attrs: { + headers: _vm.getDataItemHeaders("app-table-col-level") + } + }, [_c("AppLevelBadge", { + attrs: { + level: _vm.app.level + } + }), _vm._v(" "), _vm.hasRating && !_vm.listView ? _c("AppScore", { + attrs: { + score: _vm.app.score + } + }) : _vm._e()], 1), _vm._v(" "), !_vm.inline ? _c(_vm.dataItemTag, { + tag: "component", + staticClass: "app-actions", + attrs: { + headers: _vm.getDataItemHeaders("app-table-col-actions") + } + }, [_vm.app.error ? _c("div", { + staticClass: "warning" + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.app.error) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.isLoading ? _c("div", { + staticClass: "icon icon-loading-small" + }) : _vm._e(), _vm._v(" "), _vm.app.update ? _c("NcButton", { + attrs: { + type: "primary", + disabled: _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + $event.stopPropagation(); + return _vm.update(_vm.app.id); + } + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Update to {update}", { + update: _vm.app.update + })) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.app.canUnInstall ? _c("NcButton", { + staticClass: "uninstall", + attrs: { + type: "tertiary", + disabled: _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + $event.stopPropagation(); + return _vm.remove(_vm.app.id); + } + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Remove")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.app.active ? _c("NcButton", { + attrs: { + disabled: _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + $event.stopPropagation(); + return _vm.disable(_vm.app.id); + } + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Disable")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible) ? _c("NcButton", { + attrs: { + title: _vm.enableButtonTooltip, + "aria-label": _vm.enableButtonTooltip, + type: "primary", + disabled: !_vm.app.canInstall || _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + $event.stopPropagation(); + return _vm.enable(_vm.app.id); + } + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.enableButtonText) + "\n\t\t")]) : !_vm.app.active ? _c("NcButton", { + attrs: { + title: _vm.forceEnableButtonTooltip, + "aria-label": _vm.forceEnableButtonTooltip, + type: "secondary", + disabled: _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + $event.stopPropagation(); + return _vm.forceEnable(_vm.app.id); + } + } + }, [_vm._v("\n\t\t\t" + _vm._s(_vm.forceEnableButtonText) + "\n\t\t")]) : _vm._e()], 1) : _vm._e()], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _setup.isSupported || _setup.isFeatured ? _c("span", { + staticClass: "app-level-badge", + class: { + "app-level-badge--supported": _setup.isSupported + }, + attrs: { + title: _setup.badgeTitle + } + }, [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.badgeIcon, + size: 20, + inline: "" + } + }), _vm._v("\n\t" + _vm._s(_setup.badgeText) + "\n")], 1) : _vm._e(); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c("span", { + staticClass: "app-score__wrapper", + attrs: { + role: "img", + "aria-label": _vm.title, + title: _vm.title + } + }, [_vm._l(_vm.fullStars, function (index) { + return _c("NcIconSvgWrapper", { + key: "full-star-".concat(index), + attrs: { + path: _vm.mdiStar, + inline: "" + } + }); + }), _vm._v(" "), _vm.hasHalfStar ? _c("NcIconSvgWrapper", { + attrs: { + path: _vm.mdiStarHalfFull, + inline: "" + } + }) : _vm._e(), _vm._v(" "), _vm._l(_vm.emptyStars, function (index) { + return _c("NcIconSvgWrapper", { + key: "empty-star-".concat(index), + attrs: { + path: _vm.mdiStarOutline, + inline: "" + } + }); + })], 2); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c("div", { + staticClass: "app-discover" + }, [_setup.hasError ? _c(_setup.NcEmptyContent, { + attrs: { + name: _setup.t("settings", "Nothing to show"), + description: _setup.t("settings", "Could not load section content from app store.") + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.mdiEyeOff, + size: 64 + } + })]; + }, + proxy: true + }], null, false, 638098482) + }) : _setup.elements.length === 0 ? _c(_setup.NcEmptyContent, { + attrs: { + name: _setup.t("settings", "Loading"), + description: _setup.t("settings", "Fetching the latest news…") + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcLoadingIcon, { + attrs: { + size: 64 + } + })]; + }, + proxy: true + }]) + }) : _vm._l(_setup.elements, function (entry, index) { + var _entry$id; + return _c(_setup.getComponent(entry.type), _vm._b({ + key: (_entry$id = entry.id) !== null && _entry$id !== void 0 ? _entry$id : index, + tag: "component" + }, "component", entry, false)); + })], 2); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c(_setup.NcAppSidebarTab, { + attrs: { + id: "desc", + name: _setup.t("settings", "Description"), + order: 0 + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.mdiTextShort + } + })]; + }, + proxy: true + }]) + }, [_vm._v(" "), _c("div", { + staticClass: "app-description" + }, [_c(_setup.Markdown, { + attrs: { + text: _vm.app.description, + "min-heading": 4 + } + })], 1)]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm$app$bugs, _vm$app$bugs2, _vm$app$appstoreData; + var _vm = this, + _c = _vm._self._c; + return _c("NcAppSidebarTab", { + attrs: { + id: "details", + name: _vm.t("settings", "Details"), + order: 1 + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("NcIconSvgWrapper", { + attrs: { + path: _vm.mdiTextBox + } + })]; + }, + proxy: true + }]) + }, [_vm._v(" "), _c("div", { + staticClass: "app-details" + }, [_c("div", { + staticClass: "app-details__actions" + }, [_vm.app.active && _vm.canLimitToGroups(_vm.app) ? _c("div", { + staticClass: "app-details__actions-groups" + }, [_c("input", { + directives: [{ + name: "model", + rawName: "v-model", + value: _vm.groupCheckedAppsData, + expression: "groupCheckedAppsData" + }], + staticClass: "groups-enable__checkbox checkbox", + attrs: { + id: "groups_enable_".concat(_vm.app.id), + type: "checkbox" + }, + domProps: { + value: _vm.app.id, + checked: Array.isArray(_vm.groupCheckedAppsData) ? _vm._i(_vm.groupCheckedAppsData, _vm.app.id) > -1 : _vm.groupCheckedAppsData + }, + on: { + change: [function ($event) { + var $$a = _vm.groupCheckedAppsData, + $$el = $event.target, + $$c = $$el.checked ? true : false; + if (Array.isArray($$a)) { + var $$v = _vm.app.id, + $$i = _vm._i($$a, $$v); + if ($$el.checked) { + $$i < 0 && (_vm.groupCheckedAppsData = $$a.concat([$$v])); + } else { + $$i > -1 && (_vm.groupCheckedAppsData = $$a.slice(0, $$i).concat($$a.slice($$i + 1))); + } + } else { + _vm.groupCheckedAppsData = $$c; + } + }, _vm.setGroupLimit] + } + }), _vm._v(" "), _c("label", { + attrs: { + for: "groups_enable_".concat(_vm.app.id) + } + }, [_vm._v(_vm._s(_vm.t("settings", "Limit to groups")))]), _vm._v(" "), _c("input", { + staticClass: "group_select", + attrs: { + type: "hidden", + title: _vm.t("settings", "All"), + value: "" + } + }), _vm._v(" "), _c("br"), _vm._v(" "), _c("label", { + attrs: { + for: "limitToGroups" + } + }, [_c("span", [_vm._v(_vm._s(_vm.t("settings", "Limit app usage to groups")))])]), _vm._v(" "), _vm.isLimitedToGroups(_vm.app) ? _c("NcSelect", { + attrs: { + "input-id": "limitToGroups", + options: _vm.groups, + value: _vm.appGroups, + limit: 5, + label: "name", + multiple: true, + "close-on-select": false + }, + on: { + "option:selected": _vm.addGroupLimitation, + "option:deselected": _vm.removeGroupLimitation, + search: _vm.asyncFindGroup + } + }, [_c("span", { + attrs: { + slot: "noResult" + }, + slot: "noResult" + }, [_vm._v(_vm._s(_vm.t("settings", "No results")))])]) : _vm._e()], 1) : _vm._e(), _vm._v(" "), _c("div", { + staticClass: "app-details__actions-manage" + }, [_vm.app.update ? _c("input", { + staticClass: "update primary", + attrs: { + type: "button", + value: _vm.t("settings", "Update to {version}", { + version: _vm.app.update + }), + disabled: _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + return _vm.update(_vm.app.id); + } + } + }) : _vm._e(), _vm._v(" "), _vm.app.canUnInstall ? _c("input", { + staticClass: "uninstall", + attrs: { + type: "button", + value: _vm.t("settings", "Remove"), + disabled: _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + return _vm.remove(_vm.app.id); + } + } + }) : _vm._e(), _vm._v(" "), _vm.app.active ? _c("input", { + staticClass: "enable", + attrs: { + type: "button", + value: _vm.t("settings", "Disable"), + disabled: _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + return _vm.disable(_vm.app.id); + } + } + }) : _vm._e(), _vm._v(" "), !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible) ? _c("input", { + staticClass: "enable primary", + attrs: { + title: _vm.enableButtonTooltip, + "aria-label": _vm.enableButtonTooltip, + type: "button", + value: _vm.enableButtonText, + disabled: !_vm.app.canInstall || _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + return _vm.enable(_vm.app.id); + } + } + }) : !_vm.app.active && !_vm.app.canInstall ? _c("input", { + staticClass: "enable force", + attrs: { + title: _vm.forceEnableButtonTooltip, + "aria-label": _vm.forceEnableButtonTooltip, + type: "button", + value: _vm.forceEnableButtonText, + disabled: _vm.installing || _vm.isLoading + }, + on: { + click: function ($event) { + return _vm.forceEnable(_vm.app.id); + } + } + }) : _vm._e()])]), _vm._v(" "), _c("ul", { + staticClass: "app-details__dependencies" + }, [_vm.app.missingMinOwnCloudVersion ? _c("li", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "This app has no minimum Nextcloud version assigned. This will be an error in the future.")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), _vm.app.missingMaxOwnCloudVersion ? _c("li", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "This app has no maximum Nextcloud version assigned. This will be an error in the future.")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), !_vm.app.canInstall ? _c("li", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "This app cannot be installed because the following dependencies are not fulfilled:")) + "\n\t\t\t\t"), _c("ul", { + staticClass: "missing-dependencies" + }, _vm._l(_vm.app.missingDependencies, function (dep, index) { + return _c("li", { + key: index + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(dep) + "\n\t\t\t\t\t")]); + }), 0)]) : _vm._e()]), _vm._v(" "), _vm.lastModified ? _c("div", { + staticClass: "app-details__section" + }, [_c("h4", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "Latest updated")) + "\n\t\t\t")]), _vm._v(" "), _c("NcDateTime", { + attrs: { + timestamp: _vm.lastModified + } + })], 1) : _vm._e(), _vm._v(" "), _c("div", { + staticClass: "app-details__section" + }, [_c("h4", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "Author")) + "\n\t\t\t")]), _vm._v(" "), _c("p", { + staticClass: "app-details__authors" + }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.appAuthors) + "\n\t\t\t")])]), _vm._v(" "), _c("div", { + staticClass: "app-details__section" + }, [_c("h4", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "Categories")) + "\n\t\t\t")]), _vm._v(" "), _c("p", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.appCategories) + "\n\t\t\t")])]), _vm._v(" "), _vm.externalResources.length > 0 ? _c("div", { + staticClass: "app-details__section" + }, [_c("h4", [_vm._v(_vm._s(_vm.t("settings", "Resources")))]), _vm._v(" "), _c("ul", { + staticClass: "app-details__documentation", + attrs: { + "aria-label": _vm.t("settings", "Documentation") + } + }, _vm._l(_vm.externalResources, function (resource) { + return _c("li", { + key: resource.id + }, [_c("a", { + staticClass: "appslink", + attrs: { + href: resource.href, + target: "_blank", + rel: "noreferrer noopener" + } + }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(resource.label) + " ↗\n\t\t\t\t\t")])]); + }), 0)]) : _vm._e(), _vm._v(" "), _c("div", { + staticClass: "app-details__section" + }, [_c("h4", [_vm._v(_vm._s(_vm.t("settings", "Interact")))]), _vm._v(" "), _c("div", { + staticClass: "app-details__interact" + }, [_c("NcButton", { + attrs: { + disabled: !_vm.app.bugs, + href: (_vm$app$bugs = _vm.app.bugs) !== null && _vm$app$bugs !== void 0 ? _vm$app$bugs : "#", + "aria-label": _vm.t("settings", "Report a bug"), + title: _vm.t("settings", "Report a bug") + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("NcIconSvgWrapper", { + attrs: { + path: _vm.mdiBug + } + })]; + }, + proxy: true + }]) + }), _vm._v(" "), _c("NcButton", { + attrs: { + disabled: !_vm.app.bugs, + href: (_vm$app$bugs2 = _vm.app.bugs) !== null && _vm$app$bugs2 !== void 0 ? _vm$app$bugs2 : "#", + "aria-label": _vm.t("settings", "Request feature"), + title: _vm.t("settings", "Request feature") + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("NcIconSvgWrapper", { + attrs: { + path: _vm.mdiFeatureSearch + } + })]; + }, + proxy: true + }]) + }), _vm._v(" "), (_vm$app$appstoreData = _vm.app.appstoreData) !== null && _vm$app$appstoreData !== void 0 && _vm$app$appstoreData.discussion ? _c("NcButton", { + attrs: { + href: _vm.app.appstoreData.discussion, + "aria-label": _vm.t("settings", "Ask questions or discuss"), + title: _vm.t("settings", "Ask questions or discuss") + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("NcIconSvgWrapper", { + attrs: { + path: _vm.mdiTooltipQuestion + } + })]; + }, + proxy: true + }], null, false, 1288192462) + }) : _vm._e(), _vm._v(" "), !_vm.app.internal ? _c("NcButton", { + attrs: { + href: _vm.rateAppUrl, + "aria-label": _vm.t("settings", "Rate the app"), + title: _vm.t("settings", "Rate") + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c("NcIconSvgWrapper", { + attrs: { + path: _vm.mdiStar + } + })]; + }, + proxy: true + }], null, false, 422450625) + }) : _vm._e()], 1)])])]); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true": +/*!****************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true ***! + \****************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _setup.hasChangelog ? _c(_setup.NcAppSidebarTab, { + attrs: { + id: "changelog", + name: _setup.t("settings", "Changelog"), + order: 2 + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.mdiClockFast, + size: 24 + } + })]; + }, + proxy: true + }], null, false, 1849836872) + }, [_vm._v(" "), _vm._l(_vm.app.releases, function (release) { + return _c("div", { + key: release.version, + staticClass: "app-sidebar-tabs__release" + }, [_c("h2", [_vm._v(_vm._s(release.version))]), _vm._v(" "), _c(_setup.Markdown, { + staticClass: "app-sidebar-tabs__release-text", + attrs: { + text: _setup.createChangelogFromRelease(release) + } + })], 1); + })], 2) : _vm._e(); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true": +/*!******************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true ***! + \******************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c; + return _c("div", { + staticClass: "settings-markdown", + domProps: { + innerHTML: _vm._s(_vm.renderMarkdown) + } + }); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true": +/*!*************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true ***! + \*************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c(_setup.NcAppContent, { + staticClass: "app-settings-content", + attrs: { + "page-heading": _setup.appStoreLabel + } + }, [_c("h2", { + staticClass: "app-settings-content__label", + domProps: { + textContent: _vm._s(_setup.viewLabel) + } + }), _vm._v(" "), _setup.currentCategory === "discover" ? _c(_setup.AppStoreDiscoverSection) : _setup.isLoading ? _c(_setup.NcEmptyContent, { + staticClass: "empty-content__loading", + attrs: { + name: _setup.t("settings", "Loading app list") + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcLoadingIcon, { + attrs: { + size: 64 + } + })]; + }, + proxy: true + }]) + }) : _c(_setup.AppList, { + attrs: { + category: _setup.currentCategory + } + })], 1); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true": +/*!***********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true ***! + \***********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _c(_setup.NcAppNavigation, { + attrs: { + "aria-label": _setup.t("settings", "Apps") + }, + scopedSlots: _vm._u([{ + key: "list", + fn: function () { + return [_c(_setup.NcAppNavigationItem, { + attrs: { + id: "app-category-discover", + to: { + name: "apps-category", + params: { + category: "discover" + } + }, + name: _setup.APPS_SECTION_ENUM.discover + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.APPSTORE_CATEGORY_ICONS.discover + } + })]; + }, + proxy: true + }]) + }), _vm._v(" "), _c(_setup.NcAppNavigationItem, { + attrs: { + id: "app-category-installed", + to: { + name: "apps-category", + params: { + category: "installed" + } + }, + name: _setup.APPS_SECTION_ENUM.installed + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.APPSTORE_CATEGORY_ICONS.installed + } + })]; + }, + proxy: true + }]) + }), _vm._v(" "), _c(_setup.NcAppNavigationItem, { + attrs: { + id: "app-category-enabled", + to: { + name: "apps-category", + params: { + category: "enabled" + } + }, + name: _setup.APPS_SECTION_ENUM.enabled + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.APPSTORE_CATEGORY_ICONS.enabled + } + })]; + }, + proxy: true + }]) + }), _vm._v(" "), _c(_setup.NcAppNavigationItem, { + attrs: { + id: "app-category-disabled", + to: { + name: "apps-category", + params: { + category: "disabled" + } + }, + name: _setup.APPS_SECTION_ENUM.disabled + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.APPSTORE_CATEGORY_ICONS.disabled + } + })]; + }, + proxy: true + }]) + }), _vm._v(" "), _setup.updateCount > 0 ? _c(_setup.NcAppNavigationItem, { + attrs: { + id: "app-category-updates", + to: { + name: "apps-category", + params: { + category: "updates" + } + }, + name: _setup.APPS_SECTION_ENUM.updates + }, + scopedSlots: _vm._u([{ + key: "counter", + fn: function () { + return [_c(_setup.NcCounterBubble, [_vm._v(_vm._s(_setup.updateCount))])]; + }, + proxy: true + }, { + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.APPSTORE_CATEGORY_ICONS.updates + } + })]; + }, + proxy: true + }], null, false, 2824895104) + }) : _vm._e(), _vm._v(" "), _c(_setup.NcAppNavigationItem, { + attrs: { + id: "app-category-your-bundles", + to: { + name: "apps-category", + params: { + category: "app-bundles" + } + }, + name: _setup.APPS_SECTION_ENUM["app-bundles"] + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.APPSTORE_CATEGORY_ICONS.bundles + } + })]; + }, + proxy: true + }]) + }), _vm._v(" "), _c(_setup.NcAppNavigationSpacer), _vm._v(" "), _setup.appstoreEnabled && _setup.categoriesLoading ? _c("li", { + staticClass: "categories--loading" + }, [_c(_setup.NcLoadingIcon, { + attrs: { + size: 20, + "aria-label": _setup.t("settings", "Loading categories") + } + })], 1) : _setup.appstoreEnabled && !_setup.categoriesLoading ? [_setup.isSubscribed ? _c(_setup.NcAppNavigationItem, { + attrs: { + id: "app-category-supported", + to: { + name: "apps-category", + params: { + category: "supported" + } + }, + name: _setup.APPS_SECTION_ENUM.supported + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.APPSTORE_CATEGORY_ICONS.supported + } + })]; + }, + proxy: true + }], null, false, 613663011) + }) : _vm._e(), _vm._v(" "), _c(_setup.NcAppNavigationItem, { + attrs: { + id: "app-category-featured", + to: { + name: "apps-category", + params: { + category: "featured" + } + }, + name: _setup.APPS_SECTION_ENUM.featured + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: _setup.APPSTORE_CATEGORY_ICONS.featured + } + })]; + }, + proxy: true + }]) + }), _vm._v(" "), _vm._l(_setup.categories, function (category) { + return _c(_setup.NcAppNavigationItem, { + key: category.id, + attrs: { + id: "app-category-".concat(category.id), + name: category.displayName, + to: { + name: "apps-category", + params: { + category: category.id + } + } + }, + scopedSlots: _vm._u([{ + key: "icon", + fn: function () { + return [_c(_setup.NcIconSvgWrapper, { + attrs: { + path: category.icon + } + })]; + }, + proxy: true + }], null, true) + }); + })] : _vm._e(), _vm._v(" "), _c(_setup.NcAppNavigationItem, { + attrs: { + id: "app-developer-docs", + name: _setup.t("settings", "Developer documentation ↗"), + href: _setup.developerDocsUrl + } + })]; + }, + proxy: true + }]) + }); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true": +/*!********************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true ***! + \********************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* binding */ render), +/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) +/* harmony export */ }); +var render = function render() { + var _vm = this, + _c = _vm._self._c, + _setup = _vm._self._setupProxy; + return _setup.showSidebar ? _c(_setup.NcAppSidebar, { + staticClass: "app-sidebar", + class: { + "app-sidebar--with-screenshot": _setup.hasScreenshot + }, + attrs: { + active: _setup.activeTab, + background: _setup.hasScreenshot ? _setup.app.screenshot : undefined, + compact: !_setup.hasScreenshot, + name: _setup.app.name, + title: _setup.app.name, + subname: _setup.licenseText, + subtitle: _setup.licenseText + }, + on: { + "update:active": function ($event) { + _setup.activeTab = $event; + }, + close: _setup.hideAppDetails + }, + scopedSlots: _vm._u([!_setup.hasScreenshot ? { + key: "header", + fn: function () { + var _setup$appIcon; + return [_c(_setup.NcIconSvgWrapper, { + staticClass: "app-sidebar__fallback-icon", + attrs: { + svg: (_setup$appIcon = _setup.appIcon) !== null && _setup$appIcon !== void 0 ? _setup$appIcon : "", + size: 64 + } + })]; + }, + proxy: true + } : null, { + key: "description", + fn: function () { + return [_c("div", { + staticClass: "app-sidebar__badges" + }, [_c(_setup.AppLevelBadge, { + attrs: { + level: _setup.app.level + } + }), _vm._v(" "), _setup.hasRating ? _c(_setup.AppScore, { + attrs: { + score: _setup.rating + } + }) : _vm._e()], 1)]; + }, + proxy: true + }], null, true) + }, [_vm._v(" "), _vm._v(" "), _c(_setup.AppDescriptionTab, { + attrs: { + app: _setup.app + } + }), _vm._v(" "), _c(_setup.AppDetailsTab, { + attrs: { + app: _setup.app + } + }), _vm._v(" "), _c(_setup.AppReleasesTab, { + attrs: { + app: _setup.app + } + })], 1) : _vm._e(); +}; +var staticRenderFns = []; +render._withStripped = true; + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.apps-list[data-v-6d1e92a4] { + display: flex; + flex-wrap: wrap; + align-content: flex-start; +} +.apps-list--move[data-v-6d1e92a4] { + transition: transform 1s; +} +.apps-list #app-list-update-all[data-v-6d1e92a4] { + margin-left: 10px; +} +.apps-list__toolbar[data-v-6d1e92a4] { + height: 60px; + padding: 8px; + padding-left: 60px; + width: 100%; + background-color: var(--color-main-background); + position: sticky; + top: 0; + z-index: 1; + display: flex; + align-items: center; +} +.apps-list--list-view[data-v-6d1e92a4] { + margin-bottom: 100px; + position: relative; +} +.apps-list__list-container[data-v-6d1e92a4] { + width: 100%; +} +.apps-list__store-container[data-v-6d1e92a4] { + display: flex; + flex-wrap: wrap; +} +.apps-list__bundle-heading[data-v-6d1e92a4] { + display: flex; + align-items: center; + margin: 20px 10px 20px 0; +} +.apps-list__bundle-header[data-v-6d1e92a4] { + margin: 0 10px 0 50px; + font-weight: bold; + font-size: 20px; + line-height: 30px; + color: var(--color-text-light); +} +#apps-list-search .app-item h2[data-v-6d1e92a4] { + margin-bottom: 0; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `/** + * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +.app-item[data-v-429da85a] { + position: relative; +} +.app-item[data-v-429da85a]:hover { + background-color: var(--color-background-dark); +} +.app-item--list-view[data-v-429da85a] { + --app-item-padding: calc(var(--default-grid-baseline) * 2); + --app-item-height: calc(var(--default-clickable-area) + var(--app-item-padding) * 2); + /* hide app version and level on narrower screens */ + /* Hide actions on a small screen. Click on app opens fill-screen sidebar with the buttons */ +} +.app-item--list-view.app-item--selected[data-v-429da85a] { + background-color: var(--color-background-dark); +} +.app-item--list-view > *[data-v-429da85a] { + vertical-align: middle; + border-bottom: 1px solid var(--color-border); + padding: var(--app-item-padding); + height: var(--app-item-height); +} +.app-item--list-view .app-image[data-v-429da85a] { + width: var(--default-clickable-area); + height: auto; + text-align: right; +} +.app-item--list-view .app-image-icon svg[data-v-429da85a], +.app-item--list-view .app-image-icon .icon-settings-dark[data-v-429da85a] { + margin-top: 5px; + width: 20px; + height: 20px; + opacity: 0.5; + background-size: cover; + display: inline-block; +} +.app-item--list-view .app-name[data-v-429da85a] { + padding: 0 var(--app-item-padding); +} +.app-item--list-view .app-name--link[data-v-429da85a] { + height: var(--app-item-height); + display: flex; + align-items: center; +} +.app-item--list-view .app-name--link[data-v-429da85a]::after { + content: ""; + position: absolute; + left: 0; + right: 0; + height: var(--app-item-height); +} +.app-item--list-view .app-actions[data-v-429da85a] { + display: flex; + gap: var(--app-item-padding); + flex-wrap: wrap; + justify-content: end; +} +.app-item--list-view .app-actions .icon-loading-small[data-v-429da85a] { + display: inline-block; + top: 4px; + margin-right: 10px; +} +@media only screen and (max-width: 900px) { +.app-item--list-view .app-version[data-v-429da85a], + .app-item--list-view .app-level[data-v-429da85a] { + display: none; +} +} +@media only screen and (max-width: 512px) { +.app-item--list-view .app-actions[data-v-429da85a] { + display: none; +} +} +.app-item--store-view[data-v-429da85a] { + padding: 30px; +} +.app-item--store-view .app-image-icon .icon-settings-dark[data-v-429da85a] { + width: 100%; + height: 150px; + background-size: 45px; + opacity: 0.5; +} +.app-item--store-view .app-image-icon svg[data-v-429da85a] { + position: absolute; + bottom: 43px; + /* position halfway vertically */ + width: 64px; + height: 64px; + opacity: 0.1; +} +.app-item--store-view .app-name[data-v-429da85a] { + margin: 5px 0; +} +.app-item--store-view .app-name--link[data-v-429da85a]::after { + content: ""; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; +} +.app-item--store-view .app-actions[data-v-429da85a] { + margin: 10px 0; +} +@media only screen and (min-width: 1601px) { +.app-item--store-view[data-v-429da85a] { + width: 25%; +} +.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { + width: 33%; +} +} +@media only screen and (max-width: 1600px) { +.app-item--store-view[data-v-429da85a] { + width: 25%; +} +.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { + width: 33%; +} +} +@media only screen and (max-width: 1400px) { +.app-item--store-view[data-v-429da85a] { + width: 33%; +} +.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { + width: 50%; +} +} +@media only screen and (max-width: 900px) { +.app-item--store-view[data-v-429da85a] { + width: 50%; +} +.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { + width: 100%; +} +} +@media only screen and (max-width: 1024px) { +.app-item--store-view[data-v-429da85a] { + width: 50%; +} +} +@media only screen and (max-width: 480px) { +.app-item--store-view[data-v-429da85a] { + width: 100%; +} +} +.app-icon[data-v-429da85a] { + filter: var(--background-invert-if-bright); +} +.app-image[data-v-429da85a] { + position: relative; + height: 150px; + opacity: 1; + overflow: hidden; +} +.app-image img[data-v-429da85a] { + width: 100%; +} +.app-version[data-v-429da85a] { + color: var(--color-text-maxcontrast); +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.app-level-badge[data-v-dbef4182] { + color: var(--color-text-maxcontrast); + background-color: transparent; + border: 1px solid var(--color-text-maxcontrast); + border-radius: var(--border-radius); + display: flex; + flex-direction: row; + gap: 6px; + padding: 3px 6px; + width: fit-content; +} +.app-level-badge--supported[data-v-dbef4182] { + border-color: var(--color-success); + color: var(--color-success); +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.app-discover[data-v-2c2ea092] { + max-width: 1008px; /* 900px + 2x 54px padding for the carousel controls */ + margin-inline: auto; + padding-inline: 54px; + /* Padding required to make last element not bound to the bottom */ + padding-block-end: var(--default-clickable-area, 44px); + display: flex; + flex-direction: column; + gap: var(--default-clickable-area, 44px); +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.app-description[data-v-645c86d4] { + padding: 12px; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss": +/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss ***! + \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.app-details[data-v-564443e0] { + padding: 20px; +} +.app-details__actions-manage[data-v-564443e0] { + display: flex; +} +.app-details__actions-manage input[data-v-564443e0] { + flex: 0 1 auto; + min-width: 0; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; +} +.app-details__authors[data-v-564443e0] { + color: var(--color-text-maxcontrast); +} +.app-details__section[data-v-564443e0] { + margin-top: 15px; +} +.app-details__section h4[data-v-564443e0] { + font-size: 16px; + font-weight: bold; + margin-block-end: 5px; +} +.app-details__interact[data-v-564443e0] { + display: flex; + flex-direction: row; + flex-wrap: wrap; + gap: 12px; +} +.app-details__documentation a[data-v-564443e0] { + text-decoration: underline; +} +.app-details__documentation li[data-v-564443e0] { + padding-inline-start: 20px; +} +.app-details__documentation li[data-v-564443e0]::before { + width: 5px; + height: 5px; + border-radius: 100%; + background-color: var(--color-main-text); + content: ""; + float: inline-start; + margin-inline-start: -13px; + position: relative; + top: 10px; +} +.force[data-v-564443e0] { + color: var(--color-error); + border-color: var(--color-error); + background: var(--color-main-background); +} +.force[data-v-564443e0]:hover, +.force[data-v-564443e0]:active { + color: var(--color-main-background); + border-color: var(--color-error) !important; + background: var(--color-error); +} +.missing-dependencies[data-v-564443e0] { + list-style: initial; + list-style-type: initial; + list-style-position: inside; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar-tabs__release h2[data-v-2c452a5c] { + border-bottom: 1px solid var(--color-border); + font-size: 24px; +} +.app-sidebar-tabs__release-text[data-v-2c452a5c] h3 { + font-size: 20px; +} +.app-sidebar-tabs__release-text[data-v-2c452a5c] h4 { + font-size: 17px; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.settings-markdown[data-v-11f4a1b0] h1, +.settings-markdown[data-v-11f4a1b0] h2, +.settings-markdown[data-v-11f4a1b0] h3, +.settings-markdown[data-v-11f4a1b0] h4, +.settings-markdown[data-v-11f4a1b0] h5, +.settings-markdown[data-v-11f4a1b0] h6 { + font-weight: 600; + line-height: 120%; + margin-top: 24px; + margin-bottom: 12px; + color: var(--color-main-text); +} +.settings-markdown[data-v-11f4a1b0] h1 { + font-size: 36px; + margin-top: 48px; +} +.settings-markdown[data-v-11f4a1b0] h2 { + font-size: 28px; + margin-top: 48px; +} +.settings-markdown[data-v-11f4a1b0] h3 { + font-size: 24px; +} +.settings-markdown[data-v-11f4a1b0] h4 { + font-size: 21px; +} +.settings-markdown[data-v-11f4a1b0] h5 { + font-size: 17px; +} +.settings-markdown[data-v-11f4a1b0] h6 { + font-size: var(--default-font-size); +} +.settings-markdown[data-v-11f4a1b0] pre { + white-space: pre; + overflow-x: auto; + background-color: var(--color-background-dark); + border-radius: var(--border-radius); + padding: 1em 1.3em; + margin-bottom: 1em; +} +.settings-markdown[data-v-11f4a1b0] p code { + background-color: var(--color-background-dark); + border-radius: var(--border-radius); + padding: 0.1em 0.3em; +} +.settings-markdown[data-v-11f4a1b0] li { + position: relative; +} +.settings-markdown[data-v-11f4a1b0] ul, .settings-markdown[data-v-11f4a1b0] ol { + padding-left: 10px; + margin-left: 10px; +} +.settings-markdown[data-v-11f4a1b0] ul li { + list-style-type: disc; +} +.settings-markdown[data-v-11f4a1b0] ul > li > ul > li { + list-style-type: circle; +} +.settings-markdown[data-v-11f4a1b0] ul > li > ul > li ul li { + list-style-type: square; +} +.settings-markdown[data-v-11f4a1b0] blockquote { + padding-left: 1em; + border-left: 4px solid var(--color-primary-element); + color: var(--color-text-maxcontrast); + margin-left: 0; + margin-right: 0; +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar--with-screenshot[data-v-a38ee2fa] .app-sidebar-header__figure { + background-size: cover; +} +.app-sidebar__fallback-icon[data-v-a38ee2fa] { + width: 100%; + height: 100%; +} +.app-sidebar__badges[data-v-a38ee2fa] { + display: flex; + flex-direction: row; + gap: 12px; +} +.app-sidebar__version[data-v-a38ee2fa] { + color: var(--color-text-maxcontrast); +}`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css": +/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css ***! + \*****************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.app-score__wrapper[data-v-0ecce4fc] { + display: inline-flex; + color: var(--color-favorite, #a08b00); +> *[data-v-0ecce4fc] { + vertical-align: text-bottom; +} +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css": +/*!****************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css ***! + \****************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +.empty-content__loading[data-v-6f6912c9] { + height: 100%; +} +.app-settings-content__label[data-v-6f6912c9] { + margin-block-start: var(--app-navigation-padding); + margin-inline-start: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2); + min-height: var(--default-clickable-area); + line-height: var(--default-clickable-area); + vertical-align: center; +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css": +/*!**************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css ***! + \**************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); +// Imports + + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); +// Module +___CSS_LOADER_EXPORT___.push([module.id, ` +/* The categories-loading indicator */ +.categories--loading[data-v-0208f5bd] { + flex: 1; + display: flex; + align-items: center; + justify-content: center; +} +`, ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true": +/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true ***! + \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss": +/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss ***! + \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss": +/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss ***! + \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss": +/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss ***! + \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss": +/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss ***! + \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss": +/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss ***! + \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css": +/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css ***! + \*********************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css": +/*!********************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css ***! + \********************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css": +/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css ***! + \******************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css"); + + + + + + + + + + + +var options = {}; + +options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); +options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); + + options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); + +options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); +options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); + + + + + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppList.vue": +/*!**************************************************!*\ + !*** ./apps/settings/src/components/AppList.vue ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppList.vue?vue&type=template&id=6d1e92a4&scoped=true */ "./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true"); +/* harmony import */ var _AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppList.vue?vue&type=script&lang=js */ "./apps/settings/src/components/AppList.vue?vue&type=script&lang=js"); +/* harmony import */ var _AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true */ "./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "6d1e92a4", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppList.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppItem.vue": +/*!**********************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppItem.vue ***! + \**********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppItem.vue?vue&type=template&id=429da85a&scoped=true */ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true"); +/* harmony import */ var _AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppItem.vue?vue&type=script&lang=js */ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js"); +/* harmony import */ var _AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss */ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "429da85a", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppList/AppItem.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue": +/*!****************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true */ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true"); +/* harmony import */ var _AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss */ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "dbef4182", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppList/AppLevelBadge.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppScore.vue": +/*!***********************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppScore.vue ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true */ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true"); +/* harmony import */ var _AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppScore.vue?vue&type=script&lang=ts */ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts"); +/* harmony import */ var _AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css */ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "0ecce4fc", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppList/AppScore.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue": +/*!***********************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true"); +/* harmony import */ var _AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "2c2ea092", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue": +/*!****************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true"); +/* harmony import */ var _AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "645c86d4", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue": +/*!************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true"); +/* harmony import */ var _AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppDetailsTab.vue?vue&type=script&lang=js */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js"); +/* harmony import */ var _AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "564443e0", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue": +/*!*************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true"); +/* harmony import */ var _AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "2c452a5c", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/Markdown.vue": +/*!***************************************************!*\ + !*** ./apps/settings/src/components/Markdown.vue ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true */ "./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true"); +/* harmony import */ var _Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Markdown.vue?vue&type=script&lang=js */ "./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js"); +/* harmony import */ var _Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss */ "./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], + _Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "11f4a1b0", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/Markdown.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/SvgFilterMixin.vue": +/*!*********************************************************!*\ + !*** ./apps/settings/src/components/SvgFilterMixin.vue ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SvgFilterMixin.vue?vue&type=script&lang=js */ "./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); +var render, staticRenderFns +; + + + +/* normalize component */ +; +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__["default"])( + _SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"], + render, + staticRenderFns, + false, + null, + null, + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/components/SvgFilterMixin.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/views/AppStore.vue": +/*!**********************************************!*\ + !*** ./apps/settings/src/views/AppStore.vue ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStore.vue?vue&type=template&id=6f6912c9&scoped=true */ "./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true"); +/* harmony import */ var _AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStore.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css */ "./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "6f6912c9", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/views/AppStore.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/views/AppStoreNavigation.vue": +/*!********************************************************!*\ + !*** ./apps/settings/src/views/AppStoreNavigation.vue ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true */ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true"); +/* harmony import */ var _AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css */ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "0208f5bd", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/views/AppStoreNavigation.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/views/AppStoreSidebar.vue": +/*!*****************************************************!*\ + !*** ./apps/settings/src/views/AppStoreSidebar.vue ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true */ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true"); +/* harmony import */ var _AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts"); +/* harmony import */ var _AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss */ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss"); +/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); + + + +; + + +/* normalize component */ + +var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( + _AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], + _AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, + _AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, + false, + null, + "a38ee2fa", + null + +) + +/* hot reload */ +if (false) { var api; } +component.options.__file = "apps/settings/src/views/AppStoreSidebar.vue" +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts": +/*!***************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts ***! + \***************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts": +/*!***********************************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts": +/*!**********************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts ***! + \**********************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts": +/*!***************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts ***! + \***************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts": +/*!************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts": +/*!*********************************************************************************!*\ + !*** ./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts": +/*!*******************************************************************************************!*\ + !*** ./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts": +/*!****************************************************************************************!*\ + !*** ./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppList.vue?vue&type=script&lang=js": +/*!**************************************************************************!*\ + !*** ./apps/settings/src/components/AppList.vue?vue&type=script&lang=js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js": +/*!**********************************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js": +/*!************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js": +/*!***************************************************************************!*\ + !*** ./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js ***! + \***************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js": +/*!*********************************************************************************!*\ + !*** ./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js"); + /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); + +/***/ }), + +/***/ "./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true": +/*!********************************************************************************************!*\ + !*** ./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=template&id=6d1e92a4&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true": +/*!****************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=template&id=429da85a&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true": +/*!**********************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true": +/*!*****************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true ***! + \*****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true": +/*!*****************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true ***! + \*****************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true": +/*!**********************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true ***! + \**********************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true": +/*!******************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true ***! + \******************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true": +/*!*******************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true": +/*!*********************************************************************************************!*\ + !*** ./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true": +/*!****************************************************************************************!*\ + !*** ./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=template&id=6f6912c9&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true": +/*!**************************************************************************************************!*\ + !*** ./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true ***! + \**************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true": +/*!***********************************************************************************************!*\ + !*** ./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), +/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true": +/*!***********************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true ***! + \***********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss": +/*!*******************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss": +/*!*************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss ***! + \*************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss": +/*!********************************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss ***! + \********************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss": +/*!*************************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss ***! + \*************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss": +/*!*********************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss ***! + \*********************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss": +/*!**********************************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss ***! + \**********************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss": +/*!************************************************************************************************************!*\ + !*** ./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss": +/*!**************************************************************************************************************!*\ + !*** ./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss ***! + \**************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss"); + + +/***/ }), + +/***/ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css": +/*!*******************************************************************************************************************!*\ + !*** ./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css"); + + +/***/ }), + +/***/ "./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css": +/*!******************************************************************************************************!*\ + !*** ./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css ***! + \******************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css"); + + +/***/ }), + +/***/ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css": +/*!****************************************************************************************************************!*\ + !*** ./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css ***! + \****************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css"); + + +/***/ }), + +/***/ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebar.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/@nextcloud/vue/dist/Components/NcAppSidebar.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* reexport safe */ _chunks_NcAppSidebar_CqER6_dl_mjs__WEBPACK_IMPORTED_MODULE_0__.N) +/* harmony export */ }); +/* harmony import */ var _chunks_NcAppSidebar_CqER6_dl_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../chunks/NcAppSidebar-CqER6-dl.mjs */ "./node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-CqER6-dl.mjs"); + + + + +/***/ }), + +/***/ "./node_modules/p-limit/index.js": +/*!***************************************!*\ + !*** ./node_modules/p-limit/index.js ***! + \***************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ pLimit) +/* harmony export */ }); +/* harmony import */ var yocto_queue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! yocto-queue */ "./node_modules/yocto-queue/index.js"); + +function pLimit(concurrency) { + if (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) { + throw new TypeError('Expected `concurrency` to be a number from 1 and up'); + } + const queue = new yocto_queue__WEBPACK_IMPORTED_MODULE_0__["default"](); + let activeCount = 0; + const next = () => { + activeCount--; + if (queue.size > 0) { + queue.dequeue()(); + } + }; + const run = async (fn, resolve, args) => { + activeCount++; + const result = (async () => fn(...args))(); + resolve(result); + try { + await result; + } catch {} + next(); + }; + const enqueue = (fn, resolve, args) => { + queue.enqueue(run.bind(undefined, fn, resolve, args)); + (async () => { + // This function needs to wait until the next microtask before comparing + // `activeCount` to `concurrency`, because `activeCount` is updated asynchronously + // when the run function is dequeued and called. The comparison in the if-statement + // needs to happen asynchronously as well to get an up-to-date value for `activeCount`. + await Promise.resolve(); + if (activeCount < concurrency && queue.size > 0) { + queue.dequeue()(); + } + })(); + }; + const generator = function (fn) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + return new Promise(resolve => { + enqueue(fn, resolve, args); + }); + }; + Object.defineProperties(generator, { + activeCount: { + get: () => activeCount + }, + pendingCount: { + get: () => queue.size + }, + clearQueue: { + value: () => { + queue.clear(); + } + } + }); + return generator; +} + +/***/ }), + +/***/ "./node_modules/yocto-queue/index.js": +/*!*******************************************!*\ + !*** ./node_modules/yocto-queue/index.js ***! + \*******************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* binding */ Queue) +/* harmony export */ }); +let _Symbol$iterator; +function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } +function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } +function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } +function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } +function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } +function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } +function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); } +function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } +/* +How it works: +`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value. +*/ + +class Node { + constructor(value) { + _defineProperty(this, "value", void 0); + _defineProperty(this, "next", void 0); + this.value = value; + } +} +var _head = /*#__PURE__*/new WeakMap(); +var _tail = /*#__PURE__*/new WeakMap(); +var _size = /*#__PURE__*/new WeakMap(); +_Symbol$iterator = Symbol.iterator; +class Queue { + constructor() { + _classPrivateFieldInitSpec(this, _head, { + writable: true, + value: void 0 + }); + _classPrivateFieldInitSpec(this, _tail, { + writable: true, + value: void 0 + }); + _classPrivateFieldInitSpec(this, _size, { + writable: true, + value: void 0 + }); + this.clear(); + } + enqueue(value) { + var _this$size, _this$size2; + const node = new Node(value); + if (_classPrivateFieldGet(this, _head)) { + _classPrivateFieldGet(this, _tail).next = node; + _classPrivateFieldSet(this, _tail, node); + } else { + _classPrivateFieldSet(this, _head, node); + _classPrivateFieldSet(this, _tail, node); + } + _classPrivateFieldSet(this, _size, (_this$size = _classPrivateFieldGet(this, _size), _this$size2 = _this$size++, _this$size)), _this$size2; + } + dequeue() { + var _this$size3, _this$size4; + const current = _classPrivateFieldGet(this, _head); + if (!current) { + return; + } + _classPrivateFieldSet(this, _head, _classPrivateFieldGet(this, _head).next); + _classPrivateFieldSet(this, _size, (_this$size3 = _classPrivateFieldGet(this, _size), _this$size4 = _this$size3--, _this$size3)), _this$size4; + return current.value; + } + clear() { + _classPrivateFieldSet(this, _head, undefined); + _classPrivateFieldSet(this, _tail, undefined); + _classPrivateFieldSet(this, _size, 0); + } + get size() { + return _classPrivateFieldGet(this, _size); + } + *[_Symbol$iterator]() { + let current = _classPrivateFieldGet(this, _head); + while (current) { + yield current.value; + current = current.next; + } + } +} + +/***/ }), + +/***/ "./node_modules/vue-router/composables.mjs": +/*!*************************************************!*\ + !*** ./node_modules/vue-router/composables.mjs ***! + \*************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ isSameRouteLocationParams: () => (/* binding */ isSameRouteLocationParams), +/* harmony export */ onBeforeRouteLeave: () => (/* binding */ onBeforeRouteLeave), +/* harmony export */ onBeforeRouteUpdate: () => (/* binding */ onBeforeRouteUpdate), +/* harmony export */ useLink: () => (/* binding */ useLink), +/* harmony export */ useRoute: () => (/* binding */ useRoute), +/* harmony export */ useRouter: () => (/* binding */ useRouter) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); +/*! + * vue-router v3.6.5 + * (c) 2022 Evan You + * @license MIT + */ + + +// dev only warn if no current instance + +function throwNoCurrentInstance (method) { + if (!(0,vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)()) { + throw new Error( + ("[vue-router]: Missing current instance. " + method + "() must be called inside ","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Web.vue?vue&type=template&id=48291522\"\nimport script from \"./Web.vue?vue&type=script&lang=js\"\nexport * from \"./Web.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon web-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"," \n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=1ef71ebe&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=1ef71ebe&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=1ef71ebe&scoped=true\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=1ef71ebe&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ef71ebe\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright 2022 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TC\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.007984,\"1\":0.015968,\"2\":0.015968,\"3\":0.011976,\"4\":0.015968,\"5\":0.015968,\"6\":0.035928,\"7\":0.267464,\"8\":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1680825600,\"1\":1683158400,\"2\":1685664000,\"3\":1689897600,\"4\":1692576000,\"5\":1694649600,\"6\":1697155200,\"7\":1698969600,\"8\":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:\"ms\",K:\"ms\",L:\"ms\",G:\"ms\",M:\"ms\",N:\"ms\",O:\"ms\"}},C:{A:{\"0\":0.003992,\"1\":0.007984,\"2\":0.011976,\"3\":0.467064,\"4\":0.003992,\"5\":0.007984,\"6\":0.087824,\"7\":0.227544,\"8\":0.231536,\"9\":0,UC:0,\"7B\":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,\"8B\":0.003992,kB:0,\"9B\":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,\"1B\":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:\"moz\",C:[\"UC\",\"7B\",\"WC\",\"XC\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\",\"VC\"],E:\"Firefox\",F:{\"0\":1681171200,\"1\":1683590400,\"2\":1686009600,\"3\":1688428800,\"4\":1690848000,\"5\":1693267200,\"6\":1695686400,\"7\":1698105600,\"8\":1700524800,\"9\":1308614400,UC:1161648000,\"7B\":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,\"8B\":1520985600,kB:1525824000,\"9B\":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,\"0B\":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,\"1B\":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{\"0\":0.075848,\"1\":0.15968,\"2\":0.115768,\"3\":0.07984,\"4\":0.263472,\"5\":0.195608,\"6\":0.467064,\"7\":2.4471,\"8\":15.8562,\"9\":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,\"8B\":0,kB:0.015968,\"9B\":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,\"0B\":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,\"1B\":0.015968,BC:0,CC:0,DC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\"],E:\"Chrome\",F:{\"0\":1680566400,\"1\":1682985600,\"2\":1685404800,\"3\":1689724800,\"4\":1692057600,\"5\":1694476800,\"6\":1696896000,\"7\":1698710400,\"8\":1701993600,\"9\":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,\"8B\":1496707200,kB:1500940800,\"9B\":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,\"0B\":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,\"1B\":1708387200,BC:null,CC:null,DC:null}},E:{A:{\"9\":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,\"2B\":0.015968,\"3B\":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,\"4B\":0.043912,fC:0.2994,\"5B\":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,\"6B\":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"YC\",\"EC\",\"I\",\"9\",\"ZC\",\"J\",\"aC\",\"D\",\"bC\",\"E\",\"F\",\"cC\",\"A\",\"FC\",\"B\",\"2B\",\"C\",\"3B\",\"K\",\"GC\",\"L\",\"dC\",\"G\",\"eC\",\"HC\",\"IC\",\"4B\",\"fC\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"gC\",\"6B\",\"OC\",\"PC\",\"QC\",\"hC\",\"iC\",\"\"],E:\"Safari\",F:{\"9\":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,\"2B\":1522281600,C:1537142400,\"3B\":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,\"4B\":1652745600,fC:1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,\"6B\":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,\"2B\":0,RC:0,nC:0,\"3B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"jC\",\"kC\",\"lC\",\"mC\",\"B\",\"2B\",\"RC\",\"nC\",\"C\",\"3B\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"\",\"\",\"\"],E:\"Opera\",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,\"2B\":1302566400,RC:1309219200,nC:1323129600,C:1323129600,\"3B\":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,\"0B\":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:\"o\",B:\"o\",C:\"o\",jC:\"o\",kC:\"o\",lC:\"o\",mC:\"o\",\"2B\":\"o\",RC:\"o\",nC:\"o\",\"3B\":\"o\"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,\"0C\":0.267828,\"1C\":0.00451396,\"2C\":0.0496536,\"3C\":0.0135419,\"4C\":0.0601861,\"5C\":0.105326,\"6C\":0.160998,\"7C\":0.0692141,HC:0.0797466,IC:0.0932885,\"4B\":0.123382,\"8C\":0.961474,\"5B\":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,\"9C\":2.01925,\"6B\":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"EC\",\"oC\",\"SC\",\"pC\",\"qC\",\"rC\",\"E\",\"sC\",\"tC\",\"uC\",\"vC\",\"wC\",\"xC\",\"yC\",\"zC\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"HC\",\"IC\",\"4B\",\"8C\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"9C\",\"6B\",\"OC\",\"PC\",\"QC\",\"\",\"\",\"\"],E:\"Safari on iOS\",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,\"0C\":1553472000,\"1C\":1568851200,\"2C\":1572220800,\"3C\":1580169600,\"4C\":1585008000,\"5C\":1600214400,\"6C\":1619395200,\"7C\":1632096000,HC:1639353600,IC:1647216000,\"4B\":1652659200,\"8C\":1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,\"9C\":1690156800,\"6B\":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"AD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{AD:1426464000}},I:{A:{\"7B\":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"BD\",\"CD\",\"DD\",\"7B\",\"I\",\"ED\",\"SC\",\"FD\",\"GD\",\"H\",\"\",\"\",\"\"],E:\"Android Browser\",F:{BD:1256515200,CD:1274313600,DD:1291593600,\"7B\":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,\"2B\":0,RC:0,\"3B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"2B\",\"RC\",\"C\",\"3B\",\"u\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"2B\":1314835200,RC:1318291200,C:1330300800,\"3B\":1349740800,u:1673827200},D:{u:\"webkit\"}},L:{A:{H:40.5268},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{H:1705968000}},M:{A:{\"1B\":0.30045},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"1B\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{\"1B\":1705968000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"4B\":0.811215},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"4B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"4B\":1687132800},D:{\"4B\":\"webkit\"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,\"5B\":0.0107426,\"6B\":0.0322279,RD:0.0214852,SD:0.0322279},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"FC\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"5B\",\"6B\",\"RD\",\"SD\",\"q\",\"r\",\"s\",\"t\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,\"5B\":1640736000,\"6B\":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GC\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{GC:1663718400}},R:{A:{TD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UD\",\"VD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{UD:1527811200,VD:1631664000}}};\n","module.exports={\"0\":\"112\",\"1\":\"113\",\"2\":\"114\",\"3\":\"115\",\"4\":\"116\",\"5\":\"117\",\"6\":\"118\",\"7\":\"119\",\"8\":\"120\",\"9\":\"5\",A:\"10\",B:\"11\",C:\"12\",D:\"7\",E:\"8\",F:\"9\",G:\"15\",H:\"121\",I:\"4\",J:\"6\",K:\"13\",L:\"14\",M:\"16\",N:\"17\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"20\",r:\"21\",s:\"22\",t:\"23\",u:\"73\",v:\"107\",w:\"108\",x:\"109\",y:\"110\",z:\"111\",AB:\"19\",BB:\"24\",CB:\"25\",DB:\"26\",EB:\"27\",FB:\"28\",GB:\"29\",HB:\"30\",IB:\"31\",JB:\"32\",KB:\"33\",LB:\"34\",MB:\"35\",NB:\"36\",OB:\"37\",PB:\"38\",QB:\"39\",RB:\"40\",SB:\"41\",TB:\"42\",UB:\"43\",VB:\"44\",WB:\"45\",XB:\"46\",YB:\"47\",ZB:\"48\",aB:\"49\",bB:\"50\",cB:\"51\",dB:\"52\",eB:\"53\",fB:\"54\",gB:\"55\",hB:\"56\",iB:\"57\",jB:\"58\",kB:\"60\",lB:\"62\",mB:\"63\",nB:\"64\",oB:\"65\",pB:\"66\",qB:\"67\",rB:\"68\",sB:\"69\",tB:\"70\",uB:\"71\",vB:\"72\",wB:\"74\",xB:\"75\",yB:\"76\",zB:\"77\",\"0B\":\"78\",\"1B\":\"122\",\"2B\":\"11.1\",\"3B\":\"12.1\",\"4B\":\"15.5\",\"5B\":\"16.0\",\"6B\":\"17.0\",\"7B\":\"3\",\"8B\":\"59\",\"9B\":\"61\",AC:\"82\",BC:\"123\",CC:\"124\",DC:\"125\",EC:\"3.2\",FC:\"10.1\",GC:\"13.1\",HC:\"15.2-15.3\",IC:\"15.4\",JC:\"16.1\",KC:\"16.2\",LC:\"16.3\",MC:\"16.4\",NC:\"16.5\",OC:\"17.1\",PC:\"17.2\",QC:\"17.3\",RC:\"11.5\",SC:\"4.2-4.3\",TC:\"5.5\",UC:\"2\",VC:\"126\",WC:\"3.5\",XC:\"3.6\",YC:\"3.1\",ZC:\"5.1\",aC:\"6.1\",bC:\"7.1\",cC:\"9.1\",dC:\"14.1\",eC:\"15.1\",fC:\"15.6\",gC:\"16.6\",hC:\"17.4\",iC:\"TP\",jC:\"9.5-9.6\",kC:\"10.0-10.1\",lC:\"10.5\",mC:\"10.6\",nC:\"11.6\",oC:\"4.0-4.1\",pC:\"5.0-5.1\",qC:\"6.0-6.1\",rC:\"7.0-7.1\",sC:\"8.1-8.4\",tC:\"9.0-9.2\",uC:\"9.3\",vC:\"10.0-10.2\",wC:\"10.3\",xC:\"11.0-11.2\",yC:\"11.3-11.4\",zC:\"12.0-12.1\",\"0C\":\"12.2-12.5\",\"1C\":\"13.0-13.1\",\"2C\":\"13.2\",\"3C\":\"13.3\",\"4C\":\"13.4-13.7\",\"5C\":\"14.0-14.4\",\"6C\":\"14.5-14.8\",\"7C\":\"15.0-15.1\",\"8C\":\"15.6-15.8\",\"9C\":\"16.6-16.7\",AD:\"all\",BD:\"2.1\",CD:\"2.2\",DD:\"2.3\",ED:\"4.1\",FD:\"4.4\",GD:\"4.4.3-4.4.4\",HD:\"5.0-5.4\",ID:\"6.2-6.4\",JD:\"7.2-7.4\",KD:\"8.2\",LD:\"9.2\",MD:\"11.1-11.2\",ND:\"12.0\",OD:\"13.0\",PD:\"14.0\",QD:\"15.0\",RD:\"18.0\",SD:\"19.0\",TD:\"13.18\",UD:\"2.5\",VD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.content-unsupported-browser[data-v-1ef71ebe]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-1ef71ebe]{margin:0}.content-unsupported-browser .empty-content[data-v-1ef71ebe] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-1ef71ebe]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-1ef71ebe]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-1ef71ebe]{text-align:left}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA\",\"sourcesContent\":[\"\\n$spacing: 30px;\\n\\n.content-unsupported-browser {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\twidth: 400px;\\n\\tmax-width: calc(90vw - 2 * $spacing);\\n\\tmargin: auto;\\n\\tpadding: $spacing;\\n\\n\\t.empty-content {\\n\\t\\tmargin: 0;\\n\\t\\t&::v-deep .empty-content__icon {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t&__continue {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $spacing auto;\\n\\t}\\n\\n\\t&__list {\\n\\t\\tmargin-top: 2 * $spacing;\\n\\t\\tmargin-bottom: $spacing;\\n\\t\\tli {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"29.0\": \"122\",\n\t\"30.0\": \"123\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?a)\\k/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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 State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 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], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 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] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","// 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\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\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};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7843;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7843: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(47976)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","length","SemverPart","semverify","versionParts","Array","isArray","toString","split","versionPart","semverPart","semver","i","parseInt","isNaN","compareSemvers","a","b","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","from","len","clone","value","copy","concat","items","AlternativeNode","expressions","exps","filter","Boolean","type","SimpleCharNode","kind","String","codePoint","NaN","ClassRangeNode","to","CharacterClassNode","CapturingGroupNode","expression","capturing","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","left","right","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","node","isCharNode","RegExp","test","isDigitRangeNode","isExpressionNode","parseRegex","replace","classes","visitors","every","reduce","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","includes","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","push","Math","min","splitToDecadeRanges","parts","map","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","unshift","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","Group","getNumberPatternsCount","numbersCounter","containsNumberPattern","parent","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","max","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","slice","shift","replaceNumberPatterns","remove","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","result","prevFamily","prevRegexIsGlobal","forEach","requestVersions","get","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","undefined","getRegexesForBrowsers","merge","Map","strVersion","join","set","sort","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","partsRegexes","body","src","getAST","optimizeRegex","flags","compileRegex","getUserAgentRegex","browserslistConfig","supportedBrowsers","getBuilder","clearOnLogout","persist","build","user","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","browserStorageKey","generateUrl","browserStorage","getItem","name","emits","props","title","fillColor","default","size","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","logger","debug","components","Web","NcButton","NcEmptyContent","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","isMobileBrowser","formattedBrowsersList","list","id","parseFloat","Object","keys","_agents$id","_agents$id2","agents","t","entry","methods","n","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","startsWith","toLowerCase","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","scopedSlots","_u","key","fn","proxy","_l","Vue","el","render","h","UnsupportedBrowser","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","Error","captureStackTrace","prototype","jsReleases","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","indexOf","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","array","filtered","fillUsage","data","generateFilter","sign","parseSimpleInt","x","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","obj","copyObject","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","withPartial","queries","QUERIES","index","not","query","select","call","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","JSON","stringify","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","checkDesktop","electron_range","fromToUse","toToUse","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","substr","find","trim","block","A","J","D","E","F","B","TC","C","K","L","G","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","e","f","g","k","l","m","o","w","y","z","H","UC","I","AB","q","r","s","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","AC","BC","CC","DC","VC","WC","XC","YC","EC","ZC","aC","bC","cC","FC","GC","dC","eC","HC","IC","fC","JC","KC","LC","MC","NC","gC","OC","PC","QC","hC","iC","jC","kC","lC","mC","RC","nC","oC","SC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","RD","SD","TD","UD","VD","agentsData","unpackBrowserVersions","versionsData","prefix_exceptions","map2","key2","prefix","browserVersions","___CSS_LOADER_EXPORT___","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getExtra","setExtra","_createClass","defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","toValue","toSymbol","symbol","_groupNames","init","nameRaw","Backreference","reference","referenceRaw","namedCapturingGroups","xFlag","gen","generator","Alternative","Disjunction","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","Quantifier","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","definition","Promise","globalThis","Function","toStringTag","nmd","paths","children","document","baseURI","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"core-unsupported-browser.js?v=c033ce94941bbb471b5e","mappings":";UAAIA,eCAJC,EAAOC,QAAU,CACf,SACA,kBACA,WACA,sGCCK,MAAMC,EAAU,CACrB,CACEC,MAAO,kBACPC,OAAQ,KACRC,WAAY,CACV,EACAC,IACAA,MAOJ,CACEH,MAAO,gBACPC,OAAQ,KACRG,QAAS,CACP,EACA,EACA,IAGJ,CACEJ,MAAO,gBACPC,OAAQ,KACRG,QAAS,CACP,EACA,EACA,IAGJ,CACEJ,MAAO,gBACPC,OAAQ,KACRG,QAAS,CACP,GACA,EACA,IAGJ,CACEJ,MAAO,mBACPC,OAAQ,KACRG,QAAS,CACP,GACA,EACA,IAGJ,CACEJ,MAAO,gCACPC,OAAQ,QAEV,CACED,MAAO,kCACPC,OAAQ,WAEV,CACED,MAAO,uCACPC,OAAQ,UAKV,CACED,MAAO,mFACPC,OAAQ,SACRC,WAAY,CACV,GACAC,IACAA,MAQJ,CACEH,MAAO,oFACPC,OAAQ,UAKV,CACED,MAAO,gDACPC,OAAQ,QACRC,WAAY,CACV,GACA,GACA,IAMJ,CACEF,MAAO,mCACPC,OAAQ,QACRI,WAAY,CACV,GACA,EACA,IAGJ,CACEL,MAAO,kGACPC,OAAQ,WAKV,CACED,MAAO,uGACPC,OAAQ,UACRG,QAAS,CACP,EACA,EACA,IAGJ,CACEJ,MAAO,aACPC,OAAQ,WAEV,CACED,MAAO,gBACPC,OAAQ,UACRG,QAAS,CACP,EACA,EACA,IAGJ,CACEJ,MAAO,iBACPC,OAAQ,UACRG,QAAS,CACP,EACA,EACA,IAGJ,CACEJ,MAAO,gBACPC,OAAQ,UACRG,QAAS,CACP,EACA,EACA,IAGJ,CACEJ,MAAO,sBACPC,OAAQ,UACRG,QAAS,CACP,EACA,EACA,IAGJ,CACEJ,MAAO,oBACPC,OAAQ,UACRG,QAAS,CACP,EACA,EACA,IAGJ,CACEJ,MAAO,0CACPC,OAAQ,WAKV,CACED,MAAO,4DACPC,OAAQ,UACRG,QAAS,CACP,EACA,EACA,IAGJ,CACEJ,MAAO,8CACPC,OAAQ,MAEV,CACED,MAAO,qDACPC,OAAQ,MAKV,CACED,MAAO,6CACPC,OAAQ,SACRC,WAAY,CACV,GACA,GACA,IAMJ,CACEF,MAAO,0CACPC,OAAQ,SACRI,WAAY,CACV,GACA,EACA,IAGJ,CACEL,MAAO,2CACPC,OAAQ,UAEV,CACED,MAAO,gDACPC,OAAQ,WAEV,CACED,MAAO,2BACPC,OAAQ,UAEV,CACED,MAAO,2DACPC,OAAQ,UAEV,CACED,MAAO,+BACPC,OAAQ,WAEV,CACED,MAAO,iDACPC,OAAQ,UAEV,CACED,MAAO,6CACPC,OAAQ,SAEV,CACED,MAAO,sCACPC,OAAQ,UCvPR,SAASK,EAAgBC,GACzB,MAAuB,iBAAZA,EACAA,EAEY,IAAnBA,EAAQC,OACDD,EAAQ,GAEZ,CACHA,EAAQ,GACRA,EAAQA,EAAQC,OAAS,GAEjC,CAEA,IAAIC,EAWA,SAASC,EAAUN,GACnB,MAAMO,EAAeC,MAAMC,QAAQT,GAAWA,EAAUA,EAAQU,WAAWC,MAAM,KACjF,GAAwB,QAApBJ,EAAa,GACb,MAAO,CACHR,IACA,EACA,GAGR,IAAIa,EAAc,KACdC,EAAa,KACjB,MAAMC,EAAS,CACX,EACA,EACA,GAEJ,IAAI,IAAIC,EAAI,EAAGA,EAAI,EAAGA,IAElB,GADAH,EAAcL,EAAaQ,QACA,IAAhBH,EAAX,CAIA,GADAC,EAAoC,iBAAhBD,EAA2BA,EAAcI,SAASJ,EAAa,IAC/EK,MAAMJ,GACN,OAAO,KAEXC,EAAOC,GAAKF,CALZ,CAOJ,OAAOC,CACX,CA0BI,SAASI,EAAeC,EAAGC,EAAGC,GAC9B,MAAOC,EAAOC,EAAOC,GAASL,GACvBM,EAAWC,EAAWC,GAAaP,GACpC,YAAEQ,EAAY,YAAEC,EAAY,oBAAEC,GAAyBT,EAC7D,GAAII,IAAc1B,IACd,OAAO,EAEX,MAAMgC,GAAgBH,EAChBI,EAAeD,IAAiBF,EACtC,OAAIC,IACIE,GAAgBR,EAAQG,GAAaI,GAAgBR,EAAQG,IAG1DJ,GAASG,IAEhBO,GAAgBR,IAAUG,GAAaI,GAAgBR,IAAUG,IAG9DJ,IAAUG,CACrB,CA2DI,SAASQ,EAAcd,EAAGC,EAAGc,EAAO,GACpC,MAAMC,EAAMhB,EAAEf,OACd,IAAI,IAAIW,EAAImB,EAAMnB,EAAIoB,EAAKpB,IACvB,GAAII,EAAEJ,KAAOK,EAAEL,GACX,OAAO,EAGf,OAAO,CACX,CAKI,SAASqB,EAAMC,GACf,GAAc,OAAVA,GAAmC,iBAAVA,EACzB,OAAOA,EAEU,MAAMC,EAAO9B,MAAMC,QAAQ4B,GAAS,GAAK,CAAC,EAC/D,IAAItB,EACJ,IAAIA,KAAKsB,EACLC,EAAKvB,GAAKqB,EAAMC,EAAMtB,IAEN,OAAOuB,CAC/B,CAKI,SAASC,EAAOC,GAChB,MAAO,GAAGD,UAAUC,EACxB,CA4GA,SAASC,KAAmBC,GACxB,MAAMC,EAAOJ,EAAOG,GAAaE,OAAOC,SACxC,OAAoB,IAAhBF,EAAKvC,OACEuC,EAAK,GAET,CACHG,KAAM,cACNJ,YAAaC,EAErB,CACA,SAASI,EAAeV,GACpB,MAAO,CACHS,KAAM,OACNE,KAAM,SACNX,MAAOY,OAAOZ,GACda,UAAWC,IAEnB,CASA,SAASC,EAAelB,EAAMmB,GAC1B,MAAO,CACHP,KAAM,aACNZ,OACAmB,KAER,CACA,SAASC,KAAsBZ,GAC3B,MAAO,CACHI,KAAM,iBACNJ,YAAaH,EAAOG,GAAaE,OAAOC,SAEhD,CAiBA,SAASU,EAAmBC,GACxB,MAAO,CACHV,KAAM,QACNW,WAAW,EACXD,aACAE,OAAQ,KAEhB,CAgCA,SAASC,KAAiCjB,GACtC,MAAMkB,EAzBV,YAA4BlB,GACxB,MAAMmB,EAAQtB,EAAOG,GAAaE,OAAOC,SACzC,GAAqB,IAAjBgB,EAAMzD,OACN,OAAOyD,EAAM,GAEjB,MAAMC,EAAc,CAChBhB,KAAM,cACNiB,KAAM,KACNC,MAAOH,EAAMI,OAcjB,OAZAJ,EAAMK,aAAY,CAACJ,EAAaF,EAAM7C,IACxB,IAANA,GACA+C,EAAYC,KAAOH,EACZE,IAEXA,EAAYC,KAAO,CACfjB,KAAM,cACNiB,KAAM,KACNC,MAAOJ,GAEJE,EAAYC,OACpBD,GACIA,CACX,CAEiBK,IAAmBzB,GAChC,MAAkB,gBAAdkB,EAAKd,KACES,EAAmBK,GAEvBA,CACX,CACA,SAASQ,IACL,MAnFO,CACHtB,KAAM,OACNE,KAAM,OACNX,MAgFgB,MA/EhBa,UAAWC,IAgFnB,CACA,SAASkB,EAAkBC,EAhEhB,CACHxB,KAAM,aACNE,KA8DqD,IA7DrDuB,QAAQ,IA8DZ,MAAMC,EA1CV,SAAwBhB,EAAYc,GAChC,MAAO,CACHxB,KAAM,aACNU,WA/CG,CACHV,KAAM,OACNE,KAAM,OACNX,MAgFgB,MA/EhBa,UAAWC,KA4CXmB,aAER,CAoC0BG,CAtFf,EAsFkDH,GACzD,OAAOE,CACX,CACA,SAASE,EAAgBrC,GACrB,OAAOI,EAAgBjC,MAAM0B,KAAKe,OAAOZ,GAAQU,GACrD,CAMI,SAAS4B,EAAoBC,GAC7B,GAAkB,UAAdA,EAAK9B,MAA6C,eAAzB8B,EAAKpB,WAAWV,KAAuB,CAChE,MAAM,WAAEU,EAAW,WAAEc,GAAgBM,EAAKpB,WAC1C,MAA2B,SAApBA,EAAWV,MAAwC,QAArBU,EAAWnB,OAAuC,MAApBiC,EAAWtB,MAAgBsB,EAAWC,MAC7G,CACA,OAAO,CACX,CAMI,SAASM,EAAWD,EAAMvC,GAC1B,SAAIuC,GAAsB,SAAdA,EAAK9B,aACW,IAAVT,GAAyBA,aAAiByC,QAAUzC,EAAM0C,KAAKH,EAAKvC,QAAUY,OAAOZ,KAAWuC,EAAKvC,MAG3H,CAKI,SAAS2C,EAAiBJ,GAC1B,GAAkB,mBAAdA,EAAK9B,MAAyD,IAA5B8B,EAAKlC,YAAYtC,OAAc,CACjE,MAAOoD,GAAcoB,EAAKlC,YAC1B,MAA2B,eAApBc,EAAWV,MAAyB+B,EAAWrB,EAAWtB,KAAM,OAAS2C,EAAWrB,EAAWH,GAAI,KAC9G,CACA,OAAO,CACX,CAKI,SAAS4B,EAAiBL,GAC1B,MAAqB,WAAdA,EAAK9B,MAAmC,eAAd8B,EAAK9B,MAAuC,eAAd8B,EAAK9B,IACxE,CACA,SAASoC,EAAWtF,GAChB,MAAwB,iBAAVA,EAAqB,QAAiBA,EAAMuF,QAAQ,UAAW,OAAOA,QAAQ,UAAW,QAAUvF,aAAiBkF,OAAS,QAAiBlF,GAASA,CACzK,EAlbA,SAAUS,GACNA,EAAWA,EAAkB,MAAI,GAAK,QACtCA,EAAWA,EAAkB,MAAI,GAAK,QACtCA,EAAWA,EAAkB,MAAI,GAAK,OACzC,CAJD,CAIGA,IAAeA,EAAa,CAAC,IA8bhC,MAAM+E,EAAU,CACZ,SACA,cACA,cACA,YACA,OACA,iBACA,aACA,gBACA,QACA,aACA,cAMA,SAASC,EAASA,GAClB,MAAM,MAAEC,GAAWD,EACnB,OAAKC,EAGgB,mBAAVA,EACA,CAEH,IAAKA,KACFD,GAGJD,EAAQG,QAAO,CAACC,EAAaC,KAChC,MAAMC,EAAUL,EAASI,GACnBE,EAAaD,EAAU,QAASA,EAAUA,EAAQE,IAAMF,EAAU,KAClEG,EAAcH,GAAU,SAAUA,EAAUA,EAAQI,KAAc,KAexE,OAdAN,EAAYC,GAAa,CACrBG,IAAKG,IAC2B,IAAxBT,EAAMM,IAAIG,KAAuBJ,GAC1BA,EAAWI,GAI1BD,KAAMC,IAC2B,IAAzBT,EAAMQ,KAAKC,KAAuBF,GAC3BA,EAAYE,IAKxBP,CAAW,GACnB,CAAC,GA5BOH,CA6Bf,CAoFI,SAASW,EAAeC,GACxB,OAAOzF,MAAM0B,KAAK+D,EAAIvF,WAAYwF,OACtC,CAOI,SAASC,EAAqBC,EAAOC,GACrC,MAAMC,EAAaF,EAAQF,QAAQG,GACnC,OAAmB,IAAfC,EAvSG,CACHxD,KAAM,OACNE,KAAM,OACNX,MAgFgB,MA/EhBa,UAAWC,KAsSI,IAAfmD,EACOvD,EAAe,KAEtBuD,EAAa,EACN,KAEJhD,EAAmBF,EAAeL,EAAeuD,GAAavD,EAAe,MACxF,CA4DI,SAASwD,EAA0BrE,EAAMmB,EAAImD,GAC7C,GAAInD,EAAKnB,EACL,OAAO,KAEX,MAAMuE,EAAW1D,EAAeb,GAC1BwE,EAAS3D,EAAeM,GACxBsD,EAA+B,iBAAVH,GAAsBA,EAAQ,EAAIhG,MAAM0B,KAAK,CACpE9B,OAAQoG,IACT,IAAIzD,EAAe,KAAM,GAE5B,OADkB4D,EAAYvG,OAAUwE,GAAOnC,EAAgBkE,EAAa/B,GAASA,GAAOA,GACxF1C,IAASmB,EACQoD,EAER,IAATvE,GAAqB,IAAPmB,EA1XX,CACHP,KAAM,OACNE,KAAM,OACNX,MAgFgB,MA/EhBa,UAAWC,KAyXXE,EAAKnB,GAAS,EACGoB,EAAmBmD,EAAUC,GAEjCpD,EAAmBF,EAAeqD,EAAUC,IACjE,CA2DI,SAASE,EAAwB1E,EAAMmB,EAAIwD,EAAiB,GAC5D,MAAMC,EAAad,EAAe9D,GAC5B6E,EAAcD,EAAW1G,OAC/B,GAAI8B,EAAO,IAAMmB,EAAK,IAAMnB,IAASmB,EAEjC,MAAO,CACHkD,EAA0BrE,EAAMmB,EAFtBwD,EAAiBE,IAKnC,MAAMC,EAAWhB,EAAe3C,GAChC,GAAI0D,IAAgBC,EAAS5G,OAAQ,CACjC,MAAM6G,EAhEV,SAA6B/E,EAAMmB,GACnC,MAAM6D,EAAS,GACf,IAAIjB,EAAM/D,EACNiF,EAAS,EACb,GACIA,GAAU,GACNlB,EAAMkB,IACND,EAAOE,KAAK,CACRnB,EACAoB,KAAKC,IAAIH,EAAS,EAAG9D,KAEzB4C,EAAMkB,SAENA,GAAU9D,GAClB,OAAO6D,CACX,CAiD6BK,CAAoBrF,EAAMmB,GACzCmE,EAAQjF,EAAO0E,EAAaQ,KAAI,EAAEvF,EAAMmB,KAAMuD,EAAwB1E,EAAMmB,EAAIwD,MACtF,OAAOW,CACX,CACA,MAAME,EA/CN,SAAyBvG,EAAGC,GAC5B,MAAMe,EAAMhB,EAAEf,OACd,GAAI+B,IAAQf,EAAEhB,QAAUe,EAAE,KAAOC,EAAE,GAC/B,OAAO,KAEX,IAAIuG,EAASxG,EAAE,GAAGT,WACdkH,EAAQ,EACRC,EAAQ,EACRC,EAAQ,GACRC,EAAQ,GACZ,IAAI,IAAIhH,EAAI,EAAGA,EAAIoB,EAAKpB,IACpB6G,EAAQzG,EAAEJ,GACV8G,EAAQzG,EAAEL,GACN6G,IAAUC,EACVF,GAAUC,GAEVE,GAASF,EACTG,GAASF,GAGjB,MAAO,CACHF,EACA3G,SAAS8G,EAAO,IAChB9G,SAAS+G,EAAO,IAExB,CAsBwBC,CAAgBlB,EAAYE,GAChD,GAAIxG,MAAMC,QAAQiH,GAAc,CAC5B,MAAOC,EAAQM,EAAOC,GAAOR,EAEvBS,EAAYvB,EAAwBqB,EAAOC,EADzBnB,EAAcY,EAAOvH,QAE7C,MAAO,CACHqC,EAAgBjC,MAAM0B,KAAKyF,EAAQ5E,GAAiBY,EAA8BwE,IAE1F,CACA,MAAMC,EAAQ5H,MAAM0B,KAAK,CACrB9B,OAAQ2G,EAAc,IAEpBsB,EAAgB9B,EAA0BO,EAAW,GAAK,EAAGE,EAAS,GAAK,GAmCjF,MAlCe,IACRoB,EAAMX,KAAI,CAACa,EAAGvH,KACb,MAAMwH,EAAKxB,EAAchG,EAAI,EACvByH,EAAItC,OAAOnF,EAAI,GACrB,OAAO0B,EAAgBqE,EAAWW,KAAI,CAACrB,EAAOqC,IACtCA,EAAIF,EACGxF,EAAeqD,GAGfG,EADPkC,EAAIF,EAC6B,EAEJnC,EAAQoC,EAFD,KAGzC,OAGJH,EAAgB,CACf5F,EAAgB4F,EAAe7H,MAAM0B,KAAK,CACtC9B,OAAQ2G,EAAc,IACvB,KA1eJ,CACHjE,KAAM,OACNE,KAAM,OACNX,MAgFgB,MA/EhBa,UAAWC,UAueP,MACDiF,EAAMX,KAAI,CAACa,EAAGvH,KACb,MAAMwH,EAAKxB,EAAchG,EAAI,EACvByH,EAAItC,OAAOnF,EAAI,GACrB,OAAO0B,EAAgBuE,EAASS,KAAI,CAACrB,EAAOqC,IACpCA,EAAIF,EACGxF,EAAeqD,GAGfG,EAA0B,EADjCkC,EAAIF,EACgC,EAEJnC,EAAQoC,KAC7C,KAxPKjD,QAAO,CAACmD,EAAU9D,KAC9B,MAAM+D,EAAWD,EAASA,EAAStI,OAAS,GAC5C,GAAIuI,GAA0B,gBAAd/D,EAAK9B,MAA4C,gBAAlB6F,EAAS7F,MAA0B8B,EAAKlC,YAAYtC,SAAWuI,EAASjG,YAAYtC,OAAQ,CACvI,MAAMwI,EAASD,EAASjG,YAAYwB,aAAY,CAACvB,EAAMkG,EAAK9H,KACxD,IAAK4B,EACD,OAAOA,EAEX,MAAMiG,GAxCGzH,EAwCkB0H,EAxCfzH,EAwCoBwD,EAAKlC,YAAY3B,GAvCzD8D,EAAW1D,IAAM0D,EAAWzD,IAAMD,EAAEkB,QAAUjB,EAAEiB,MACzCjB,EAEPyD,EAAW1D,EAAG,OAAS6D,EAAiB5D,IAAM8E,OAAO9E,EAAEsB,YAAY,GAAGR,KAAKG,OAAS6D,OAAO/E,EAAEkB,QAAW,EACjG,IACAjB,EACHsB,YAAa,CACT,IACOtB,EAAEsB,YAAY,GACjBR,KAAMf,KAKlB6D,EAAiB7D,IAAM0D,EAAWzD,EAAG,OAAS8E,OAAO9E,EAAEiB,OAAS6D,OAAO/E,EAAEuB,YAAY,GAAGW,GAAGhB,QAAW,EAC/F,IACAlB,EACHuB,YAAa,CACT,IACOvB,EAAEuB,YAAY,GACjBW,GAAIjC,KAKb,MA1BP,IAAqBD,EAAGC,EAyCZ,OAAIwH,GACAjG,EAAKmG,QAAQF,GAIVjG,GAFI,IAEA,GACZ,IACCiG,IACAhE,EAAKlC,YAAckG,EACnBF,EAASzE,MAEjB,CAEA,OADAyE,EAAStB,KAAKxC,GACP8D,CAAQ,GAChB,GAsOP,CAOI,SAASK,EAAa7G,EAAMmB,EAAKtD,KACjC,OAAImC,IAASnC,IACFsE,IAGGV,EADSN,IAAOtD,IAhN9B,SAA6BmC,GAC7B,GAAa,IAATA,EACA,MAAO,CACHmC,KAGR,MAAM2E,EAAShD,EAAe9D,GACxB6E,EAAciC,EAAO5I,OACrB6I,EAAQ5E,EAnSlB,SAA6BnC,EAAMmB,GAC/B,MAAO,CACHP,KAAM,aACNE,KAAM,QACNd,OACAmB,QAL2BA,EAM3BkB,QAAQ,EAEhB,CA2RoC2E,CAAoBnC,EAAc,IAC5DP,EAAQO,EAAc,EAC5B,GAAI7E,EAAOmF,KAAK8B,IAAI,GAAI3C,KAAWwC,EAAO,GACtC,MAAO,CACHvG,EAAgB0D,EAAqB6C,EAAO,IAAI,GAAOxI,MAAM0B,KAAK,CAC9D9B,OAAQoG,GACTpC,IACH6E,GAGR,MA0BMG,EA1BqBJ,EAAOzD,QAAO,CAAC8D,EAAUf,EAAGvH,KACnD,MAAMwH,EAAKxB,EAAchG,EAAI,EACvByH,EAAU,IAANzH,EACV,IAAIuI,EAAOvG,EAAe,IAC1B,MAAMwG,EAAQP,EAAOzD,QAAO,CAACgE,EAAOnD,EAAOqC,KACvC,GAAIA,EAAIF,EACJgB,EAAMnC,KAAKrE,EAAeqD,SACvB,GAAIkD,EACP,GAAIb,EAAIF,EACJgB,EAAMnC,KAjVf,CACHtE,KAAM,OACNE,KAAM,OACNX,MAgFgB,MA/EhBa,UAAWC,UA8UI,CAEH,GADAmG,EAAOnD,EAAqBC,EAAOoC,IAC/Bc,EAGA,MAAO,GAFPC,EAAMnC,KAAKkC,EAInB,CAEJ,OAAOC,CAAK,GACb,IAIH,OAHIA,EAAMnJ,QACNiJ,EAASjC,KAAKmC,GAEXF,CAAQ,GAChB,IACuC5B,KAAKa,GAAI7F,EAAgB6F,KAEnE,OADAc,EAAehC,KAAK6B,GACbG,CACX,CAiK6CI,CAAoBtH,GAAQ0E,EAAwB1E,EAAMmB,GAGvG,CAmII,SAASoG,EAAsB7J,EAAO8J,GACtC,MAAMC,EAAWzE,EAAWtF,GACtBgK,EAAkBvC,KAAKC,IAxC7B,SAAgC1H,GAChC,MAAM+J,EAAWzE,EAAWtF,GAC5B,IAAIiK,EAAQ,EAQZ,OAPA,WAAoBF,EAAU,CAC1B,KAAAG,CAAO/D,GACCpB,EAAoBoB,EAASnB,OAC7BiF,GAER,IAEGA,CACX,CA6BqCE,CAAuBJ,GAAWD,GAAuB3J,KACpF2C,EAAc,GACpB,IAAIsH,EAAiB,EACjBC,GAAwB,EA8B5B,OA7BA,WAAoBN,EAAUtE,EAAS,CACnCC,MAAO,CACHM,IAAI,EAAC,KAAEhB,EAAK,OAAEsF,KACNtF,IAAS+E,KAGR1E,EAAiBL,KAGlBsF,IAAWP,IACXM,GAAwB,GAErBD,EAAiBJ,GAE5B,IAAA9D,EAAM,KAAElB,EAAK,OAAEsF,IACPtF,IAAS+E,GAAYO,IAAWP,GAAY1E,EAAiBL,KAAUqF,GAAyBD,EAAiB,GAAKA,EAAiBJ,IACvIlH,EAAY0E,KAAKxC,EAEzB,GAEJkF,MAAO/D,KACCpB,EAAoBoB,EAASnB,OAASoF,EAAiBJ,IACvDK,GAAwB,EACxBD,IACO,OAKQ,IAAvBtH,EAAYtC,QAAiBuE,EAAoBjC,EAAY,IAG1DA,EAFI+G,EAAsB/G,EAAY,GAAIkH,EAGrD,CAmDA,SAASO,EAAqBvK,EAAOwK,EAAU/I,GAC3C,MAAM,oBAAES,GAAyBT,EAC3BsI,EAAWzE,EAAWtF,GACtByK,EAAgBvI,GAAuBsI,EAAShK,OAAS,CAC3DgK,EAAS,IACTA,EACEE,EAAwBD,EAAc9E,QAAO,CAAC+E,EAAuBtK,IAAUqH,KAAKkD,IAAID,EA97B9F,SAAqCtK,EAASqB,GAC9C,MAAM,YAAEO,EAAY,YAAEC,EAAY,qBAAE2I,GAA0BnJ,EAC9D,IAAIoJ,EAAoB7I,EAAc,EAAIC,EAAc,EAAI,EAC5D,GAAI2I,EACA,IAAI,IAAIzJ,EAAI0J,EAAoB,EAAG1J,EAAI,GAChB,IAAff,EAAQe,IAAkC,IAAtB0J,EADc1J,IAItC0J,IAGR,OAAOA,CACX,CAk7ByHC,CAA4B1K,EAASqB,KAAW,GAC/JsJ,EAAqBlB,EAAsBE,EAAUW,GACrDM,EAAejH,KAAiC0G,EAAc5C,KAAKzH,GArDzE,SAA6B6K,EAAexJ,GAC5C,MAAM,YAAEO,EAAY,YAAEC,EAAY,oBAAEC,GAAyBT,EACvDyJ,EAAcD,EAAc,KAAO9K,IAAW,EAAI6B,EAAc,EAAIC,EAAc,EAAI,EAC5F,GAAIC,EAAqB,CACrB,MAAMsH,EAAiB,GACvB,IAAI2B,GAAc,EACdvC,EAAI,EACJwC,EAAQ,EACZ,MAAMC,EAAgBlK,GAAI,CAACqH,EAAOK,IACtBA,GAAKqC,EACEzG,KAEX2G,EAAQxK,MAAMC,QAAQ2H,GAASA,EAAM,GAAKA,EACtCK,EAAI1H,EACG2D,EAAgBsG,GAEvBvC,EAAI1H,EACGsD,IAEJ0E,EAAaiC,EAAQxC,IAEpC,IAAI,IAAIzH,EAAI+J,EAAc,EAAG/J,GAAK,EAAGA,IAC7BgK,IAAgBF,EAAc9J,KAGlCgK,GAAc,EACd3B,EAAehC,KAAKyD,EAAcpD,IAAIwD,EAAalK,KACnDyH,EAAI,GAER,OAAOY,CACX,CAUA,MAAO,CATiByB,EAAcpD,KAAI,CAACW,EAAOrH,IAC1CA,GAAK+J,EACEzG,IAEP7D,MAAMC,QAAQ2H,GACPW,EAAaX,EAAM,GAAIA,EAAM,IAEjC1D,EAAgB0D,KAK/B,CAUuF8C,CAAoBlL,EAASqB,GAASoG,KAAKD,GA5HlI,SAA+B5H,EAAOO,EAASuJ,GAC3C,IAAIC,EAAWzE,EAAWtF,GAC1B,MAAMuL,EAAkD,iBAAxBzB,GAAoCA,EAAsBvJ,EAAQC,OAASD,EAAQiL,MAAM,EAAG1B,GAAuBvJ,EAAQiL,QAiB3J,OAhBA,WAAoBzB,EAAUtE,EAAS,CACnCC,MAAM,IACKzC,QAAQsI,EAAiB/K,QAEpC0J,MAAO/D,IACCpB,EAAoBoB,EAASnB,QAASuG,EAAiB/K,SACnDuJ,IAAa5D,EAASnB,KACtB+E,EAAWwB,EAAiBE,QAE5BtF,EAASZ,QAAQgG,EAAiBE,UAE/B,MAKZ1B,CACX,CAwG0I2B,CAAsB7I,EAAgBL,EAAMuI,IAAsBnD,EAAO8C,QAiB/M,OAhBA,WAAoBX,EAAUtE,EAAS,CACnCC,MAAOS,KACE4E,EAAmBvK,SAGpB2F,EAASnB,OAAS+F,EAAmB,KACH,IAA9BA,EAAmBvK,OACnB2F,EAASZ,QAAQyF,GAEjB7E,EAASwF,SAEbZ,EAAmBU,UAEhB,MAGR1B,CACX,CA2BA,MAAM6B,EAAiB,CACnB5J,aAAa,EACbC,aAAa,EACb2I,sBAAsB,EACtB1I,qBAAqB,GAMrB,SAAS2J,EAAuBpK,EAAU,CAAC,GAC3C,MAAMqK,EAAe,IACdF,KACAnK,GAMP,OAxCA,SAAgCsK,EAAgBtK,GAChD,OAAOsK,EAAelE,KAAI,EAAG7H,MAAOgM,EAAc5L,UAAUF,aAAa+L,qBAAqB5C,MAC1F,IAAIU,EAAWzE,EAAW0G,GAO1B,OANK5L,IACD2J,EAAWQ,EAAqBR,EAp2BxC,SAA8BS,GAC9B,GAAIA,EAAShK,OAAS,EAClB,OAAOgK,EAEX,MAAMG,EAAMH,EAAShK,OAAS,EACxB8G,EAAS,GACf,IAAIoC,EAAO,KACPwC,EAAU1B,EAAS,GACnB9I,EAAQ,CACRwK,EAAQzL,EAAW0L,QAEnBxK,EAAQ,CACRuK,EAAQzL,EAAW2L,QAEnBxK,EAAQ,CACRsK,EAAQzL,EAAW4L,QAEnBC,EAAO,KACX,IAAI,IAAInL,EAAI,EAAGA,EAAIwJ,EAAKxJ,IAAI,CACxBuI,EAAOc,EAASrJ,EAAI,GACpB+K,EAAU1B,EAASrJ,IAAM,GACzB,IAAI,IAAIoL,EAAI9L,EAAW0L,MAAOI,GAAK9L,EAAW4L,MAAOE,IAAI,CACrD,IAAKA,IAAMD,GAAiB,OAATA,IAAkB5C,EAAK6C,GAAK,IAAML,EAAQK,IAAMlK,EAAcqH,EAAMwC,EAASK,EAAI,GAAI,CACpGD,EAAOC,EACHA,IAAM9L,EAAW0L,MACjBzK,EAAM8F,KAAK0E,EAAQzL,EAAW0L,QAE9BzK,EAAQwK,EAAQzL,EAAW0L,OAE3BI,IAAM9L,EAAW2L,MACjBzK,EAAM6F,KAAK0E,EAAQzL,EAAW2L,QAE9BzK,EAAQuK,EAAQzL,EAAW2L,OAE3BG,IAAM9L,EAAW4L,MACjBzK,EAAM4F,KAAK0E,EAAQzL,EAAW4L,QAE9BzK,EAAQsK,EAAQzL,EAAW4L,OAE/B,KACJ,CACA,GAAIC,IAASC,GAAK7C,EAAK6C,KAAOL,EAAQK,GAAI,CACtCjF,EAAOE,KAAK,CACRlH,EAAgBoB,GAChBpB,EAAgBqB,GAChBrB,EAAgBsB,KAEpBF,EAAQ,CACJwK,EAAQzL,EAAW0L,QAEvBxK,EAAQ,CACJuK,EAAQzL,EAAW2L,QAEvBxK,EAAQ,CACJsK,EAAQzL,EAAW4L,QAEvBC,EAAO,KACP,KACJ,CACJ,CACJ,CACA,OAAOhF,CACX,CAsyBsDkF,CAAqBP,GAAkB,IAC1ExK,EACHS,qBAAsBhC,GAAcuB,EAAQS,uBAG7C,CACHlC,MAAO,KACPgM,cACAjC,WACA3J,UACAF,aACA+L,qBACG5C,EACN,GAET,CAoB6BoD,CA1QzB,SAA+BC,EAAUjL,EAASkL,EAAgB5M,GAClE,MAAM6M,EAAS,GACf,IAAIC,EAAa,GACbC,GAAoB,EAiCxB,OAhCAH,EAAcI,SAAS/M,IACnB,MAAMgN,EAAkBN,EAASO,IAAIjN,EAAMC,QAC3C,IAAK+M,EACD,OAEJ,IAAI,QAAE5M,EAAQ,WAAEC,EAAW,WAAEH,GAAgBF,EACzCI,IACAC,EAAaD,EACbF,EAAaE,GAEjB,IAAI6L,EA/BR,SAA6B5L,EAAYH,EAAYgN,EAAOzL,GAC5D,MAAM0L,EAAiB,IAChB1L,EACHS,qBAAqB,GAEnBkL,EAAiBC,GAAM/L,EAAe+L,EAAKhN,EAAY8M,GACvDG,EAAiBD,GAAM/L,EAAepB,EAAYmN,EAAKF,GACvDI,EAAalN,GAAcH,EAAcmN,GAAMD,EAAcC,IAAQC,EAAcD,GAAOhN,EAAa+M,EAAgBlN,EAAaoN,EAAgB,KAAI,EAC9J,OAAOJ,EAAMlK,OAAOuK,EACxB,CAsB8BC,CAAoBnN,EAAYH,EAAY8M,EAAiBvL,GAC/EwK,EAAgBzL,SAEZqM,IAAe7M,EAAMC,QAAU6M,IAC/B1M,OAAUqN,EACVpN,OAAaoN,EACbvN,OAAauN,EACbxB,EAAkBe,EAClBJ,EAAOvI,OAEXuI,EAAOpF,KAAK,IACLxH,EACHI,UACAC,aACAH,aACA8M,kBACAf,qBAGRa,GAAqB1M,IAAYC,IAAeH,EAChD2M,EAAa7M,EAAMC,MAAM,IAEtB2M,CACX,CAoO0Bc,CAr6BtB,SAA8BhB,GAC9B,MAAMiB,EAAQ,IAAIC,IAwBlB,OAvBAlB,EAASK,SAAQ,EAAG9M,SAASG,cACzB,MAAMoK,EAAWmD,EAAMV,IAAIhN,GAC3B,GAAIuK,EAAJ,CACI,MAAMqD,EAAazN,EAAQ0N,KAAK,KAC5BtD,EAAS9E,OAAOgD,GAAIA,EAAEoF,KAAK,OAASD,KACpCrD,EAAShD,KAAKpH,EAGtB,MACAuN,EAAMI,IAAI9N,EAAQ,CACdG,GACF,IAENuN,EAAMZ,SAASvC,IACXA,EAASwD,MAAK,CAACzM,EAAGC,KACd,IAAI,MAAML,KAAKI,EACX,GAAIA,EAAEJ,KAAOK,EAAEL,GACX,OAAOI,EAAEJ,GAAKK,EAAEL,GAGxB,OAAO,CAAC,GACV,IAECwM,CACX,CA04B2BM,CAr9BvB,SAAyBxM,EAAU,CAAC,GACpC,MAAM,SAAEiL,KAAcwB,GAAwBzM,EAG9C,OAFqB0M,EAAazB,EAAUwB,GAvBxBvI,QAAO,CAAC+G,EAAU0B,KAClC,MAAOnO,EAAQoO,EAAeC,GAAmBF,EAAQrN,MAAM,OACzDX,EAAUM,EAAU2N,GAI1B,OAHkBjO,EAAekO,EAnErC,SAAqBhM,EAAMmB,GAC3B,IAAI8K,EAAY,EAChB,MAAM/F,EAAQ,GACd,IAAI,IAAIrH,EAAI,EAAGA,GAAK,EAAGA,IACnB,GAAImB,EAAKnB,KAAOsC,EAAGtC,GAAI,CACnBoN,EAAYpN,EACZ,KACJ,CAEJ,IAAI,IAAIqN,EAAKlM,EAAKiM,GAAY5D,EAAMlH,EAAG8K,GAAYC,GAAM7D,EAAK6D,IAC1DhG,EAAMhB,KAAKlF,EAAKuF,KAAI,CAAC4G,EAAG5F,IAAIA,IAAM0F,EAAYC,EAAKC,KAEvD,OAAOjG,CACX,CAsD2DkG,CAAYtO,EAASM,EAAU4N,IAAoB,CAClGlO,GADwB,IAGZuF,QAAO,CAAC+G,EAAUxL,KAC1BA,GACAwL,EAASlF,KAAK,CACVvH,SACAG,QAASc,IAGVwL,IACRA,EAAS,GACb,GAWP,CA+8ByBiC,CAAgB7C,IAEuBA,GACGA,EAEnE,0BAYI,SAA2BrK,EAAU,CAAC,IA/NtC,SAAsB1B,GACtB,MAAM6O,EAAe7O,EAAQ8H,KAAI,EAAGkC,cAAcpG,EAAmBoG,EAAS8E,QAjd9E,IAAiBC,EACK,iBADLA,EA8DrB,SAAuB9O,GAEnB,MAAM+J,EAAW,WAAoBzE,GAzDnBwJ,EAyDuC9O,EAxDnC,iBAAR8O,EAAmBA,EAAMA,aAAe5J,OAAS4J,EAAIhO,WAAa,WAAoBgO,MAwDlCC,SAzDlE,IAAkBD,EAoElB,OAVA,WAAoB/E,EAAU,CAC1B,KAAAG,CAAO/D,GACH,MAAM,OAAEmE,EAAO,KAAEtF,GAAUmB,GACrB,WAAEvC,GAAgBoB,EACxBA,EAAKnB,WAAY,GACG,WAAhByG,EAAOpH,MAAyC,gBAApBU,EAAWV,MAA0C,eAAhBoH,EAAOpH,MAA6C,gBAApBU,EAAWV,MAA0C,gBAAhBoH,EAAOpH,OAC7IiD,EAASZ,QAAQY,EAASnB,KAAKpB,WAEvC,IAEGmG,CACX,CAsYqBiF,CAvnBV,CACH9L,KAAM,SACN2L,KAqnByC9K,EAA8B6K,GApnBvEK,MAAO,MAmKsB,IAAI/J,OAAO4J,GAAO,IAAI5J,OAAO,WAAoB4J,EAAID,MAAOC,EAAIG,MAmdrG,CA4NWC,CAAarD,EAAuBpK,GAC/C,CClmCuC0N,CAAkB,CAAEjN,qBAAqB,EAAMwK,SAAU0C,MAAzF,MACMC,EAAoBlB,IAAaiB,KCL9C,GAAeE,WAAAA,IAAW,QACxBC,gBACAC,UACAC,kCCFF,MAYA,EAXc,QADIC,GAYOC,EAAAA,EAAAA,QAVhBC,EAAAA,EAAAA,MACLC,OAAO,QACPJ,SAEIG,EAAAA,EAAAA,MACLC,OAAO,QACPC,OAAOJ,EAAKK,KACZN,QATeC,sBCCX,MAAMM,EAAoB,8BACZC,EAAAA,EAAAA,IAAY,gBAELC,EAAeC,QAAQH,GC7BnD,+CCoBA,MCpBsG,GDoBtG,CACEI,KAAM,UACNC,MAAO,CAAC,SACRC,MAAO,CACLC,MAAO,CACLrN,KAAMG,QAERmN,UAAW,CACTtN,KAAMG,OACNoN,QAAS,gBAEXC,KAAM,CACJxN,KAAMoD,OACNmK,QAAS,sBEff,UAXgB,QACd,ICRW,WAAkB,IAAIE,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,OAAOF,EAAII,GAAG,CAACC,YAAY,gCAAgCC,MAAM,CAAC,eAAcN,EAAIJ,OAAQ,KAAY,aAAaI,EAAIJ,MAAM,KAAO,OAAOW,GAAG,CAAC,MAAQ,SAASC,GAAQ,OAAOR,EAAIS,MAAM,QAASD,EAAO,IAAI,OAAOR,EAAIU,QAAO,GAAO,CAACR,EAAG,MAAM,CAACG,YAAY,4BAA4BC,MAAM,CAAC,KAAON,EAAIH,UAAU,MAAQG,EAAID,KAAK,OAASC,EAAID,KAAK,QAAU,cAAc,CAACG,EAAG,OAAO,CAACI,MAAM,CAAC,EAAI,y5BAAy5B,CAAEN,EAAS,MAAEE,EAAG,QAAQ,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAIJ,UAAUI,EAAIa,UACj6C,GACsB,IDSpB,EACA,KACA,KACA,MAI8B,+BE+ChCC,EAAAC,MAAA,sBAAArC,kBAAAA,IAEA,MCnEwL,GDmExL,CACAe,KAAA,qBACAuB,WAAA,CACAC,IAAA,GACAC,SAAA,IACAC,eAAAA,EAAAA,GAGAC,SAAA,CACAC,SAAAA,IACA,iEAAA7M,KAAA8M,UAAAC,WAOAC,yBAAAA,GACA,OAAA9C,EAAArM,QAAAoL,KACAA,IAIA,KAAA4D,SACA,KAAAI,gBAAAhE,IAEA,KAAAgE,gBAAAhE,KAEA,EAEAiE,qBAAAA,GACA,MAAAC,EAAA,GAUA,OAPA,KAAAH,0BAAApF,SAAAqB,IACA,MAAAmE,EAAAnS,GAAAgO,EAAArN,MAAA,OACAuR,EAAAC,IAAAD,EAAAC,GAAAC,WAAApS,EAAA,OACAkS,EAAAC,GAAAC,WAAApS,EAAA,IACA,IAGAqS,OAAAC,KAAAJ,GAAAzK,KAAA0K,IAAA,IAAAI,EAAAC,EACA,WAAAD,EAAAE,EAAAA,EAAAN,UAAA,IAAAI,IAAAA,EAAAvE,QACA,YAGA,MAAAhO,EAAAkS,EAAAC,GACAnC,EAAA,QAAAwC,EAAAC,EAAAA,EAAAN,UAAA,IAAAK,OAAA,EAAAA,EAAAxE,QACA,YAAA0E,EAAA,6CACA1C,OAAAhQ,WACA,IACA4C,QAAA+P,GAAA,OAAAA,GACA,GAGAC,QAAA,CACAF,EAAA,KACAG,EAAA,KAGAC,aAAAA,GACAhD,EAAAiD,QAAAnD,GAAA,GAGA,MAAAoD,EAAA,IAAAC,gBAAAC,OAAAC,SAAAC,QACA,GAAAJ,EAAAK,IAAA,iBACA,IAAAC,EAAAC,GAAArR,KAAA8Q,EAAAnG,IAAA,0BAAAnM,YAAA,IASA,GANA4S,EAAAA,EACAnO,QAAA,gBACAA,SAAAqO,EAAAA,EAAAA,MAAA,IACArO,QAAA,aAGAmO,EAAAG,WAAA,KAEA,YADAP,OAAAC,UAAAtD,EAAAA,EAAAA,IAAAyD,GAGA,CAGAJ,OAAAC,UAAAtD,EAAAA,EAAAA,IAAA,IACA,EAQAmC,gBAAAhE,IACAA,EAAAA,EAAA0F,eACArN,SAAA,SACA2H,EAAA3H,SAAA,YACA2H,EAAA3H,SAAA,SACA2H,EAAA3H,SAAA,WACA2H,EAAA3H,SAAA,SACA2H,EAAA3H,SAAA,uKE1JIhF,GAAU,CAAC,EAEfA,GAAQsS,kBAAoB,KAC5BtS,GAAQuS,cAAgB,KAElBvS,GAAQwS,OAAS,UAAc,KAAM,QAE3CxS,GAAQyS,OAAS,KACjBzS,GAAQ0S,mBAAqB,KAEhB,KAAI,KAAS1S,IAKJ,MAAW,KAAQ2S,QAAS,KAAQA,OCP1D,UAXgB,QACd,IRTW,WAAkB,IAAIzD,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACG,YAAY,yCAAyC,CAACH,EAAG,iBAAiB,CAACwD,YAAY1D,EAAI2D,GAAG,CAAC,CAACC,IAAI,OAAOC,GAAG,WAAW,MAAO,CAAC3D,EAAG,OAAO,EAAE4D,OAAM,GAAM,CAACF,IAAI,SAASC,GAAG,WAAW,MAAO,CAAC3D,EAAG,MAAM,CAACA,EAAG,KAAK,CAACF,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAImC,EAAE,OAAQ,yFAAyF,gBAAgBnC,EAAIW,GAAG,KAAKT,EAAG,WAAW,CAACG,YAAY,wCAAwCC,MAAM,CAAC,KAAO,WAAWC,GAAG,CAAC,MAAQP,EAAIuC,gBAAgB,CAACvC,EAAIW,GAAG,eAAeX,EAAIY,GAAGZ,EAAImC,EAAE,OAAQ,2CAA2C,iBAAiB,GAAGnC,EAAIW,GAAG,KAAKT,EAAG,KAAK,CAACG,YAAY,qCAAqC,CAACH,EAAG,KAAK,CAACF,EAAIW,GAAGX,EAAIY,GAAGZ,EAAImC,EAAE,OAAQ,0BAA0BnC,EAAIW,GAAG,KAAKX,EAAI+D,GAAI/D,EAAI0B,uBAAuB,SAASjE,GAAS,OAAOyC,EAAG,KAAK,CAAC0D,IAAInG,GAAS,CAACuC,EAAIW,GAAG,eAAeX,EAAIY,GAAGnD,GAAS,eAAe,KAAI,GAAG,EAAEqG,OAAM,MAAS,CAAC9D,EAAIW,GAAG,SAASX,EAAIY,GAAGZ,EAAImC,EAAE,OAAQ,kCAAkC,aAAa,EAC3iC,GACsB,IQUpB,EACA,KACA,WACA,MAI8B,QCUkB,SAA9C5C,EAAeC,QAAQH,KAC1BsD,OAAOC,UAAWtD,EAAAA,EAAAA,IAAY,MAG/B,IAAmB0E,EAAAA,GAAI,CACtBC,GAAI,uBAEJxE,KAAM,yBACNyE,OAAQC,GAAKA,EAAEC,uBCrChB,IAAIC,EAAoB,EAAQ,OAEhC,SAASC,IAAQ,CAEjBpV,EAAOC,QAAU,CACfoV,YAAa,WACX,MAAM,IAAIF,EACR,0EAEJ,EAEAG,QAAS,SAAiBC,GACxB,OAAOA,EAAKC,KACd,EAEAC,WAAY,SAAoBF,GAC9B,GAAIA,EAAKG,OACP,MAAM,IAAIP,EACR,6DAGN,EAEAQ,YAAa,WACX,MAAM,IAAIR,EACR,4EAGJ,EAEAS,YAAa,WACX,MAAM,IAAIT,EACR,0EAEJ,EAEAU,YAAa,SAAqBC,EAASC,GACzC,OAAOD,EAAQ,CAAC,4BAA6BC,GAAS,EACxD,EAEAC,YAAaZ,EAEba,WAAYb,EAEZc,WAAYd,EAEZe,YAAaf,EAEbgB,eAAgBhB,EAEhBiB,IAAK,CAAC,cClDR,SAASlB,EAAkBmB,GACzBvF,KAAKR,KAAO,oBACZQ,KAAKuF,QAAUA,EACfvF,KAAKzC,cAAe,EAChBiI,MAAMC,mBACRD,MAAMC,kBAAkBzF,KAAMoE,EAElC,CAEAA,EAAkBsB,UAAYF,MAAME,UAEpCzW,EAAOC,QAAUkV,mBCXjB,IAAIuB,EAAa,EAAQ,OACrB1D,EAAS,WACT2D,EAAQ,EAAQ,OAChBC,EAAO,EAAQ,OACfC,EAAM,EAAQ,OAEd1B,EAAoB,EAAQ,OAC5B2B,EAAQ,EAAQ,MAChBT,EAAM,EAAQ,OAGdU,EAA0B,KAK9B,SAASC,EAAgBC,EAAUC,GACjC,OAAoD,KAA5CD,EAAW,KAAKE,QAAQD,EAAW,IAC7C,CASA,SAASE,EAAUzM,GACjB,OAAOA,EAASxH,QAAO,SAAU5C,GAC/B,MAA0B,iBAAZA,CAChB,GACF,CAEA,SAAS8W,EAAkB9W,GACzB,IAAI+W,EAAe/W,EAInB,OAHkC,IAA9BA,EAAQW,MAAM,KAAKP,SACrB2W,EAAe/W,EAAQW,MAAM,KAAKyK,MAAM,GAAI,GAAGsC,KAAK,MAE/CqJ,CACT,CAEA,SAASC,EAAWhH,GAClB,OAAO,SAAiBhQ,GACtB,OAAOgQ,EAAO,IAAMhQ,CACtB,CACF,CAEA,SAASiX,EAASjX,GAChB,OAAOgB,SAAShB,EAAQW,MAAM,KAAK,GACrC,CAEA,SAASuW,EAAiBC,EAAUzT,GAClC,GAAwB,IAApByT,EAAS/W,OAAc,MAAO,GAClC,IAAIgX,EAAgBC,EAAKF,EAAS1P,IAAIwP,IAClCK,EAAUF,EAAcA,EAAchX,OAASsD,GACnD,IAAK4T,EACH,OAAOH,EAGT,IADA,IAAII,EAAW,GACNxW,EAAIoW,EAAS/W,OAAS,EAAGW,GAAK,KACjCuW,EAAUL,EAASE,EAASpW,KADQA,IAExCwW,EAASzO,QAAQqO,EAASpW,IAE5B,OAAOwW,CACT,CAEA,SAASF,EAAKG,GAEZ,IADA,IAAIC,EAAW,GACN1W,EAAI,EAAGA,EAAIyW,EAAMpX,OAAQW,KACI,IAAhC0W,EAASb,QAAQY,EAAMzW,KAAY0W,EAASrQ,KAAKoQ,EAAMzW,IAE7D,OAAO0W,CACT,CAEA,SAASC,EAAUlL,EAAQwD,EAAM2H,GAC/B,IAAK,IAAI5W,KAAK4W,EACZnL,EAAOwD,EAAO,IAAMjP,GAAK4W,EAAK5W,EAElC,CAEA,SAAS6W,EAAeC,EAAM7X,GAE5B,OADAA,EAAUoS,WAAWpS,GACR,MAAT6X,EACK,SAAUxJ,GACf,OAAO+D,WAAW/D,GAAKrO,CACzB,EACkB,OAAT6X,EACF,SAAUxJ,GACf,OAAO+D,WAAW/D,IAAMrO,CAC1B,EACkB,MAAT6X,EACF,SAAUxJ,GACf,OAAO+D,WAAW/D,GAAKrO,CACzB,EAEO,SAAUqO,GACf,OAAO+D,WAAW/D,IAAMrO,CAC1B,CAEJ,CA6BA,SAAS8X,EAAeC,GACtB,OAAO/W,SAAS+W,EAClB,CAEA,SAASC,EAAQ7W,EAAGC,GAClB,OAAID,EAAIC,GAAW,EACfD,EAAIC,EAAU,EACX,CACT,CAEA,SAAS6W,EAAc9W,EAAGC,GACxB,OACE4W,EAAQhX,SAASG,EAAE,IAAKH,SAASI,EAAE,MACnC4W,EAAQhX,SAASG,EAAE,IAAM,KAAMH,SAASI,EAAE,IAAM,OAChD4W,EAAQhX,SAASG,EAAE,IAAM,KAAMH,SAASI,EAAE,IAAM,KAEpD,CAGA,SAAS8W,EAAkBC,EAAU/P,GAOnC,YALwB,KADxBA,EAAQA,EAAMzH,MAAM,KAAK8G,IAAIqQ,IACZ,KACf1P,EAAM,GAAK,KAKN,OADC+P,EAEG,SAAUnY,GAEf,OAAOoY,EADPpY,EAAUA,EAAQW,MAAM,KAAK8G,IAAIqQ,GACE1P,IAAU,CAC/C,EAGO,SAAUpI,GAEf,OAAOoY,EADPpY,EAAUA,EAAQW,MAAM,KAAK8G,IAAIqQ,GACE1P,IAAU,CAC/C,CAEN,CAGA,SAASgQ,EAAmBpY,EAASoI,GACnC,OAAIpI,EAAQ,KAAOoI,EAAM,GAChBpI,EAAQ,GAAKoI,EAAM,IAAM,EAAI,EAErB,MAAbA,EAAM,GACD,EAELpI,EAAQ,KAAOoI,EAAM,GAChBpI,EAAQ,GAAKoI,EAAM,IAAM,EAAI,EAE/B,CACT,CAYA,SAASiQ,EAAiBV,EAAM3X,GAC9B,IAAIsY,EAXN,SAAwBX,EAAM3X,GAC5B,OAAwC,IAApC2X,EAAKvN,SAASwM,QAAQ5W,GACjBA,IACE+N,EAAawK,eAAeZ,EAAK3H,MAAMhQ,IACzC+N,EAAawK,eAAeZ,EAAK3H,MAAMhQ,EAIlD,CAGiBwY,CAAeb,EAAM3X,GACpC,OAAIsY,GAEgC,IAAzBX,EAAKvN,SAAShK,QAChBuX,EAAKvN,SAAS,EAIzB,CAEA,SAASqO,EAAaC,EAAOlD,GAE3B,OADAkD,GAAgB,IACTrG,OAAOC,KAAKG,GAAQlN,QAAO,SAAUgS,EAAUvH,GACpD,IAAI2H,EAAOgB,EAAO3I,EAAMwF,GACxB,IAAKmC,EAAM,OAAOJ,EAClB,IAAInN,EAAWiI,OAAOC,KAAKqF,EAAKiB,aAAahW,QAAO,SAAUyL,GAC5D,IAAIwK,EAAOlB,EAAKiB,YAAYvK,GAC5B,OAAgB,OAATwK,GAAiBA,GAAQH,CAClC,IACA,OAAOnB,EAAShV,OAAO6H,EAAS3C,IAAIuP,EAAWW,EAAK3H,OACtD,GAAG,GACL,CAEA,SAAS8I,EAAUnB,GACjB,MAAO,CACL3H,KAAM2H,EAAK3H,KACX5F,SAAUuN,EAAKvN,SACf+M,SAAUQ,EAAKR,SACfyB,YAAajB,EAAKiB,YAEtB,CAEA,SAASD,EAAO3I,EAAMwF,GAGpB,GAFAxF,EAAOA,EAAK0D,cACZ1D,EAAOjC,EAAagL,QAAQ/I,IAASA,EACjCwF,EAAQwD,iBAAmBjL,EAAakL,aAAajJ,GAAO,CAC9D,IAAIkJ,EAAUnL,EAAa4J,KAAK5J,EAAakL,aAAajJ,IAC1D,GAAa,YAATA,EACF,OA2BwBmJ,EA3BIL,EAAU/K,EAAa4J,KAAK3H,IA2BvBoJ,EA3B+BF,EA4BpEC,EAAQhC,SAAWkC,EAAyBF,EAAQhC,SAAUiC,EAAOjC,UACrEgC,EAAQ/O,SAAWiP,EAAyBF,EAAQ/O,SAAUgP,EAAOhP,UACrE+O,EAAQP,YAXV,SAAoBU,GAClB,IAAIhX,EAAO,CAAC,EACZ,IAAK,IAAI6R,KAAOmF,EACdhX,EAAK6R,GAAOmF,EAAInF,GAElB,OAAO7R,CACT,CAKwBiX,CAAWJ,EAAQP,aACzCO,EAAQhC,SAASxK,SAAQ,SAAU0B,QACFhB,IAA3B8L,EAAQP,YAAYvK,KACtB8K,EAAQP,YAAYvK,GAAK+K,EAAOR,YAAYvK,GAEhD,IACO8K,EAlCH,IAAIK,EAASV,EAAUI,GAEvB,OADAM,EAAOxJ,KAAOA,EACPwJ,CAEX,CAqBF,IAA8BL,EAASC,EApBrC,OAAOrL,EAAa4J,KAAK3H,EAC3B,CAEA,SAASqJ,EAAyBI,EAAiBC,GACjD,IAAIC,EAAkBD,EAAe9C,QAAQJ,GAC7C,OAAOiD,EACJ7W,QAAO,SAAU5C,GAChB,MAAO,qBAAqB+E,KAAK/E,EACnC,IACCuC,OAAOmX,EAAetO,MAAMuO,GACjC,CAsBA,SAASC,EAAU5J,EAAMwF,GACvB,IAAImC,EAAOgB,EAAO3I,EAAMwF,GACxB,IAAKmC,EAAM,MAAM,IAAI/C,EAAkB,mBAAqB5E,GAC5D,OAAO2H,CACT,CAaA,SAASkC,EAAY3H,EAAMlC,EAAM8J,EAAWtE,GAC1C,IAAIuE,EAAO,EACX,OAAQ/J,GACN,IAAK,UACH,GAAIwF,EAAQwD,gBAAiB,OAAO9G,EACpC,IAAIiF,EAAWpJ,EAAa4J,KAAKyB,OAAOjC,SACxC4C,EAAO5C,EAAS/W,OAAS+W,EAASP,QAAQJ,GAC1C,MACF,IAAK,SAEHuD,EAAO9C,EADMlJ,EAAa4J,KAAKqC,OAAO7C,SAAS/L,OAAO,GAAG,IA7RtC,GA8R4B,EAC/C,MACF,QACE,OAAO8G,EAEX,OAAI4H,GAAaC,EACR7H,EAAK9G,OAAO,GAEd8G,EAAK9G,MAAM2O,EAAO,EAAID,EAC/B,CAEA,SAASG,EAAYpL,EAAOqL,GAC1B,MACmB,iBAAVrL,IACNA,EAAM+H,QAAQ,MAAQ,GAAMsD,GAAerL,EAAM+H,QAAQ,MAAQ,EAEtE,CAEA,SAASrB,EAAQ4E,EAAS3E,GACxB,OAAOe,EAAM6D,EAASD,GAAS5U,QAAO,SAAUiH,EAAQ5H,EAAMyV,GAC5D,GAAIzV,EAAK0V,KAAiB,IAAVD,EACd,MAAM,IAAIzF,EACR,+DAEEhQ,EAAK2V,MACL,KAGN,IACI/C,EADO4C,EAAQxV,EAAK9B,MACP0X,OAAOC,KAAK1M,EAAcyH,EAAS5Q,GAAM6C,KAAI,SAAUgB,GACtE,IAAIjB,EAAQiB,EAAE9H,MAAM,KACpB,MAAiB,MAAb6G,EAAM,GACDA,EAAM,GAAK,IAAMmR,EAAOnR,EAAM,GAAIgO,GAASpL,SAAS,GAEpD3B,CAEX,IAEA,GAAqB,QAAjB7D,EAAK8V,QACP,OAAI9V,EAAK0V,IACA9N,EAAO5J,QAAO,SAAU6F,GAC7B,OAA6B,IAAtB+O,EAAMZ,QAAQnO,EACvB,IAEO+D,EAAO5J,QAAO,SAAU6F,GAC7B,OAA6B,IAAtB+O,EAAMZ,QAAQnO,EACvB,IAGF,GAAI7D,EAAK0V,IAAK,CACZ,IAAI1X,EAAS,CAAC,EAId,OAHA4U,EAAM7K,SAAQ,SAAUlE,GACtB7F,EAAO6F,IAAK,CACd,IACO+D,EAAO5J,QAAO,SAAU6F,GAC7B,OAAQ7F,EAAO6F,EACjB,GACF,CACA,OAAO+D,EAAOjK,OAAOiV,EAEzB,GAAG,GACL,CAEA,SAASmD,EAAY3F,GAOnB,YANoB,IAATA,IAAsBA,EAAO,CAAC,QAEhB,IAAdA,EAAKqB,OACdrB,EAAKqB,KAAOA,EAAKd,QAAUc,EAAKd,QAAQ,KAAO,KAG1CP,CACT,CAEA,SAAS4F,EAAeT,EAASnF,GAC3B,MAAOmF,IAGPA,EAFWpM,EAAamH,WAAWF,IAIzBjH,EAAa8M,UAI3B,OAAOV,CACT,CAEA,SAASW,EAAaX,GACpB,GAAyB,iBAAZA,IAAwB3Z,MAAMC,QAAQ0Z,GACjD,MAAM,IAAIvF,EACR,0DAA4DuF,EAAU,IAG5E,CAEA,IAAIY,EAAQ,CAAC,EAEb,SAAShN,EAAaoM,EAASnF,GAG7B8F,EADAX,EAAUS,EAAeT,EADzBnF,EAAO2F,EAAY3F,KAInB,IAAIQ,EAAU,CACZwF,sBAAuBhG,EAAKgG,sBAC5BC,gBAAiBjG,EAAKiG,gBACtBjC,gBAAiBhE,EAAKgE,gBACtB3C,KAAMrB,EAAKqB,KACXP,IAAKd,EAAKc,KAGZA,EAAID,eAAe9H,EAAa4J,MAChC,IAAI1C,EAAQa,EAAIf,QAAQC,EAAMjH,EAAa4J,MAC3C,GAAI1C,EAEF,IAAK,IAAIjH,KADTwH,EAAQ0F,YAAc,CAAC,EACHjG,EAClByC,EAAUlC,EAAQ0F,YAAalN,EAASiH,EAAMjH,IAIlD,IAAImN,EAAWC,KAAKC,UAAU,CAAClB,EAAS3E,IACxC,GAAIuF,EAAMI,GAAW,OAAOJ,EAAMI,GAElC,IAAI3O,EAAS6K,EAAK9B,EAAQ4E,EAAS3E,IAAU5H,MAAK,SAAU0N,EAAOC,GAGjE,GAFAD,EAAQA,EAAM3a,MAAM,KACpB4a,EAAQA,EAAM5a,MAAM,KAChB2a,EAAM,KAAOC,EAAM,GAAI,CAIzB,IAAIC,EAAWF,EAAM,GAAG3a,MAAM,KAAK,GAEnC,OAAOsX,EADQsD,EAAM,GAAG5a,MAAM,KAAK,GACLA,MAAM,KAAM6a,EAAS7a,MAAM,KAC3D,CACE,OAAOqX,EAAQsD,EAAM,GAAIC,EAAM,GAEnC,IAIA,OAHKzF,EAAIA,IAAI2F,6BACXV,EAAMI,GAAY3O,GAEbA,CACT,CAmGA,SAASkP,EAAUlG,EAAS5Q,GAC1B,IAAI+W,EAAU5N,EAAa6N,aAAahZ,QAAO,SAAU7B,GACvD,OAAO0V,EAAgB1V,EAAG6D,EAAK5E,QACjC,IACA,GAAuB,IAAnB2b,EAAQvb,OAAc,CACxB,GAAIoV,EAAQwF,sBACV,MAAO,GAEP,MAAM,IAAIpG,EACR,mBAAqBhQ,EAAK5E,QAAU,cAG1C,CACA,MAAO,CAAC,QAAU2b,EAAQA,EAAQvb,OAAS,GAC7C,CAEA,SAASyb,EAAWrG,EAAS5Q,GAC3B,IAAIkX,EAAO9a,SAAS4D,EAAKkX,MACrBC,EAAQ/a,SAAS4D,EAAKmX,OAAS,MAAQ,EACvCC,EAAMhb,SAAS4D,EAAKoX,KAAO,MAC/B,OAAOvD,EAAawD,KAAKC,IAAIJ,EAAMC,EAAOC,EAAK,EAAG,EAAG,GAAIxG,EAC3D,CAEA,SAAS2G,EAAW3G,EAAS5Q,GAC3B,IAAIwX,EAAWhK,WAAWxN,EAAKwX,UAC3BC,EAAQtO,EAAasO,MAAMC,OAC/B,GAAI1X,EAAK2X,MACP,GAAI3X,EAAK2X,MAAMC,MAAM,iBAAkB,CACrC,IAAKhH,EAAQ0F,YACX,MAAM,IAAItG,EAAkB,4CAE9ByH,EAAQ7G,EAAQ0F,WAClB,KAAO,CACL,IAAIqB,EAEFA,EADwB,IAAtB3X,EAAK2X,MAAMnc,OACLwE,EAAK2X,MAAME,cAEX7X,EAAK2X,MAAM7I,cAErBoC,EAAIV,YAAYrH,EAAasO,MAAOE,EAAOxO,EAAa4J,MACxD0E,EAAQtO,EAAasO,MAAME,EAC7B,CAQF,IANA,IAKIvc,EALAoK,EAAWiI,OAAOC,KAAK+J,GAAOzO,MAAK,SAAUzM,EAAGC,GAClD,OAAOib,EAAMjb,GAAKib,EAAMlb,EAC1B,IACIub,EAAY,EACZlQ,EAAS,GAEJzL,EAAI,EAAGA,EAAIqJ,EAAShK,SAC3BJ,EAAUoK,EAASrJ,GACI,IAAnBsb,EAAMrc,MACV0c,GAAaL,EAAMrc,GACnBwM,EAAOpF,KAAKpH,KACR0c,GAAaN,IALkBrb,KAOrC,OAAOyL,CACT,CA1JAuB,EAAawI,MAAQ,SAAU4D,EAASnF,GAItC,OADA8F,EADAX,EAAUS,EAAeT,EADzBnF,EAAO2F,EAAY3F,KAGZuB,EAAM6D,EAASD,EACxB,EAGApM,EAAagN,MAAQ,CAAC,EACtBhN,EAAa4J,KAAO,CAAC,EACrB5J,EAAasO,MAAQ,CACnBC,OAAQ,CAAC,EACTK,OAAQ,MAIV5O,EAAa8M,SAAW,CAAC,SAAU,kBAAmB,cAAe,YAGrE9M,EAAagL,QAAU,CACrB6D,GAAI,UACJC,GAAI,UACJC,IAAK,UACLC,SAAU,KACVC,WAAY,KACZC,eAAgB,SAChBC,UAAW,UACXC,YAAa,SACbC,cAAe,UACfC,eAAgB,SAChBC,UAAW,SACXC,UAAW,UAMbxP,EAAakL,aAAe,CAC1BuE,QAAS,SACTC,OAAQ,UACRC,OAAQ,KACRvE,QAAS,UAIXpL,EAAawK,eAAiB,CAAC,EAE/BxK,EAAa6H,YAAcE,EAAIF,YAC/B7H,EAAa0H,YAAcK,EAAIL,YAC/B1H,EAAa2H,WAAaI,EAAIJ,WAC9B3H,EAAa4H,WAAaG,EAAIH,WAC9B5H,EAAamH,WAAaY,EAAIZ,WAE9BnH,EAAaqO,SAAW,SAAU9P,EAAU2I,GAC1C,IAAI0C,EACJ,QAAqB,IAAV1C,EACT0C,EAAO5J,EAAasO,MAAMC,YACrB,GAAc,aAAVrH,EAAsB,CAC/B,IAAID,EAAO,CAAC,EACZA,EAAKqB,KAAOA,EAAKd,QAAUc,EAAKd,QAAQ,KAAO,IAC/C,IAAIoI,EAAc7H,EAAIf,QAAQC,GAC9B,IAAK2I,EACH,MAAM,IAAI/I,EAAkB,4CAG9B,IAAK,IAAI5G,KADT2J,EAAO,CAAC,EACYgG,EAClBjG,EAAUC,EAAM3J,EAAS2P,EAAY3P,GAEzC,MAAO,GAAqB,iBAAViH,EAEdA,EADEA,EAAM7U,OAAS,EACT6U,EAAMvB,cAENuB,EAAMwH,cAEhB3G,EAAIV,YAAYrH,EAAasO,MAAOpH,EAAOlH,EAAa4J,MACxDA,EAAO5J,EAAasO,MAAMpH,QAM1B,IAAK,IAAIjF,IAJL,kBAAmBiF,IACrBA,EAAQA,EAAM2I,eAEhBjG,EAAO,CAAC,EACS1C,EACf,IAAK,IAAIjV,KAAWiV,EAAMjF,GACxB2H,EAAK3H,EAAO,IAAMhQ,GAAWiV,EAAMjF,GAAMhQ,GAK/C,OAAOsM,EAAS/G,QAAO,SAAUsY,EAAK9c,GACpC,IAAIsb,EAAQ1E,EAAK5W,GAIjB,YAHcsM,IAAVgP,IACFA,EAAQ1E,EAAK5W,EAAEoE,QAAQ,QAAS,QAE3B0Y,GAAOxB,GAAS,EACzB,GAAG,EACL,EA6DA,IAAIjC,EAAU,CACZ0D,oBAAqB,CACnBC,QAAS,CAAC,YACVC,OAAQ,sCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,OAAOyN,OAAOC,KAAKG,GAAQlN,QAAO,SAAUgS,EAAUvH,GACpD,IAAI2H,EAAOgB,EAAO3I,EAAMwF,GACxB,IAAKmC,EAAM,OAAOJ,EAClB,IAAIrF,EAAOgF,EAAiBS,EAAKR,SAAUvS,EAAKwF,UAGhD,OADA8H,EAAO2H,EADP3H,EAAOA,EAAKzK,IAAIuP,EAAWW,EAAK3H,OACP2H,EAAK3H,KAAMpL,EAAKwF,SAAUoL,GAC5C+B,EAAShV,OAAO2P,EACzB,GAAG,GACL,GAEF+L,cAAe,CACbF,QAAS,CAAC,YACVC,OAAQ,8BACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,OAAOyN,OAAOC,KAAKG,GAAQlN,QAAO,SAAUgS,EAAUvH,GACpD,IAAI2H,EAAOgB,EAAO3I,EAAMwF,GACxB,IAAKmC,EAAM,OAAOJ,EAClB,IAAIrF,EAAOyF,EAAKR,SAAS/L,OAAOxG,EAAKwF,UAGrC,OADA8H,EAAO2H,EADP3H,EAAOA,EAAKzK,IAAIuP,EAAWW,EAAK3H,OACP2H,EAAK3H,KAAMpL,EAAKwF,SAAUoL,GAC5C+B,EAAShV,OAAO2P,EACzB,GAAG,GACL,GAEFgM,6BAA8B,CAC5BH,QAAS,CAAC,YACVC,OAAQ,iDACRxD,OAAQ,SAAUhF,EAAS5Q,GAEzB,OADoBsS,EAAiB7E,OAAOC,KAAKgE,GAAM1R,EAAKwF,UACvC3C,KAAI,SAAU1G,GACjC,MAAO,UAAYuV,EAAIvV,EACzB,GACF,GAEFod,yBAA0B,CACxBJ,QAAS,CAAC,YACVC,OAAQ,6CACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,OAAOsS,EAAiBnJ,EAAa6N,aAAchX,EAAKwF,UAAU3C,KAChE,SAAUzH,GACR,MAAO,QAAUA,CACnB,GAEJ,GAEFoe,4BAA6B,CAC3BL,QAAS,CAAC,WAAY,WACtBC,OAAQ,8CACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAI+S,EAAOiC,EAAUhV,EAAKoJ,QAASwH,GAE/BtD,EADgBgF,EAAiBS,EAAKR,SAAUvS,EAAKwF,UAChC3C,IAAIuP,EAAWW,EAAK3H,OAE7C,OADO6J,EAAY3H,EAAMyF,EAAK3H,KAAMpL,EAAKwF,SAAUoL,EAErD,GAEF6I,uBAAwB,CACtBN,QAAS,CAAC,YACVC,OAAQ,yCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,OAAOyN,OAAOC,KAAKgE,GAChBlL,OAAOxG,EAAKwF,UACZ3C,KAAI,SAAU1G,GACb,MAAO,UAAYuV,EAAIvV,EACzB,GACJ,GAEFud,mBAAoB,CAClBP,QAAS,CAAC,YACVC,OAAQ,qCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,OAAOmJ,EAAa6N,aACjBxQ,OAAOxG,EAAKwF,UACZ3C,KAAI,SAAUzH,GACb,MAAO,QAAUA,CACnB,GACJ,GAEFue,sBAAuB,CACrBR,QAAS,CAAC,WAAY,WACtBC,OAAQ,sCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAI+S,EAAOiC,EAAUhV,EAAKoJ,QAASwH,GAC/BtD,EAAOyF,EAAKR,SAAS/L,OAAOxG,EAAKwF,UAAU3C,IAAIuP,EAAWW,EAAK3H,OAEnE,OADO6J,EAAY3H,EAAMyF,EAAK3H,KAAMpL,EAAKwF,SAAUoL,EAErD,GAEFgJ,oBAAqB,CACnBT,QAAS,GACTC,OAAQ,2BACRxD,OAAQ,SAAUhF,GAChB,OAAOnD,OAAOC,KAAKG,GAAQlN,QAAO,SAAUgS,EAAUvH,GACpD,IAAI2H,EAAOgB,EAAO3I,EAAMwF,GACxB,IAAKmC,EAAM,OAAOJ,EAClB,IAAIrF,EAAOyF,EAAKvN,SAASxH,QAAO,SAAUyL,GACxC,OAAqC,IAA9BsJ,EAAKR,SAASP,QAAQvI,EAC/B,IAEA,OADA6D,EAAOA,EAAKzK,IAAIuP,EAAWW,EAAK3H,OACzBuH,EAAShV,OAAO2P,EACzB,GAAG,GACL,GAEFuM,6BAA8B,CAC5BV,QAAS,GACTC,OAAQ,uCACRxD,OAAQ,WACN,MAAO,EACT,GAEFkE,4BAA6B,CAC3BX,QAAS,CAAC,WACVC,OAAQ,oCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAI+S,EAAOiC,EAAUhV,EAAKoJ,QAASwH,GACnC,OAAOmC,EAAKvN,SACTxH,QAAO,SAAUyL,GAChB,OAAqC,IAA9BsJ,EAAKR,SAASP,QAAQvI,EAC/B,IACC5G,IAAIuP,EAAWW,EAAK3H,MACzB,GAEF2O,WAAY,CACVZ,QAAS,CAAC,SACVC,OAAQ,gCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,OAAO6T,EAAawD,KAAK2C,MA5sBpB,cA4sBmCha,EAAKia,MAAOrJ,EACtD,GAEFsJ,QAAS,CACPf,QAAS,CAAC,QACVC,OAAQ,iBACRxD,OAAQqB,GAEVkD,UAAW,CACThB,QAAS,CAAC,OAAQ,SAClBC,OAAQ,uBACRxD,OAAQqB,GAEVmD,YAAa,CACXjB,QAAS,CAAC,OAAQ,QAAS,OAC3BC,OAAQ,6BACRxD,OAAQqB,GAEVoD,WAAY,CACVlB,QAAS,CAAC,OAAQ,cAClBC,OAAQ,sCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAIqa,EAAa7M,WAAWxN,EAAKqa,YAC7B5C,EAAQtO,EAAasO,MAAMC,OAC/B,OAAOjK,OAAOC,KAAK+J,GAAO9W,QAAO,SAAUiH,EAAQxM,GAgBjD,MAfkB,MAAd4E,EAAKiT,KACHwE,EAAMrc,GAAWif,GACnBzS,EAAOpF,KAAKpH,GAES,MAAd4E,EAAKiT,KACVwE,EAAMrc,GAAWif,GACnBzS,EAAOpF,KAAKpH,GAES,OAAd4E,EAAKiT,KACVwE,EAAMrc,IAAYif,GACpBzS,EAAOpF,KAAKpH,GAELqc,EAAMrc,IAAYif,GAC3BzS,EAAOpF,KAAKpH,GAEPwM,CACT,GAAG,GACL,GAEF0S,uBAAwB,CACtBnB,QAAS,CAAC,OAAQ,cAClBC,OAAQ,wDACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAIqa,EAAa7M,WAAWxN,EAAKqa,YACjC,IAAKzJ,EAAQ0F,YACX,MAAM,IAAItG,EAAkB,4CAE9B,IAAIyH,EAAQ7G,EAAQ0F,YACpB,OAAO7I,OAAOC,KAAK+J,GAAO9W,QAAO,SAAUiH,EAAQxM,GACjD,IAAImf,EAAa9C,EAAMrc,GACvB,OAAkB,MAAdmf,IAIc,MAAdva,EAAKiT,KACHsH,EAAaF,GACfzS,EAAOpF,KAAKpH,GAES,MAAd4E,EAAKiT,KACVsH,EAAaF,GACfzS,EAAOpF,KAAKpH,GAES,OAAd4E,EAAKiT,KACVsH,GAAcF,GAChBzS,EAAOpF,KAAKpH,GAELmf,GAAcF,GACvBzS,EAAOpF,KAAKpH,IAhBLwM,CAmBX,GAAG,GACL,GAEF4S,2BAA4B,CAC1BrB,QAAS,CAAC,OAAQ,aAAc,UAChCC,OAAQ,2DACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAIqa,EAAa7M,WAAWxN,EAAKqa,YAC7BhK,EAAQa,EAAIuJ,SAAS7J,EAAS5Q,EAAKuQ,OAAQpH,EAAa4J,MAC5D,GAAI1C,EAEF,IAAK,IAAIjH,KADTwH,EAAQ0F,YAAc,CAAC,EACHjG,EAClByC,EAAUlC,EAAQ0F,YAAalN,EAASiH,EAAMjH,IAGlD,IAAKwH,EAAQ0F,YACX,MAAM,IAAItG,EAAkB,4CAE9B,IAAIyH,EAAQ7G,EAAQ0F,YACpB,OAAO7I,OAAOC,KAAK+J,GAAO9W,QAAO,SAAUiH,EAAQxM,GACjD,IAAImf,EAAa9C,EAAMrc,GACvB,OAAkB,MAAdmf,IAIc,MAAdva,EAAKiT,KACHsH,EAAaF,GACfzS,EAAOpF,KAAKpH,GAES,MAAd4E,EAAKiT,KACVsH,EAAaF,GACfzS,EAAOpF,KAAKpH,GAES,OAAd4E,EAAKiT,KACVsH,GAAcF,GAChBzS,EAAOpF,KAAKpH,GAELmf,GAAcF,GACvBzS,EAAOpF,KAAKpH,IAhBLwM,CAmBX,GAAG,GACL,GAEF8S,oBAAqB,CACnBvB,QAAS,CAAC,OAAQ,aAAc,SAChCC,OAAQ,2DACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAIqa,EAAa7M,WAAWxN,EAAKqa,YAC7B1C,EAAQ3X,EAAK2X,MAEfA,EADmB,IAAjBA,EAAMnc,OACAmc,EAAME,cAENF,EAAM7I,cAEhBoC,EAAIV,YAAYrH,EAAasO,MAAOE,EAAOxO,EAAa4J,MACxD,IAAI0E,EAAQtO,EAAasO,MAAME,GAC/B,OAAOlK,OAAOC,KAAK+J,GAAO9W,QAAO,SAAUiH,EAAQxM,GACjD,IAAImf,EAAa9C,EAAMrc,GACvB,OAAkB,MAAdmf,IAIc,MAAdva,EAAKiT,KACHsH,EAAaF,GACfzS,EAAOpF,KAAKpH,GAES,MAAd4E,EAAKiT,KACVsH,EAAaF,GACfzS,EAAOpF,KAAKpH,GAES,OAAd4E,EAAKiT,KACVsH,GAAcF,GAChBzS,EAAOpF,KAAKpH,GAELmf,GAAcF,GACvBzS,EAAOpF,KAAKpH,IAhBLwM,CAmBX,GAAG,GACL,GAEF+S,MAAO,CACLxB,QAAS,CAAC,YACVC,OAAQ,mCACRxD,OAAQ2B,GAEVqD,SAAU,CACRzB,QAAS,CAAC,WAAY,SACtBC,OAAQ,mEACRxD,OAAQ2B,GAEVsD,SAAU,CACR1B,QAAS,CAAC,cAAe,WACzBC,OAAQ,iDACRxD,OAAQ,SAAUhF,EAAS5Q,GACzBkR,EAAIT,YAAYtH,EAAagN,MAAOnW,EAAK8a,SACzC,IAAIxF,EAAmC,UAArBtV,EAAK+a,YACnBC,EAAW7R,EAAagN,MAAMnW,EAAK8a,SACnClT,EAAS,GACb,IAAK,IAAIwD,KAAQ4P,EAAU,CACzB,IAAIjI,EAAOgB,EAAO3I,EAAMwF,GAEpBqK,EACFrK,EAAQwD,iBACRhJ,KAAQjC,EAAakL,cACrBgB,EAAY2F,EAAS5P,GAAM2H,EAAKR,SAAS/L,OAAO,GAAG,IAAK8O,GAC1DvC,EAAKvN,SAASuC,SAAQ,SAAU3M,GAC9B,IAAI6O,EAAQ+Q,EAAS5P,GAAMhQ,QACbqN,IAAVwB,GAAuBgR,IACzBhR,EAAQ+Q,EAAS7R,EAAakL,aAAajJ,IAAOhQ,IAEhDia,EAAYpL,EAAOqL,IACrB1N,EAAOpF,KAAK4I,EAAO,IAAMhQ,EAE7B,GACF,CACA,OAAOwM,CACT,GAEFsT,eAAgB,CACd/B,QAAS,CAAC,OAAQ,MAClBC,OAAQ,wCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAImb,EAAYjJ,EAAkBlS,EAAK1C,MACnC8d,EAAUlJ,EAAkBlS,EAAKvB,IACjCnB,EAAOkQ,WAAWxN,EAAK1C,MACvBmB,EAAK+O,WAAWxN,EAAKvB,IACzB,IAAKiT,EAAIyJ,GACP,MAAM,IAAInL,EAAkB,mBAAqB1S,EAAO,gBAE1D,IAAKoU,EAAI0J,GACP,MAAM,IAAIpL,EAAkB,mBAAqBvR,EAAK,gBAExD,OAAOgP,OAAOC,KAAKgE,GAChB1T,QAAO,SAAU7B,GAChB,IAAIkf,EAAS7N,WAAWrR,GACxB,OAAOkf,GAAU/d,GAAQ+d,GAAU5c,CACrC,IACCoE,KAAI,SAAU1G,GACb,MAAO,UAAYuV,EAAIvV,EACzB,GACJ,GAEFmf,WAAY,CACVnC,QAAS,CAAC,OAAQ,MAClBC,OAAQ,oCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,OAAOmJ,EAAa6N,aACjBhZ,OAAOsV,EAAkB,KAAMtT,EAAK1C,OACpCU,OAAOsV,EAAkB,KAAMtT,EAAKvB,KACpCoE,KAAI,SAAU4G,GACb,MAAO,QAAUA,CACnB,GACJ,GAEF8R,cAAe,CACbpC,QAAS,CAAC,UAAW,OAAQ,MAC7BC,OAAQ,qCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAI+S,EAAOiC,EAAUhV,EAAKoJ,QAASwH,GAC/BtT,EAAOkQ,WAAWiG,EAAiBV,EAAM/S,EAAK1C,OAAS0C,EAAK1C,MAC5DmB,EAAK+O,WAAWiG,EAAiBV,EAAM/S,EAAKvB,KAAOuB,EAAKvB,IAK5D,OAAOsU,EAAKR,SAASvU,QAJrB,SAAgByL,GACd,IAAI4R,EAAS7N,WAAW/D,GACxB,OAAO4R,GAAU/d,GAAQ+d,GAAU5c,CACrC,IACoCoE,IAAIuP,EAAWW,EAAK3H,MAC1D,GAEFoQ,aAAc,CACZrC,QAAS,CAAC,OAAQ,WAClBC,OAAQ,qCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAImS,EAAeD,EAAkBlS,EAAK5E,SAC1C,OAAOqS,OAAOC,KAAKgE,GAChB1T,OAAOgV,EAAehT,EAAKiT,KAAMd,IACjCtP,KAAI,SAAU1G,GACb,MAAO,UAAYuV,EAAIvV,EACzB,GACJ,GAEFsf,SAAU,CACRtC,QAAS,CAAC,OAAQ,WAClBC,OAAQ,iCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,OAAOmJ,EAAa6N,aACjBhZ,QAv3BqBiV,EAu3BOjT,EAAKiT,KAv3BN7X,EAu3BY4E,EAAK5E,SAt3BnDA,EAAUA,EAAQW,MAAM,KAAK8G,IAAIqQ,IACzB,GAAK9X,EAAQ,IAAM,EAC3BA,EAAQ,GAAKA,EAAQ,IAAM,EACd,MAAT6X,EACK,SAAUxJ,GAEf,OAAO4J,EADP5J,EAAIA,EAAE1N,MAAM,KAAK8G,IAAIqQ,GACG9X,GAAW,CACrC,EACkB,OAAT6X,EACF,SAAUxJ,GAEf,OAAO4J,EADP5J,EAAIA,EAAE1N,MAAM,KAAK8G,IAAIqQ,GACG9X,IAAY,CACtC,EACkB,MAAT6X,EACF,SAAUxJ,GAEf,OADAA,EAAIA,EAAE1N,MAAM,KAAK8G,IAAIqQ,GACdG,EAAcjY,EAASqO,GAAK,CACrC,EAEO,SAAUA,GAEf,OADAA,EAAIA,EAAE1N,MAAM,KAAK8G,IAAIqQ,GACdG,EAAcjY,EAASqO,IAAM,CACtC,IAi2BK5G,KAAI,SAAU4G,GACb,MAAO,QAAUA,CACnB,IA13BR,IAA8BwJ,EAAM7X,CA23BhC,GAEFsgB,YAAa,CACXvC,QAAS,CAAC,UAAW,OAAQ,WAC7BC,OAAQ,iCACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAI5E,EAAU4E,EAAK5E,QACf2X,EAAOiC,EAAUhV,EAAKoJ,QAASwH,GAC/B+K,EAAQxS,EAAawK,eAAeZ,EAAK3H,MAAMhQ,GAEnD,OADIugB,IAAOvgB,EAAUugB,GACd5I,EAAKR,SACTvU,OAAOgV,EAAehT,EAAKiT,KAAM7X,IACjCyH,KAAI,SAAU4G,GACb,OAAOsJ,EAAK3H,KAAO,IAAM3B,CAC3B,GACJ,GAEFmS,YAAa,CACXzC,QAAS,GACTC,OAAQ,2BACRxD,OAAQ,WACN,MAAO,CAAC,cACV,GAEFiG,eAAgB,CACd1C,QAAS,GACTC,OAAQ,6BACRxD,OAAQ,WACN,MAAO,CAAC,cACV,GAEFkG,iBAAkB,CAChB3C,QAAS,CAAC,WACVC,OAAQ,yBACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAImS,EAAeD,EAAkBlS,EAAK5E,SACtCoZ,EAAS9C,EAAIS,GACjB,IAAKqC,EACH,MAAM,IAAIxE,EACR,mBAAqBhQ,EAAK5E,QAAU,gBAGxC,MAAO,CAAC,UAAYoZ,EACtB,GAEFuH,mBAAoB,CAClB5C,QAAS,CAAC,WACVC,OAAQ,kBACRxD,OAAQkB,GAEVkF,mBAAoB,CAClB7C,QAAS,CAAC,WACVC,OAAQ,uBACRxD,OAAQkB,GAEVmF,mBAAoB,CAClB9C,QAAS,CAAC,WACVC,OAAQ,4BACRxD,OAAQkB,GAEVoF,aAAc,CACZ/C,QAAS,GACTC,OAAQ,oBACRxD,OAAQ,SAAUhF,GAChB,MAAO,CAACM,EAAIR,YAAYC,EAASC,GACnC,GAEFuL,gBAAiB,CACfhD,QAAS,GACTC,OAAQ,kCACRxD,OAAQ,SAAUhF,GAChB,IAAIoJ,EAAM3C,KAAK2C,MAYf,OAAOrJ,EAXOlD,OAAOC,KAAK8D,GACvBxT,QAAO,SAAUuR,GAChB,OACEyK,EAAM3C,KAAK1F,MAAMH,EAAMjC,GAAK6M,MAC5BpC,EAAM3C,KAAK1F,MAAMH,EAAMjC,GAAKnJ,SAvhClChL,EAwhCoBmU,EAxhCL/I,MAAM,GAClB2C,EAAa6N,aAAaqF,MAAK,SAAUlgB,GAC9C,OAAO0V,EAAgB1V,EAAGf,EAC5B,KAJF,IACMA,CA0hCE,IACCyH,KAAI,SAAU0M,GACb,MAAO,QAAUA,EAAI/I,MAAM,EAC7B,IACsBoK,EAC1B,GAEF0L,cAAe,CACbnD,QAAS,GACTC,OAAQ,qBACRxD,OAAQ,WACN,MAAO,CAAC,WACV,GAEF2G,cAAe,CACbpD,QAAS,GACTC,OAAQ,qBACRxD,OAAQ,WACN,MAAO,CAAC,WACV,GAEF4G,gBAAiB,CACfrD,QAAS,CAAC,UAAW,WACrBC,OAAQ,yBACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,IAAI5E,EAAU4E,EAAK5E,QACf,QAAQ+E,KAAK/E,KAAUA,EAAU,MACrC,IAAI2X,EAAOiC,EAAUhV,EAAKoJ,QAASwH,GAC/B+K,EAAQlI,EAAiBV,EAAM3X,GACnC,GAAIugB,EACFvgB,EAAUugB,MACL,CAOL,KADAA,EAAQlI,EAAiBV,EAJvB4I,GAD4B,IAA1BvgB,EAAQ4W,QAAQ,KACV5W,EAAU,KAEVA,EAAQmF,QAAQ,OAAQ,MAK3B,IAAIqQ,EAAQwF,sBACjB,MAAO,GAEP,MAAM,IAAIpG,EACR,mBAAqB5U,EAAU,OAAS4E,EAAKoJ,QAEjD,CAPEhO,EAAUugB,CAQd,CACA,MAAO,CAAC5I,EAAK3H,KAAO,IAAMhQ,EAC5B,GAEFqhB,oBAAqB,CACnBtD,QAAS,GACTC,OAAQ,yBACRxD,OAAQ,SAAUhF,GAChB,OAAOzH,OAAaV,EAAWmI,EACjC,GAEF8L,QAAS,CACPvD,QAAS,CAAC,UACVC,OAAQ,kBACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,OAAO2Q,EAAQO,EAAIhB,YAAYU,EAAS5Q,EAAKuQ,QAASK,EACxD,GAEFqF,SAAU,CACRkD,QAAS,GACTC,OAAQ,cACRxD,OAAQ,SAAUhF,GAChB,OAAOD,EAAQxH,EAAa8M,SAAUrF,EACxC,GAEF+L,KAAM,CACJxD,QAAS,GACTC,OAAQ,UACRxD,OAAQ,SAAUhF,GAShB,OAAOD,EARI,CACT,aACA,WACA,eACA,WACA,iBACA,aAEmBC,EACvB,GAEFgM,QAAS,CACPzD,QAAS,GACTC,OAAQ,WACRxD,OAAQ,SAAUhF,EAAS5Q,GACzB,MAAI+T,EAAO/T,EAAK2V,MAAO/E,GACf,IAAIZ,EACR,sDAAwDhQ,EAAK2V,QAv3BjDA,EA03BK3V,EAAK2V,MAz3BvB,IAAI3F,EACT,0BACE2F,EADF,mEAFJ,IAAsBA,CA43BlB,KAMH,WACC,IAAK,IAAIvK,KAAQyC,EAAQ,CACvB,IAAIzE,EAAUyE,EAAOzC,GACrBjC,EAAa4J,KAAK3H,GAAQ,CACxBA,KAAMA,EACN5F,SAAUyM,EAAUpE,EAAOzC,GAAM5F,UACjC+M,SAAUN,EAAUpE,EAAOzC,GAAM5F,SAASgB,MAAM,GAAI,IACpDwN,YAAanG,EAAOzC,GAAMyR,cAE5B/J,EAAU3J,EAAasO,MAAMC,OAAQtM,EAAMhC,EAAQ0T,cAEnD3T,EAAawK,eAAevI,GAAQ,CAAC,EACrC,IAAK,IAAIjP,EAAI,EAAGA,EAAIiN,EAAQ5D,SAAShK,OAAQW,IAAK,CAChD,IAAI4gB,EAAO3T,EAAQ5D,SAASrJ,GAC5B,GAAK4gB,IAEsB,IAAvBA,EAAK/K,QAAQ,KAEf,IADA,IAAIgL,EAAWD,EAAKhhB,MAAM,KACjB8H,EAAI,EAAGA,EAAImZ,EAASxhB,OAAQqI,IACnCsF,EAAawK,eAAevI,GAAM4R,EAASnZ,IAAMkZ,CAGvD,CACF,CAEA5T,EAAa6N,aAAezF,EAAW1O,KAAI,SAAUoa,GACnD,OAAOA,EAAQ7hB,OACjB,GACD,CA5BA,GA8BDP,EAAOC,QAAUqO,YCrrCjB,IAAI+T,EAAa,kBACbC,EAAY,0BAEhB,SAASC,EAAQxK,GACf,OAAKhX,MAAMC,QAAQ+W,GACZA,EAAMjS,QAAO,SAAUpE,EAAGC,GAC/B,OAAOD,EAAEoB,OAAOyf,EAAQ5gB,GAC1B,GAAG,IAH+B,CAACoW,EAIrC,CAYA,SAASyK,EAAWpE,EAAKtD,GACvB,IAAI3V,EAAO,CAAE2V,MAAOA,GAMpB,IAAK,IAAIvK,KALqB,IAA1BuK,EAAM3D,QAAQ,UAChBhS,EAAK0V,KAAM,EACXC,EAAQA,EAAMnP,MAAM,IAGLyS,EAAK,CACpB,IAAI/a,EAAO+a,EAAI7N,GACXwM,EAAQjC,EAAMiC,MAAM1Z,EAAKkb,QAC7B,GAAIxB,EAAO,CACT5X,EAAK9B,KAAOkN,EACZ,IAAK,IAAIjP,EAAI,EAAGA,EAAI+B,EAAKib,QAAQ3d,OAAQW,IACvC6D,EAAK9B,EAAKib,QAAQhd,IAAMyb,EAAMzb,EAAI,GAEpC,OAAO6D,CACT,CACF,CAGA,OADAA,EAAK9B,KAAO,UACL8B,CACT,CAEA,SAASsd,EAAWrE,EAAKsE,EAAQC,GAC/B,IAAIxd,EACJ,OAnCF,SAAcud,EAAQE,GACpB,IAAK,IAAIxP,EAAI,EAAGtI,EAAM4X,EAAO/hB,OAAQyS,GAAKtI,EAAKsI,IAE7C,GAAIwP,EADSF,EAAOG,QAAQzP,EAAGA,GACTA,EAAGtI,GACvB,OAAO4X,EAAO/W,MAAM,GAAIyH,GAG5B,MAAO,EACT,CA2BS0P,CAAKJ,GAAQ,SAAUlC,EAAQpN,EAAGtI,GACvC,OAAIuX,EAAW/c,KAAKkb,KAClBrb,EAAOqd,EAAWpE,EAAKoC,EAAOzD,MAAMsF,GAAY,KAC3CpH,QAAU,MACf0H,EAAGtZ,QAAQlE,IACJ,GACEmd,EAAUhd,KAAKkb,KACxBrb,EAAOqd,EAAWpE,EAAKoC,EAAOzD,MAAMuF,GAAW,KAC1CrH,QAAU,KACf0H,EAAGtZ,QAAQlE,IACJ,GACEiO,IAAMtI,KACf3F,EAAOqd,EAAWpE,EAAKoC,EAAOuC,SACzB9H,QAAU,KACf0H,EAAGtZ,QAAQlE,IACJ,EAGX,GACF,CAEAnF,EAAOC,QAAU,SAAeme,EAAK1D,GAEnC,OADK3Z,MAAMC,QAAQ0Z,KAAUA,EAAU,CAACA,IACjC6H,EACL7H,EAAQ1S,KAAI,SAAUgb,GACpB,IAAIL,EAAK,GACT,GACEK,EAAQP,EAAWrE,EAAK4E,EAAOL,SACxBK,GACT,OAAOL,CACT,IAEJ,aC7EA3iB,EAAOC,QAAQ,CAACgjB,EAAE,CAACA,EAAE,CAACC,EAAE,EAAEC,EAAE,EAAEC,EAAE,SAAUC,EAAE,SAAUJ,EAAE,EAAEK,EAAE,QAASC,GAAG,GAAGD,EAAE,KAAKE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAIJ,EAAE,KAAKC,EAAE,CAACE,GAAG,UAAUL,EAAE,UAAUC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWJ,EAAE,WAAWK,EAAE,YAAaA,EAAE,CAACL,EAAE,CAAC,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAQO,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAASC,EAAE,EAAEC,EAAE,QAASC,EAAE,QAASC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,OAAQC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE/iB,EAAE,EAAEC,EAAE,QAAS+iB,EAAE,EAAE3b,EAAE,EAAE4b,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE5P,EAAE,EAAE3T,EAAE,QAAS0H,EAAE,EAAE8b,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE5R,EAAE,EAAE6R,EAAE,EAAEvY,EAAE,QAASkC,EAAE,QAASsW,EAAE,QAAS5M,EAAE,QAAS6M,EAAE,QAASC,EAAE,QAASC,EAAE,SAAU/B,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAIJ,EAAE,OAAOC,EAAE,CAAC,EAAI,WAAW,EAAI,WAAW,EAAI,UAAW,EAAI,WAAW,EAAI,UAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAWG,EAAE,UAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,SAAWC,EAAE,UAAWC,EAAE,WAAW/iB,EAAE,WAAWC,EAAE,UAAW+iB,EAAE,WAAW3b,EAAE,WAAW4b,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW5P,EAAE,WAAW3T,EAAE,WAAW0H,EAAE,WAAW8b,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW5R,EAAE,WAAW6R,EAAE,WAAWvY,EAAE,WAAWkC,EAAE,WAAWsW,EAAE,WAAW5M,EAAE,WAAW6M,EAAE,WAAWC,EAAE,WAAWC,EAAE,YAAYlC,EAAE,CAACK,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,OAAON,EAAE,CAACP,EAAE,CAAC,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,EAAEqC,GAAG,EAAE,KAAK,EAAEC,EAAE,QAASrC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEJ,EAAE,EAAEK,EAAE,QAASE,EAAE,OAAQC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE0B,GAAG,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE1S,EAAE,EAAE2S,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,OAAQC,GAAG,EAAEC,GAAG,EAAE,KAAK,QAASC,GAAG,EAAE,KAAK,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,EAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE,KAAK,QAAShF,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE+E,GAAG,EAAE9E,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAASC,EAAE,EAAEC,EAAE,EAAE/iB,EAAE,QAASC,EAAE,EAAE+iB,EAAE,EAAE3b,EAAE,QAAS4b,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE5P,EAAE,EAAE3T,EAAE,EAAE0H,EAAE,EAAE8b,EAAE,QAASC,EAAE,QAASC,EAAE,QAAS5R,EAAE,QAAS6R,EAAE,QAASvY,EAAE,EAAEkC,EAAE,QAASsW,EAAE,QAAS5M,EAAE,QAAS6M,EAAE,QAASC,EAAE,QAASC,EAAE,OAAO,KAAK,QAAS4D,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,GAAGhG,EAAE,MAAME,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,MAAMJ,EAAE,UAAUC,EAAE,CAAC,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,UAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAWiC,GAAG,UAAW,KAAK,WAAW+D,GAAG,SAAWC,GAAG,UAAW/D,EAAE,UAAWrC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWJ,EAAE,WAAWK,EAAE,UAAWE,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAW0B,GAAG,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAW1S,EAAE,WAAW2S,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAW,KAAK,WAAWC,GAAG,UAAW,KAAK,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,EAAE,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAW,KAAK,WAAWhF,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW+E,GAAG,UAAW9E,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW/iB,EAAE,WAAWC,EAAE,WAAW+iB,EAAE,UAAW3b,EAAE,WAAW4b,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW5P,EAAE,WAAW3T,EAAE,WAAW0H,EAAE,UAAW8b,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW5R,EAAE,WAAW6R,EAAE,UAAWvY,EAAE,WAAWkC,EAAE,WAAWsW,EAAE,WAAW5M,EAAE,WAAW6M,EAAE,WAAWC,EAAE,UAAWC,EAAE,UAAW,KAAK,UAAW4D,GAAG,WAAWC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OAAOjG,EAAE,CAACF,EAAE,CAAC,EAAI,QAAS,EAAI,OAAQ,EAAI,QAAS,EAAI,OAAQ,EAAI,QAAS,EAAI,QAAS,EAAI,QAAS,EAAI,OAAO,EAAI,QAAQ,EAAI,EAAEsC,EAAE,EAAErC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEJ,EAAE,EAAEK,EAAE,EAAEE,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE0B,GAAG,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE1S,EAAE,EAAE2S,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,EAAE,KAAK,EAAEC,GAAG,QAAS,KAAK,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,EAAEC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,EAAE,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAAS,KAAK,QAAShF,EAAE,OAAQC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,QAASC,EAAE,OAAQC,EAAE,QAASC,EAAE,OAAQC,EAAE,QAASC,EAAE,OAAQ/iB,EAAE,OAAQC,EAAE,QAAS+iB,EAAE,QAAS3b,EAAE,QAAS4b,EAAE,QAASC,EAAE,QAASC,EAAE,QAAS5P,EAAE,QAAS3T,EAAE,QAAS0H,EAAE,QAAS8b,EAAE,QAASC,EAAE,QAASC,EAAE,QAAS5R,EAAE,QAAS6R,EAAE,OAAQvY,EAAE,QAASkC,EAAE,QAASsW,EAAE,QAAS5M,EAAE,OAAO6M,EAAE,QAASC,EAAE,QAASC,EAAE,QAAQ,KAAK,QAAS4D,GAAG,EAAEC,GAAG,EAAEC,GAAG,GAAG7F,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,MAAMJ,EAAE,SAASC,EAAE,CAAC,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAW,EAAI,UAAW,EAAI,WAAW,EAAI,WAAW,EAAI,WAAWkC,EAAE,WAAWrC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWJ,EAAE,WAAWK,EAAE,WAAWE,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW0B,GAAG,WAAWC,EAAE,SAAWC,EAAE,WAAWC,EAAE,WAAW1S,EAAE,WAAW2S,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAW,KAAK,WAAWC,GAAG,WAAW,KAAK,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,SAAWC,EAAE,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAW,KAAK,WAAWhF,EAAE,UAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAW/iB,EAAE,WAAWC,EAAE,WAAW+iB,EAAE,UAAW3b,EAAE,WAAW4b,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW5P,EAAE,WAAW3T,EAAE,WAAW0H,EAAE,UAAW8b,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW5R,EAAE,WAAW6R,EAAE,WAAWvY,EAAE,WAAWkC,EAAE,UAAWsW,EAAE,SAAW5M,EAAE,WAAW6M,EAAE,UAAWC,EAAE,WAAWC,EAAE,UAAW,KAAK,WAAW4D,GAAG,KAAKC,GAAG,KAAKC,GAAG,OAAO/F,EAAE,CAACH,EAAE,CAAC,EAAI,EAAEsC,EAAE,EAAErC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAASJ,EAAE,EAAEK,EAAE,EAAEE,EAAE,EAAEC,EAAE,QAASC,EAAE,OAAQC,EAAE,QAAS4F,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAE,KAAK,QAAS,KAAK,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAAS,KAAK,QAASC,GAAG,MAAO,KAAK,QAASC,GAAG,QAASC,GAAG,OAAQC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,QAAS,KAAK,OAAQC,GAAG,QAASC,GAAG,QAASC,GAAG,QAASC,GAAG,EAAEC,GAAG,GAAGxH,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAIJ,EAAE,SAASC,EAAE,CAAC,EAAI,WAAWkG,GAAG,WAAWC,GAAG,WAAWjE,EAAE,WAAWkE,GAAG,SAAWvG,EAAE,WAAWwG,GAAG,QAAWvG,EAAE,QAAWwG,GAAG,WAAWvG,EAAE,WAAWC,EAAE,WAAWuG,GAAG,WAAW3G,EAAE,WAAW4G,GAAG,WAAWvG,EAAE,WAAW,KAAK,WAAWE,EAAE,WAAW,KAAK,UAAWC,EAAE,WAAWqG,GAAG,UAAWpG,EAAE,WAAWqG,GAAG,WAAWpG,EAAE,UAAWqG,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAW,KAAK,WAAWC,GAAG,WAAW,KAAK,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAW,KAAK,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,KAAKC,GAAG,OAAOzH,EAAE,CAACJ,EAAE,CAACI,EAAE,EAAEC,EAAE,EAAEE,EAAE,EAAEG,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE0B,GAAG,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE1S,EAAE,EAAE2S,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,QAASC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,EAAE,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE,KAAK,EAAEhF,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAE+E,GAAG,EAAE9E,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,QAASC,EAAE,EAAE/iB,EAAE,EAAEC,EAAE,EAAE+iB,EAAE,EAAE3b,EAAE,EAAE4b,EAAE,QAASC,EAAE,EAAEC,EAAE,EAAE5P,EAAE,EAAE3T,EAAE,EAAE0H,EAAE,EAAE8b,EAAE,EAAEC,EAAE,QAASC,EAAE,EAAE5R,EAAE,QAAS6R,EAAE,QAASvY,EAAE,QAASqe,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAEC,GAAG,EAAE,KAAK,EAAEC,GAAG,EAAEC,GAAG,EAAE,KAAK,GAAG9H,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAIJ,EAAE,QAAQC,EAAE,CAACA,EAAE,WAAW0H,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAW5H,EAAE,WAAW,KAAK,WAAW6H,GAAG,WAAWC,GAAG,WAAW5H,EAAE,WAAW,KAAK,WAAWG,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,UAAW0B,GAAG,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW1S,EAAE,WAAW2S,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,SAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,EAAE,SAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,WAAW,KAAK,WAAWhF,EAAE,WAAWC,EAAE,UAAWC,EAAE,UAAW+E,GAAG,WAAW9E,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAW/iB,EAAE,WAAWC,EAAE,UAAW+iB,EAAE,WAAW3b,EAAE,WAAW4b,EAAE,WAAWC,EAAE,UAAWC,EAAE,WAAW5P,EAAE,WAAW3T,EAAE,WAAW0H,EAAE,WAAW8b,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW5R,EAAE,SAAW6R,EAAE,SAAWvY,EAAE,WAAYyW,EAAE,CAACE,EAAE,IAAIC,EAAE,IAAIE,EAAE,IAAIuH,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAIC,GAAG,IAAI,KAAK,IAAIC,GAAG,IAAIC,GAAG,IAAI,KAAK,MAAMzH,EAAE,CAACV,EAAE,CAACG,EAAE,EAAEoG,GAAG,EAAE6B,GAAG,EAAEC,GAAG,UAAWC,GAAG,UAAWC,GAAG,UAAWC,GAAG,SAAUC,GAAG,UAAWC,GAAG,UAAWC,GAAG,QAASC,GAAG,UAAWC,GAAG,SAAUC,GAAG,SAAUC,GAAG,SAAUC,GAAG,SAAU,KAAK,QAAS,KAAK,UAAW,KAAK,SAAU,KAAK,SAAU,KAAK,SAAU,KAAK,QAAS,KAAK,QAAS,KAAK,SAAUhC,GAAG,SAAUC,GAAG,SAAU,KAAK,QAAS,KAAK,QAAS,KAAK,QAASE,GAAG,QAASC,GAAG,QAASC,GAAG,OAAQC,GAAG,QAASC,GAAG,QAAS,KAAK,QAAQ,KAAK,QAASE,GAAG,QAAQC,GAAG,QAAQC,GAAG,SAAUtH,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,GAAG,IAAIJ,EAAE,gBAAgBC,EAAE,CAACmG,GAAG,WAAW6B,GAAG,UAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWrI,EAAE,UAAWsI,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAW,KAAK,UAAW,KAAK,WAAW,KAAK,WAAW,KAAK,WAAW,KAAK,UAAW,KAAK,WAAW,KAAK,WAAW,KAAK,UAAWhC,GAAG,WAAWC,GAAG,UAAW,KAAK,WAAW,KAAK,WAAW,KAAK,WAAWE,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAW,KAAK,WAAW,KAAK,WAAWE,GAAG,UAAWC,GAAG,WAAWC,GAAG,aAAavF,EAAE,CAACpC,EAAE,CAACiJ,GAAG,KAAM5I,EAAE,IAAIE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,IAAIJ,EAAE,aAAaC,EAAE,CAAC6I,GAAG,YAAa3G,EAAE,CAACtC,EAAE,CAAC,KAAK,EAAEsC,EAAE,WAAaF,EAAE,QAAS8G,GAAG,EAAEC,GAAG,WAAaC,GAAG,EAAEC,GAAG,WAAahB,GAAG,UAAYiB,GAAG,EAAEC,GAAG,WAAalJ,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,KAAK,KAAK,IAAI,GAAG,GAAG,IAAIJ,EAAE,kBAAkBC,EAAE,CAAC8I,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAW,KAAK,WAAW9G,EAAE,UAAW+G,GAAG,UAAWhB,GAAG,UAAWiB,GAAG,WAAWC,GAAG,WAAWnH,EAAE,YAAanC,EAAE,CAACD,EAAE,CAACE,EAAE,EAAEF,EAAE,GAAGK,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAIJ,EAAE,qBAAqBC,EAAE,CAACF,EAAE,UAAWF,EAAE,YAAaQ,EAAE,CAACR,EAAE,CAACA,EAAE,EAAEK,EAAE,EAAEE,EAAE,EAAEmF,EAAE,QAAQ,KAAK,EAAEwC,GAAG,EAAE,KAAK,GAAG7H,EAAE,IAAIE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,KAAK,KAAK,IAAI,KAAK,IAAI,GAAG,GAAG,IAAIJ,EAAE,eAAeC,EAAE,CAACJ,EAAE,WAAWK,EAAE,UAAW,KAAK,WAAW6H,GAAG,WAAW3H,EAAE,WAAW,KAAK,WAAWmF,EAAE,YAAYxF,EAAE,CAACwF,EAAE,WAAWjF,EAAE,CAACT,EAAE,CAACoC,EAAE,SAAS/B,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,IAAIJ,EAAE,qBAAqBC,EAAE,CAACgC,EAAE,YAAazB,EAAE,CAACX,EAAE,CAAC,KAAK,QAASK,EAAE,MAAME,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,IAAIJ,EAAE,sBAAsBC,EAAE,CAAC,KAAK,YAAaQ,EAAE,CAACZ,EAAE,CAACA,EAAE,EAAEK,EAAE,GAAGA,EAAE,KAAKE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,IAAIJ,EAAE,YAAYC,EAAE,CAACJ,EAAE,WAAWK,EAAE,YAAaQ,EAAE,CAACb,EAAE,CAAC,KAAK,SAAUK,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,IAAIJ,EAAE,yBAAyBC,EAAE,CAAC,KAAK,YAAYF,EAAE,CAAC,KAAK,WAAWY,EAAE,CAACd,EAAE,CAACsC,EAAE,QAASE,EAAE,SAAUC,EAAE,SAAUC,EAAE,SAAU1S,EAAE,QAAQwZ,GAAG,SAAUC,GAAG,EAAEC,GAAG,SAAUC,GAAG,EAAEC,GAAG,EAAEhD,GAAG,EAAEiD,GAAG,SAAUC,GAAG,EAAEC,GAAG,SAAUC,GAAG,EAAEC,GAAG,EAAE,KAAK,SAAU,KAAK,SAAUC,GAAG,SAAUC,GAAG,UAAW9J,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,IAAI,IAAI,IAAI,IAAI,GAAG,GAAG,IAAIJ,EAAE,mBAAmBC,EAAE,CAACkC,EAAE,UAAWkH,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWC,GAAG,UAAWC,GAAG,WAAWhD,GAAG,WAAWiD,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,WAAWC,GAAG,UAAW,KAAK,UAAW,KAAK,WAAWC,GAAG,WAAWC,GAAG,WAAW3H,EAAE,WAAWC,EAAE,WAAWC,EAAE,WAAW1S,EAAE,aAAa+Q,EAAE,CAACf,EAAE,CAAC6G,GAAG,SAAUxG,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,IAAIJ,EAAE,aAAaC,EAAE,CAACyG,GAAG,aAAa7F,EAAE,CAAChB,EAAE,CAACoK,GAAG,GAAG/J,EAAE,SAASE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,IAAIJ,EAAE,gBAAgBC,EAAE,CAACgK,GAAG,aAAanJ,EAAE,CAACjB,EAAE,CAACqK,GAAG,QAASC,GAAG,GAAGjK,EAAE,MAAME,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,KAAK,GAAG,GAAG,IAAIJ,EAAE,gBAAgBC,EAAE,CAACiK,GAAG,WAAWC,GAAG,wBCAnioBvtB,EAAOC,QAAQ,CAAC,EAAI,MAAM,EAAI,MAAM,EAAI,MAAM,EAAI,MAAM,EAAI,MAAM,EAAI,MAAM,EAAI,MAAM,EAAI,MAAM,EAAI,MAAM,EAAI,IAAIgjB,EAAE,KAAKK,EAAE,KAAKE,EAAE,KAAKL,EAAE,IAAIC,EAAE,IAAIC,EAAE,IAAIM,EAAE,KAAK0B,EAAE,MAAME,EAAE,IAAIrC,EAAE,IAAIO,EAAE,KAAKC,EAAE,KAAKE,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAK/iB,EAAE,KAAKC,EAAE,KAAK+iB,EAAE,KAAK3b,EAAE,KAAK4b,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAK5P,EAAE,KAAK3T,EAAE,KAAK0H,EAAE,MAAM8b,EAAE,MAAMC,EAAE,MAAMC,EAAE,MAAM5R,EAAE,MAAM6R,EAAE,MAAMvY,EAAE,MAAM+Y,EAAE,KAAKC,EAAE,KAAKC,EAAE,KAAK1S,EAAE,KAAK0V,EAAE,KAAK/Z,EAAE,MAAMsW,EAAE,MAAM5M,EAAE,MAAM6M,EAAE,MAAMC,EAAE,MAAMI,GAAG,KAAKI,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKE,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAK,KAAK,KAAK,KAAK,MAAM,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,OAAO,KAAK,IAAI,KAAK,KAAK,KAAK,KAAKC,GAAG,KAAKC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMK,GAAG,MAAMK,GAAG,OAAOC,GAAG,OAAOG,GAAG,YAAYC,GAAG,OAAOE,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOE,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOO,GAAG,OAAOG,GAAG,UAAU/H,GAAG,MAAM+B,GAAG,IAAI8D,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAME,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMG,GAAG,OAAOC,GAAG,OAAOG,GAAG,OAAOM,GAAG,OAAOI,GAAG,OAAOC,GAAG,KAAKC,GAAG,UAAUC,GAAG,YAAYC,GAAG,OAAOC,GAAG,OAAOE,GAAG,OAAOC,GAAG,UAAUE,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,MAAMC,GAAG,YAAYC,GAAG,OAAOC,GAAG,YAAYC,GAAG,YAAYC,GAAG,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,OAAO,KAAK,OAAO,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAY,KAAK,YAAYC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,MAAMC,GAAG,cAAcC,GAAG,UAAUC,GAAG,UAAUC,GAAG,UAAUC,GAAG,MAAMC,GAAG,MAAMC,GAAG,YAAYC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,OAAOC,GAAG,QAAQC,GAAG,MAAMC,GAAG,sBCA/5DvtB,EAAOC,QAAQ,CAACgjB,EAAE,KAAKK,EAAE,OAAOE,EAAE,UAAUL,EAAE,SAASC,EAAE,SAASC,EAAE,QAAQM,EAAE,UAAU0B,EAAE,UAAUE,EAAE,UAAUrC,EAAE,KAAKO,EAAE,SAASC,EAAE,UAAUE,EAAE,SAASC,EAAE,SAASC,EAAE,SAASC,EAAE,UAAUC,EAAE,SAASC,EAAE,QAAQC,EAAE,uCCElN,MAAMrX,EAAW,kBACXlC,EAAW,wBACX6iB,EAAa,EAAQ,OAE3B,SAASC,EAAsBC,GAC7B,OAAO9a,OAAOC,KAAK6a,GAAc5nB,QAAO,CAAC8W,EAAOrc,KAC9Cqc,EAAMjS,EAASpK,IAAYmtB,EAAantB,GACjCqc,IACN,CAAC,EACN,CAEA5c,EAAOC,QAAQ,EAAS2S,OAAOC,KAAK2a,GAAY1nB,QAAO,CAACkC,EAAK0M,KAC3D,IAAIgZ,EAAeF,EAAW9Y,GA+B9B,OA9BA1M,EAAI6E,EAAS6H,IAAQ9B,OAAOC,KAAK6a,GAAc5nB,QAAO,CAACoS,EAAMhF,KAC7C,MAAVA,EACFgF,EAAK+J,aAAewL,EAAsBC,EAAaxa,IACpC,MAAVA,EACTgF,EAAKvN,SAAW+iB,EAAaxa,GAAOpN,QAAO,CAAC2M,EAAMlS,KAChC,KAAZA,EACFkS,EAAK9K,KAAK,MAEV8K,EAAK9K,KAAKgD,EAASpK,IAEdkS,IACN,IACgB,MAAVS,EACTgF,EAAKyV,kBAAoBF,EAAsBC,EAAaxa,IACzC,MAAVA,EACTgF,EAAK3J,QAAUmf,EAAaxa,GACT,MAAVA,EACTgF,EAAK8J,aAAepP,OAAOC,KAAK6a,EAAaxa,IAAQpN,QACnD,CAAC8nB,EAAMC,KACLD,EAAKjjB,EAASkjB,IAASH,EAAaxa,GAAO2a,GACpCD,IAET,CAAC,GAIH1V,EAAK4V,OAASJ,EAAaxa,GAEtBgF,IACN,CAAC,GACGlQ,IACN,CAAC,mBC9CJhI,EAAOC,QAAQ8tB,gBAAkB,EAAjC,wBCAA/tB,EAAOC,QAAQ4M,SAAW,EAA1B,yFCGImhB,QAA0B,GAA4B,KAE1DA,EAAwBrmB,KAAK,CAAC3H,EAAO0S,GAAI,6iBAA8iB,GAAG,CAAC,QAAU,EAAE,QAAU,CAAC,qDAAqD,MAAQ,GAAG,SAAW,8KAA8K,eAAiB,CAAC,4fAA4f,WAAa,MAEt4C,qBCPA1S,EAAOC,QAAU,CAChB,OAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,OAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,IAAQ,KACR,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,MAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,MAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,IAAO,KACP,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,KAAQ,KACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,KAAQ,MACR,KAAQ,MACR,OAAQ,MACR,OAAQ,oCC7IT,IAAIguB,EAAmB,EAAQ,OAC3BC,EAAa,EAAQ,MAEzBluB,EAAOC,QAAU,CAOfkuB,UAAW,SAAmB5P,GAC5B,IAAI6P,EAAsBC,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,GAE1FC,EAAmBF,EAAoBztB,OAAS,EAAIytB,EAAsBxb,OAAOC,KAAKob,GAEtFlhB,OAAS,EAGTwhB,EAAQ,CAAC,EAsBb,OApBAD,EAAiBphB,SAAQ,SAAUshB,GAEjC,IAAKP,EAAiBQ,eAAeD,GACnC,MAAM,IAAIjY,MAAM,6BAA+BiY,EAA/B,+BAAqF5b,OAAOC,KAAKob,GAAkBhgB,KAAK,OAG1I,IAAIygB,EAAUT,EAAiBO,GAE/BzhB,EAASmhB,EAAWC,UAAU5P,EAAQmQ,GACtCnQ,EAASxR,EAAOmC,SAGgB,mBAArBwf,EAAQC,WACjBJ,EAAMC,GAAiBE,EAAQC,WAEnC,IAGA5hB,EAAO6hB,SAASL,GAETxhB,CACT,2BC/BF,IAAI8hB,EAAe,WAAc,SAASC,EAAiBC,EAAQte,GAAS,IAAK,IAAInP,EAAI,EAAGA,EAAImP,EAAM9P,OAAQW,IAAK,CAAE,IAAI0tB,EAAave,EAAMnP,GAAI0tB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMvc,OAAOwc,eAAeL,EAAQC,EAAWta,IAAKsa,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAY5Y,UAAW6Y,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfG,EAAa,WAef,SAASA,EAAWC,EAAIC,GACtB,IAAItgB,EAAQsgB,EAAKtgB,MACbugB,EAASD,EAAKC,OACdC,EAASF,EAAKE,QApBtB,SAAyBC,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAsBpJC,CAAgBhf,KAAMye,GAEtBze,KAAKif,IAAMP,EACX1e,KAAKkf,QAAUN,EAGf5e,KAAK3B,MAAQA,EACb2B,KAAK6e,OAASA,GAAUH,EAAGG,OAC3B7e,KAAKmf,OAAS9gB,EAAMxI,SAAS,KAG7BmK,KAAK8L,OAAS4S,EAAG5S,OACjB9L,KAAKof,WAAaV,EAAGU,WACrBpf,KAAKqf,UAAYX,EAAGW,UACpBrf,KAAKsf,OAASZ,EAAGY,OACjBtf,KAAKuf,QAAUb,EAAGa,OACpB,CA4DA,OArDAzB,EAAaW,EAAY,CAAC,CACxB9a,IAAK,OACL9R,MAAO,SAAc8f,GACnB,OAAO3R,KAAKif,IAAI1qB,KAAKod,EACvB,GAMC,CACDhO,IAAK,UACL9R,MAAO,SAAiB8f,GACtB,OAAO3R,KAAKif,IAAIO,QAAQ7N,EAC1B,GAMC,CACDhO,IAAK,WACL9R,MAAO,WAIL,OAHKmO,KAAKyf,kBACRzf,KAAKyf,gBAAkB,IAAMzf,KAAK6e,OAAS,IAAM7e,KAAK3B,OAEjD2B,KAAKyf,eACd,GAMC,CACD9b,IAAK,OACL9R,MAAO,SAAc8f,GACnB,IAAI3V,EAASgE,KAAKif,IAAIS,KAAK/N,GAE3B,IAAK3R,KAAKkf,UAAYljB,EACpB,OAAOA,EAKT,IAAK,IAAI2jB,KAFT3jB,EAAO4iB,OAAS,CAAC,EAEC5e,KAAKkf,QAAS,CAC9B,IAAIU,EAAc5f,KAAKkf,QAAQS,GAC/B3jB,EAAO4iB,OAAOe,GAAS3jB,EAAO4jB,EAChC,CAEA,OAAO5jB,CACT,KAGKyiB,CACT,CAjGiB,GAmGjBxvB,EAAOC,QAAU,CACfuvB,WAAYA,2BC9GdxvB,EAAOC,QAAU,CAIf2wB,WAAW,EAGXC,UAAW,SAAmBC,GAG5B,QAFgBA,EAAI1hB,MAAMxI,SAAS,OAOnCkqB,EAAI1hB,MAAQ0hB,EAAI1hB,MAAM1J,QAAQ,IAAK,IAGnCqL,KAAK6f,UAAYE,EAAI1hB,MAAMxI,SAAS,MAE7B,EACT,EACAmqB,KAAM,SAAcna,GAClB,IAAIzR,EAAOyR,EAAKzR,KAGhB,GAAkB,SAAdA,EAAK5B,MAAkC,MAAf4B,EAAKvC,MAAjC,CAIA,IAAIouB,EAAU,UACVC,EAAW,IAEXlgB,KAAK6f,YACPI,EAAU,cACVC,EAAW,MAGbra,EAAKlR,QAAQ,CACXrC,KAAM,iBACNJ,YAAa,CAAC,CACZI,KAAM,aACNZ,KAAM,CACJY,KAAM,OACNT,MAAO,MACPW,KAAM,UACN2tB,OAAQ,MAEVttB,GAAI,CACFP,KAAM,OACNT,MAAOouB,EACPztB,KAAM,UACN2tB,OAAQD,MAxBd,CA4BF,2BCxDFjxB,EAAOC,QAAU,CAKfkxB,YAAa,CAAC,EAKdC,KAAM,WACJrgB,KAAKogB,YAAc,CAAC,CACtB,EAMAxC,SAAU,WACR,OAAO5d,KAAKogB,WACd,EACA9mB,MAAO,SAAeuM,GACpB,IAAIzR,EAAOyR,EAAKzR,KAGXA,EAAKoL,OAKVQ,KAAKogB,YAAYhsB,EAAKoL,MAAQpL,EAAKlB,cAE5BkB,EAAKoL,YACLpL,EAAKksB,QACd,EACAC,cAAe,SAAuB1a,GACpC,IAAIzR,EAAOyR,EAAKzR,KAGE,SAAdA,EAAK5B,OAIT4B,EAAK5B,KAAO,SACZ4B,EAAKosB,UAAYpsB,EAAKlB,cACfkB,EAAKqsB,aACd,2BC3CFxxB,EAAOC,QAAU,CACfoF,OAAQ,SAAgBqqB,GACtB,IAAIvqB,EAAOuqB,EAAKvqB,KAEZA,EAAKiK,MAAMxI,SAAS,OACtBzB,EAAKiK,MAAQjK,EAAKiK,MAAM1J,QAAQ,IAAK,IAEzC,iCCdF1F,EAAOC,QAAU,CAEfiwB,OAAQ,EAAQ,OAGhBuB,qBAAsB,EAAQ,OAG9BC,MAAO,EAAQ,gCCJjB,SAASC,EAAIxsB,GACX,OAAOA,EAAOysB,EAAUzsB,EAAK9B,MAAM8B,GAAQ,EAC7C,CAKA,IAAIysB,EAAY,CACdvsB,OAAQ,SAAgBF,GACtB,MAAO,IAAMwsB,EAAIxsB,EAAK6J,MAAQ,IAAM7J,EAAKiK,KAC3C,EACAyiB,YAAa,SAAqB1sB,GAChC,OAAQA,EAAKlC,aAAe,IAAI+E,IAAI2pB,GAAK1jB,KAAK,GAChD,EACA6jB,YAAa,SAAqB3sB,GAChC,OAAOwsB,EAAIxsB,EAAKb,MAAQ,IAAMqtB,EAAIxsB,EAAKZ,MACzC,EACA8F,MAAO,SAAelF,GACpB,IAAIpB,EAAa4tB,EAAIxsB,EAAKpB,YAE1B,OAAIoB,EAAKnB,UAEHmB,EAAKoL,KACA,OAASpL,EAAKksB,SAAWlsB,EAAKoL,MAAQ,IAAMxM,EAAa,IAG3D,IAAMA,EAAa,IAGrB,MAAQA,EAAa,GAC9B,EACAutB,cAAe,SAAuBnsB,GACpC,OAAQA,EAAK5B,MACX,IAAK,SACH,MAAO,KAAO4B,EAAKosB,UACrB,IAAK,OACH,MAAO,QAAUpsB,EAAKqsB,cAAgBrsB,EAAKosB,WAAa,IAC1D,QACE,MAAM,IAAIzB,UAAU,+BAAiC3qB,EAAK5B,MAEhE,EACAwuB,UAAW,SAAmB5sB,GAC5B,OAAQA,EAAK5B,MACX,IAAK,IACL,IAAK,IACL,IAAK,MACL,IAAK,MACH,OAAO4B,EAAK5B,KAEd,IAAK,YAED,IAAIyuB,EAAYL,EAAIxsB,EAAK6sB,WAEzB,OAAI7sB,EAAK8sB,SACA,MAAQD,EAAY,IAGtB,MAAQA,EAAY,IAG/B,IAAK,aAED,IAAIE,EAAaP,EAAIxsB,EAAK6sB,WAE1B,OAAI7sB,EAAK8sB,SACA,OAASC,EAAa,IAGxB,OAASA,EAAa,IAGjC,QACE,MAAM,IAAIpC,UAAU,2BAA6B3qB,EAAK5B,MAE5D,EACA4uB,eAAgB,SAAwBhtB,GACtC,IAAIlC,EAAckC,EAAKlC,YAAY+E,IAAI2pB,GAAK1jB,KAAK,IAEjD,OAAI9I,EAAK8sB,SACA,KAAOhvB,EAAc,IAGvB,IAAMA,EAAc,GAC7B,EACAmvB,WAAY,SAAoBjtB,GAC9B,OAAOwsB,EAAIxsB,EAAK1C,MAAQ,IAAMkvB,EAAIxsB,EAAKvB,GACzC,EACAyuB,WAAY,SAAoBltB,GAC9B,MAAO,GAAKwsB,EAAIxsB,EAAKpB,YAAc4tB,EAAIxsB,EAAKN,WAC9C,EACAytB,WAAY,SAAoBntB,GAC9B,IAAIN,OAAa,EACbC,EAASK,EAAKL,OAAS,GAAK,IAEhC,OAAQK,EAAK5B,MACX,IAAK,IACL,IAAK,IACL,IAAK,IACHsB,EAAaM,EAAK5B,KAClB,MACF,IAAK,QAGDsB,EADEM,EAAK1C,OAAS0C,EAAKvB,GACR,IAAMuB,EAAK1C,KAAO,IAGvB0C,EAAKvB,GAKI,IAAMuB,EAAK1C,KAAO,IAAM0C,EAAKvB,GAAK,IAJpC,IAAMuB,EAAK1C,KAAO,KAMnC,MACF,QACE,MAAM,IAAIqtB,UAAU,4BAA8B3qB,EAAK5B,MAG3D,MAAO,GAAKsB,EAAaC,CAC3B,EACAisB,KAAM,SAAc5rB,GAClB,IAAIvC,EAAQuC,EAAKvC,MAEjB,OAAQuC,EAAK5B,MACX,IAAK,SAED,OAAI4B,EAAKotB,QACA,KAAO3vB,EAETA,EAGX,IAAK,MACL,IAAK,UACL,IAAK,MACL,IAAK,UACL,IAAK,UACL,IAAK,OACH,OAAOA,EAET,QACE,MAAM,IAAIktB,UAAU,sBAAwB3qB,EAAK5B,MAEvD,EACAivB,gBAAiB,SAAyBrtB,GAUxC,MAAO,MATUA,EAAK8sB,SAAW,IAAM,KASZ,KANtB9sB,EAAKstB,WAActtB,EAAKutB,OAGhB,GAFAvtB,EAAKoL,KAAO,KAKmBpL,EAAKvC,MAAQ,GAC3D,GAGF5C,EAAOC,QAAU,CAMf0yB,SAAUhB,2BClKZ,IAAIiB,EAAgb,SAAUC,EAAKvxB,GAAK,GAAIP,MAAMC,QAAQ6xB,GAAQ,OAAOA,EAAY,GAAIC,OAAOC,YAAYngB,OAAOigB,GAAQ,OAAxf,SAAuBA,EAAKvxB,GAAK,IAAI0xB,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWvhB,OAAK/D,EAAW,IAAM,IAAK,IAAiC8D,EAA7ByhB,EAAKN,EAAIC,OAAOC,cAAmBE,GAAMvhB,EAAKyhB,EAAGC,QAAQC,QAAoBL,EAAKrrB,KAAK+J,EAAG9O,QAAYtB,GAAK0xB,EAAKryB,SAAWW,GAA3D2xB,GAAK,GAAkE,CAAE,MAAOK,GAAOJ,GAAK,EAAMvhB,EAAK2hB,CAAK,CAAE,QAAU,KAAWL,GAAME,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAID,EAAI,MAAMvhB,CAAI,CAAE,CAAE,OAAOqhB,CAAM,CAAuHO,CAAcV,EAAKvxB,GAAa,MAAM,IAAIwuB,UAAU,uDAA2D,EAIjpB,SAAS0D,EAAmBX,GAAO,GAAI9xB,MAAMC,QAAQ6xB,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGmyB,EAAO1yB,MAAM8xB,EAAIlyB,QAASW,EAAIuxB,EAAIlyB,OAAQW,IAAOmyB,EAAKnyB,GAAKuxB,EAAIvxB,GAAM,OAAOmyB,CAAM,CAAS,OAAO1yB,MAAM0B,KAAKowB,EAAQ,CAElM,IAAIa,EAAuB,KAsT3B,SAASC,EAAQC,EAAIC,GACnB,IAAKA,EACH,OAAO,EAGT,GAAID,EAAGjzB,SAAWkzB,EAAGlzB,OACnB,OAAO,EAGT,IAAK,IAAIW,EAAI,EAAGA,EAAIsyB,EAAGjzB,OAAQW,IAAK,CAClC,IAAIwyB,EAAKF,EAAGtyB,GACRyyB,EAAKF,EAAGvyB,GAEZ,GAAIwyB,EAAGjjB,OAASkjB,EAAGljB,KACjB,OAAO,EAGT,GAAI,GAAG/N,OAAO0wB,EAAmBM,IAAK3lB,OAAOF,KAAK,OAAS,GAAGnL,OAAO0wB,EAAmBO,IAAK5lB,OAAOF,KAAK,KACvG,OAAO,CAEX,CAEA,OAAO,CACT,CAMA,SAAS+lB,EAAcF,EAAIC,EAAIE,EAAOC,GACpC,IAAIC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBzmB,EAEtB,IACE,IAAK,IAA8C0mB,EAA1CC,EAAaL,EAASpB,OAAOC,cAAuBoB,GAA8BG,EAASC,EAAWnB,QAAQC,MAAOc,GAA6B,EAGzJ,IAAKK,EAAYV,EAAIC,EAAIE,EAFZK,EAAO1xB,OAGlB,OAAO,CAGb,CAAE,MAAO0wB,GACPc,GAAqB,EACrBC,EAAkBf,CACpB,CAAE,QACA,KACOa,GAA8BI,EAAWE,QAC5CF,EAAWE,QAEf,CAAE,QACA,GAAIL,EACF,MAAMC,CAEV,CACF,CAEA,OAAO,CACT,CAKA,SAASG,EAAYV,EAAIC,EAAIE,EAAO/C,GAClC,IAAKwC,EAAqBI,KAAQJ,EAAqBK,GACrD,OAAO,EAGT,IAAIW,EAAuBT,EAAMH,GAAI5C,GACjCyD,EAAuBV,EAAMF,GAAI7C,GAGrC,OAAKwD,IAAyBC,GAKvBjB,EAAqBI,GAAIlgB,IAAI8gB,IAAyBhB,EAAqBK,GAAIngB,IAAI+gB,EAC5F,CAEA30B,EAAOC,QAAU,CACf20B,SAhYF,SAAkBC,GAChB,IAAIZ,EAAQY,EAAIC,qBACZC,EAAYniB,OAAOC,KAAKohB,GACxBC,EAAWW,EAAIG,cACfC,EAAYJ,EAAIK,2BAEpBxB,EAAuB,CAAC,EAExB,IAAIyB,EAAe,IAAIC,IAEvBL,EAAU7nB,SAAQ,SAAUmoB,GAC1BA,EAAQ5uB,OAAO4uB,GACGJ,EAAUrhB,IAAIyhB,GAG9B3B,EAAqB2B,GAASJ,GAE9BE,EAAaG,IAAID,GACjB3B,EAAqB2B,GAASF,EAElC,IAMA,IAAI/W,EAAM,CAEV,CAAC+W,EAAcF,GAAW9xB,QAAO,SAAU+K,GACzC,OAAOA,EAAI2C,KAAO,CACpB,KAEIxE,OAAU,EACVkpB,OAAW,EAGflpB,EAAU+R,EAAIA,EAAIzd,OAAS,GAG3B40B,EAAWnX,EAAIA,EAAIzd,OAAS,GAwH5B,IApHA,IAAI60B,EAAQ,WACV,IAvDc3C,EAuDV4C,EAAmB,CAAC,EAEpBC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBhoB,EAEtB,IACE,IAAK,IAA6CioB,EAAzCC,EAAazpB,EAAQymB,OAAOC,cAAuB2C,GAA8BG,EAASC,EAAW1C,QAAQC,MAAOqC,GAA6B,EAAM,CAC9J,IAAIK,EAAOF,EAAOjzB,MAGdozB,EAAgB,CAAC,EAEjBC,GApEMpD,EAoEWkD,EApEGh1B,MAAMC,QAAQ6xB,GAAOA,EAAM9xB,MAAM0B,KAAKowB,IAqE1DqD,EAAQD,EAAM,GACdE,EAAOF,EAAMtqB,MAAM,GAEvBqqB,EAAcE,GAAS,IAAId,IAAI,CAACc,IAIhC,IAAIE,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1oB,EAEtB,IACE2oB,EAAU,IAAK,IAA0CC,EAAtCC,EAAaN,EAAKrD,OAAOC,cAAuBqD,GAA8BI,EAASC,EAAWrD,QAAQC,MAAO+C,GAA6B,EAAM,CACrK,IAAIf,EAAQmB,EAAO5zB,MACf8zB,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBhpB,EAEtB,IACE,IAAK,IAAgEipB,EAA5DC,EAAalkB,OAAOC,KAAKmjB,GAAelD,OAAOC,cAAuB2D,GAA8BG,EAASC,EAAW1D,QAAQC,MAAOqD,GAA6B,EAAM,CACjL,IAAIK,EAAeF,EAAOj0B,MAI1B,GAAIoxB,EAAcqB,EAAO0B,EAAc9C,EAAOC,GAAW,CACvD8B,EAAce,GAAczB,IAAID,GAChCW,EAAcX,GAASW,EAAce,GACrC,SAASR,CACX,CACF,CAGF,CAAE,MAAOjD,GACPqD,GAAqB,EACrBC,EAAkBtD,CACpB,CAAE,QACA,KACOoD,GAA8BI,EAAWrC,QAC5CqC,EAAWrC,QAEf,CAAE,QACA,GAAIkC,EACF,MAAMC,CAEV,CACF,CAEAZ,EAAcX,GAAS,IAAID,IAAI,CAACC,GAClC,CACF,CAAE,MAAO/B,GACP+C,GAAqB,EACrBC,EAAkBhD,CACpB,CAAE,QACA,KACO8C,GAA8BK,EAAWhC,QAC5CgC,EAAWhC,QAEf,CAAE,QACA,GAAI4B,EACF,MAAMC,CAEV,CACF,CAKA1jB,OAAOokB,OAAOvB,EAAkBO,EAClC,CAGF,CAAE,MAAO1C,GACPqC,GAAqB,EACrBC,EAAkBtC,CACpB,CAAE,QACA,KACOoC,GAA8BI,EAAWrB,QAC5CqB,EAAWrB,QAEf,CAAE,QACA,GAAIkB,EACF,MAAMC,CAEV,CACF,CAEAlC,EAAuB+B,EAEvB,IAAIwB,EAAU,IAAI7B,IAAIxiB,OAAOC,KAAK4iB,GAAkBztB,KAAI,SAAUqtB,GAChE,OAAOI,EAAiBJ,EAC1B,KAEAjX,EAAIzW,KAAK,GAAG7E,OAAO0wB,EAAmByD,KAGtC5qB,EAAU+R,EAAIA,EAAIzd,OAAS,GAG3B40B,EAAWnX,EAAIA,EAAIzd,OAAS,EAC9B,GAEQgzB,EAAQtnB,EAASkpB,IACvBC,IAOF,IAAI0B,EAAU,IAAInpB,IACdopB,EAAM,EACV9qB,EAAQa,SAAQ,SAAUgB,GACxB,OAAOgpB,EAAQhpB,IAAIA,EAAKipB,IAC1B,IAGA,IAAIC,EAAiB,CAAC,EAElBC,EAA2B,IAAIjC,IAE/BkC,EAAwB,SAA+BppB,EAAKipB,GAC9D,IAAII,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiB7pB,EAErB,IACE,IAAK,IAAwC8pB,EAApCC,EAAYzpB,EAAI4kB,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAAM,CACpJ,IAAIlC,EAAQqC,EAAM90B,MAEdqyB,EAAUrhB,IAAIyhB,IAChBgC,EAAyB/B,IAAI6B,EAEjC,CACF,CAAE,MAAO7D,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CACF,EAEIG,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBlqB,EAEtB,IACE,IAAK,IAAuDmqB,EAAnDC,EAAad,EAAQe,UAAUnF,OAAOC,cAAuB6E,GAA8BG,EAASC,EAAW5E,QAAQC,MAAOuE,GAA6B,EAAM,CACxK,IAAIlI,EAAOqI,EAAOn1B,MAEds1B,EAAQtF,EAAelD,EAAM,GAE7BxhB,EAAMgqB,EAAM,GACZC,EAAOD,EAAM,GAEjBd,EAAee,GAAQ,CAAC,EACxB,IAAIC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1qB,EAEtB,IACE,IAAK,IAA8C2qB,EAA1CC,EAAatE,EAASpB,OAAOC,cAAuBqF,GAA8BG,EAASC,EAAWpF,QAAQC,MAAO+E,GAA6B,EAAM,CAC/J,IAAIlH,EAASqH,EAAO31B,MAEpB00B,EAAsBppB,EAAKiqB,GAG3B,IAAIM,OAAqB,EACrBC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBhrB,EAEtB,IACE,IAAK,IAAyCirB,EAArCC,EAAa5qB,EAAI4kB,OAAOC,cAAuB2F,GAA8BG,EAASC,EAAW1F,QAAQC,MAAOqF,GAA6B,EAAM,CAC1J,IAAIK,EAAgBF,EAAOj2B,MAG3B,GADA61B,EAAqBxE,EAAM8E,GAAe7H,GAExC,KAEJ,CACF,CAAE,MAAOoC,GACPqF,GAAqB,EACrBC,EAAkBtF,CACpB,CAAE,QACA,KACOoF,GAA8BI,EAAWrE,QAC5CqE,EAAWrE,QAEf,CAAE,QACA,GAAIkE,EACF,MAAMC,CAEV,CACF,CAEIH,IACFrB,EAAee,GAAMjH,GAAUgG,EAAQ9pB,IAAIsmB,EAAqB+E,IAEpE,CACF,CAAE,MAAOnF,GACP+E,GAAqB,EACrBC,EAAkBhF,CACpB,CAAE,QACA,KACO8E,GAA8BI,EAAW/D,QAC5C+D,EAAW/D,QAEf,CAAE,QACA,GAAI4D,EACF,MAAMC,CAEV,CACF,CACF,CAGF,CAAE,MAAOhF,GACPuE,GAAqB,EACrBC,EAAkBxE,CACpB,CAAE,QACA,KACOsE,GAA8BI,EAAWvD,QAC5CuD,EAAWvD,QAEf,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CAKA,OAHAjD,EAAImE,mBAAmB5B,GACvBvC,EAAIoE,yBAAyB5B,GAEtBxC,CACT,iCChUA,IAAIhG,EAAe,WAAc,SAASC,EAAiBC,EAAQte,GAAS,IAAK,IAAInP,EAAI,EAAGA,EAAImP,EAAM9P,OAAQW,IAAK,CAAE,IAAI0tB,EAAave,EAAMnP,GAAI0tB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMvc,OAAOwc,eAAeL,EAAQC,EAAWta,IAAKsa,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAY5Y,UAAW6Y,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAEnB,SAASmE,EAAmBX,GAAO,GAAI9xB,MAAMC,QAAQ6xB,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGmyB,EAAO1yB,MAAM8xB,EAAIlyB,QAASW,EAAIuxB,EAAIlyB,OAAQW,IAAOmyB,EAAKnyB,GAAKuxB,EAAIvxB,GAAM,OAAOmyB,CAAM,CAAS,OAAO1yB,MAAM0B,KAAKowB,EAAQ,CAIlM,IAAIqG,EAAe,EAAQ,OAGvBC,EADW,EAAQ,OACQA,gBAO3BC,EAAM,WACR,SAASA,EAAIC,IAbf,SAAyBxJ,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAcpJC,CAAgBhf,KAAMqoB,GAEtBroB,KAAKuoB,KAAOD,CACd,CA4VA,OArVAxK,EAAauK,EAAK,CAAC,CACjB1kB,IAAK,WACL9R,MAAO,WACLmO,KAAK+jB,qBAEL/jB,KAAKwoB,+BAAiCxoB,KAAKyoB,uBAC3CzoB,KAAK0oB,yBAA2B1oB,KAAK2oB,iBAErCR,EAAatE,SAAS7jB,KACxB,GAMC,CACD2D,IAAK,cACL9R,MAAO,WACL,OAAOmO,KAAKuoB,KAAKtE,aACnB,GAMC,CACDtgB,IAAK,2BACL9R,MAAO,WAML,OALKmO,KAAKyoB,wBAERzoB,KAAK+jB,qBAGA/jB,KAAKyoB,sBACd,GAMC,CACD9kB,IAAK,kCACL9R,MAAO,WAML,OALKmO,KAAKwoB,gCAERxoB,KAAK+jB,qBAGA/jB,KAAKwoB,8BACd,GAMC,CACD7kB,IAAK,qBACL9R,MAAO,SAA4BqxB,GACjCljB,KAAK2oB,iBAAmBzF,CAC1B,GAMC,CACDvf,IAAK,2BACL9R,MAAO,SAAkC+2B,GACvC5oB,KAAKyoB,uBAAyBG,CAChC,GAMC,CACDjlB,IAAK,qBACL9R,MAAO,WACL,IAAIg3B,EAAQ7oB,KAEZ,GAAIA,KAAK2oB,iBACP,OAAO3oB,KAAK2oB,iBAId,IAAIG,EAAW9oB,KAAKuoB,KAAKxE,qBACrBgF,EAAYlnB,OAAOC,KAAKgnB,GAE5B9oB,KAAKyoB,uBAAyB,IAAIpE,IA8ClC,IA3CA,IAGI2E,EAAW,CAHEF,EAASC,EAAU,IAAIX,IAKpCjF,EAAWnjB,KAAKikB,cAChBgF,EAAqBjpB,KAAKuoB,KAAKpE,2BAE/B+E,EAAW,CAAC,EAGZ3C,EAAwB,SAA+B4C,GACzD,IAAI3C,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiB7pB,EAErB,IACE,IAAK,IAAuD8pB,EAAnDC,EAAYqC,EAAmBlH,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAAM,CACnK,IAAI4C,EAAoBzC,EAAM90B,MAI9B,IAA2C,IAAvCs3B,EAAO/iB,QAAQgjB,GAA2B,CAC5CP,EAAMJ,uBAAuBlE,IAAI4E,EAAOjsB,KAAK,MAC7C,KACF,CACF,CACF,CAAE,MAAOqlB,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CACF,EAEOsC,EAASp5B,OAAS,GAAG,CAC1B,IAAIu5B,EAASH,EAASnuB,QAClBwuB,EAAgBF,EAAOjsB,KAAK,KAChCgsB,EAASG,GAAiB,CAAC,EAE3B,IAAIxC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBlqB,EAEtB,IACE,IAAK,IAA8CmqB,EAA1CC,EAAa9D,EAASpB,OAAOC,cAAuB6E,GAA8BG,EAASC,EAAW5E,QAAQC,MAAOuE,GAA6B,EAAM,CAC/J,IAAI1G,EAAS6G,EAAOn1B,MAEhBy3B,EAAW,GAGf/C,EAAsB4C,GAEtB,IAAIxE,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBhoB,EAEtB,IACE,IAAK,IAA4CioB,EAAxCC,EAAaoE,EAAOpH,OAAOC,cAAuB2C,GAA8BG,EAASC,EAAW1C,QAAQC,MAAOqC,GAA6B,EAAM,CAC7J,IAEI4E,EAAoBT,EAFZhE,EAAOjzB,OAEqBsuB,GACxC,GAAKoJ,EAAL,CAIA,IAAIlE,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1oB,EAEtB,IACE,IAAK,IAAuD4oB,EAAnDC,EAAa6D,EAAkBxH,OAAOC,cAAuBqD,GAA8BI,EAASC,EAAWrD,QAAQC,MAAO+C,GAA6B,EAAM,CACxK,IAAImE,EAAmB/D,EAAO5zB,MAEzBi3B,EAASU,IAGdF,EAAS1yB,KAAK6yB,MAAMH,EAAU7G,EAAmBqG,EAASU,GAAkBpB,IAC9E,CACF,CAAE,MAAO7F,GACP+C,GAAqB,EACrBC,EAAkBhD,CACpB,CAAE,QACA,KACO8C,GAA8BK,EAAWhC,QAC5CgC,EAAWhC,QAEf,CAAE,QACA,GAAI4B,EACF,MAAMC,CAEV,CACF,CA5BA,CA6BF,CACF,CAAE,MAAOhD,GACPqC,GAAqB,EACrBC,EAAkBtC,CACpB,CAAE,QACA,KACOoC,GAA8BI,EAAWrB,QAC5CqB,EAAWrB,QAEf,CAAE,QACA,GAAIkB,EACF,MAAMC,CAEV,CACF,CAEA,IAAI6E,EAAuB,IAAIrF,IAAIiF,GAC/BK,EAAoB,GAAG53B,OAAO0wB,EAAmBiH,IAErD,GAAIC,EAAkB/5B,OAAS,EAAG,CAChC,IAAIg6B,EAAiBD,EAAkBzsB,KAAK,KAE5CgsB,EAASG,GAAelJ,GAAUyJ,EAE7BV,EAASxL,eAAekM,IAC3BZ,EAAS1wB,QAAQqxB,EAErB,CACF,CACF,CAAE,MAAOpH,GACPuE,GAAqB,EACrBC,EAAkBxE,CACpB,CAAE,QACA,KACOsE,GAA8BI,EAAWvD,QAC5CuD,EAAWvD,QAEf,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CACF,CAEA,OAAO/mB,KAAK2oB,iBAAmB3oB,KAAK6pB,mBAAmBX,EACzD,GAOC,CACDvlB,IAAK,qBACL9R,MAAO,SAA4Bi4B,GACjC,IAAIC,EAAe,CAAC,EAEpB/pB,KAAK0oB,yBAA2BoB,EAChC,IAAIE,EAAkB,CAAC,EAMvB,IAAK,IAAIC,KAJTpoB,OAAOC,KAAKgoB,GAAoB3tB,SAAQ,SAAU8tB,EAAgBC,GAChEH,EAAaE,GAAkBC,EAAY,CAC7C,IAE2BJ,EAAoB,CAC7C,IAAIK,EAAcL,EAAmBG,GACjCG,EAAM,CAAC,EAEX,IAAK,IAAIjK,KAAUgK,EACjBC,EAAIjK,GAAU4J,EAAaI,EAAYhK,IAGzC6J,EAAgBD,EAAaE,IAAmBG,CAClD,CAGApqB,KAAKwoB,+BAAiCxoB,KAAKyoB,uBAC3CzoB,KAAKyoB,uBAAyB,IAAIpE,IAElC,IAAIsB,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBhpB,EAEtB,IACE,IAAK,IAAyEipB,EAArEC,EAAa/lB,KAAKwoB,+BAA+BzG,OAAOC,cAAuB2D,GAA8BG,EAASC,EAAW1D,QAAQC,MAAOqD,GAA6B,EAAM,CAC1L,IAAI0E,EAAkBvE,EAAOj0B,MAE7BmO,KAAKyoB,uBAAuBlE,IAAIwF,EAAaM,GAC/C,CACF,CAAE,MAAO9H,GACPqD,GAAqB,EACrBC,EAAkBtD,CACpB,CAAE,QACA,KACOoD,GAA8BI,EAAWrC,QAC5CqC,EAAWrC,QAEf,CAAE,QACA,GAAIkC,EACF,MAAMC,CAEV,CACF,CAEA,OAAOmE,CACT,GAOC,CACDrmB,IAAK,6BACL9R,MAAO,WAKL,OAJKmO,KAAK0oB,0BAER1oB,KAAK+jB,qBAEA/jB,KAAK0oB,wBACd,GAMC,CACD/kB,IAAK,UACL9R,MAAO,SAAiB8f,GAKtB,IAJA,IAAI2S,EAAQ,EACR/zB,EAAI,EACJ2yB,EAAQljB,KAAK+jB,qBAEVpS,EAAOphB,IAEZ,KADA+zB,EAAQpB,EAAMoB,GAAO3S,EAAOphB,OAE1B,OAAO,EAIX,QAAKyP,KAAKmkB,2BAA2BthB,IAAIyhB,EAK3C,KAGK+D,CACT,CAlWU,GAoWVp5B,EAAOC,QAAUm5B,gCCpXjB,IAAIiC,EAAM,EAAQ,OACdjC,EAAM,EAAQ,OAEdkC,EAAgB,EAAQ,OACxBC,EAAW,EAAQ,OAEvBv7B,EAAOC,QAAU,CAKfo7B,IAAKA,EACLjC,IAAKA,EAKLmC,SAAUA,EAUVC,MAAO,SAAejd,GACpB,OAAO+c,EAAc1rB,MAAM2O,EAC7B,EAWAkd,MAAO,SAAeld,GACpB,OAAO,IAAI6a,EAAIroB,KAAKyqB,MAAMjd,GAC5B,EAMAjZ,KAAM,SAAciZ,EAAQmE,GAC1B,OAAO3R,KAAK0qB,MAAMld,GAAQD,QAAQoE,EACpC,iCClDF,IAAI2Y,EAAM,EAAQ,OACdK,EAAW,EAAQ,OAGnBC,EADW,EAAQ,OACAA,QAcvB,SAASC,EAAKlX,GACZ,IAAImX,EAAU,IAAIH,EACdI,EAAW,IAAIJ,EAAS,CAC1BzG,WAAW,IAGb,OAAO,IAAIoG,EAAIQ,EAAQE,cAAcrX,EAAGoX,GAAWA,EACrD,CAwBA,SAASE,EAAQ9F,EAAO+F,GAMtB,OALA/F,EAAMgG,IAAIjH,WAAY,EACtBgH,EAAOC,IAAIjH,WAAY,EAEvBiB,EAAMgG,IAAIH,cAAcJ,EAASM,EAAOE,IAEjC,IAAId,EAAInF,EAAMiG,GAAIF,EAAOC,IAClC,CA8CA,SAASE,EAAOlG,EAAO+F,GACrB,IAAIJ,EAAU,IAAIH,EACdI,EAAW,IAAIJ,EAYnB,OAVAG,EAAQE,cAAcJ,EAASzF,EAAMiG,IACrCN,EAAQE,cAAcJ,EAASM,EAAOE,IAEtCL,EAAS7G,WAAY,EACrBiB,EAAMgG,IAAIjH,WAAY,EACtBgH,EAAOC,IAAIjH,WAAY,EAEvBiB,EAAMgG,IAAIH,cAAcJ,EAASG,GACjCG,EAAOC,IAAIH,cAAcJ,EAASG,GAE3B,IAAIT,EAAIQ,EAASC,EAC1B,CA6FA97B,EAAOC,QAAU,CACfo8B,IApJF,SAAanG,GACX,IAAK,IAAIoG,EAAOjO,UAAU1tB,OAAQ47B,EAAYx7B,MAAMu7B,EAAO,EAAIA,EAAO,EAAI,GAAIE,EAAO,EAAGA,EAAOF,EAAME,IACnGD,EAAUC,EAAO,GAAKnO,UAAUmO,GAGlC,IAAIjF,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiB7pB,EAErB,IACE,IAAK,IAA8C8pB,EAA1CC,EAAY4E,EAAUzJ,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAGpJrB,EAAQ8F,EAAQ9F,EAFDwB,EAAM90B,MAIzB,CAAE,MAAO0wB,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CAEA,OAAOvB,CACT,EAsHE0F,KAAMA,EACNjX,EAhLF,WACE,OAAOiX,EAAKD,EACd,EA+KEc,GA1FF,SAAYvG,GACV,IAAK,IAAIwG,EAAQrO,UAAU1tB,OAAQ47B,EAAYx7B,MAAM27B,EAAQ,EAAIA,EAAQ,EAAI,GAAIC,EAAQ,EAAGA,EAAQD,EAAOC,IACzGJ,EAAUI,EAAQ,GAAKtO,UAAUsO,GAGnC,IAAI/E,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBlqB,EAEtB,IACE,IAAK,IAA+CmqB,EAA3CC,EAAauE,EAAUzJ,OAAOC,cAAuB6E,GAA8BG,EAASC,EAAW5E,QAAQC,MAAOuE,GAA6B,EAG1J1B,EAAQkG,EAAOlG,EAFA6B,EAAOn1B,MAI1B,CAAE,MAAO0wB,GACPuE,GAAqB,EACrBC,EAAkBxE,CACpB,CAAE,QACA,KACOsE,GAA8BI,EAAWvD,QAC5CuD,EAAWvD,QAEf,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CAEA,OAAO5B,CACT,EA4DE0G,IA7BF,SAAaC,GAGX,OAFAA,EAASV,GAAGJ,cAAcJ,EAASkB,EAASX,KAC5CW,EAASX,IAAIH,cAAcJ,EAASkB,EAASV,IACtCU,CACT,EA0BEC,YAnDF,SAAqBD,GACnB,IAAIhB,EAAU,IAAIH,EACdI,EAAW,IAAIJ,EAAS,CAC1BzG,WAAW,IAWb,OAPA4G,EAAQE,cAAcJ,EAASkB,EAASV,IACxCN,EAAQE,cAAcJ,EAASG,GAE/Be,EAASX,IAAIjH,WAAY,EACzB4H,EAASX,IAAIH,cAAcJ,EAASG,GACpCA,EAASC,cAAcJ,EAASkB,EAASV,IAElC,IAAId,EAAIQ,EAASC,EAC1B,EAqCEiB,QArBF,SAAiBF,GAEf,OADAA,EAASX,IAAIH,cAAcJ,EAASkB,EAASV,IACtCU,CACT,EAmBEG,YAbF,SAAqBH,GAEnB,OADAA,EAASV,GAAGJ,cAAcJ,EAASkB,EAASX,KACrCW,CACT,iCC9MA,IAAII,EAAS,EAAQ,OAEjBC,EAAW,EAAQ,OACnBb,EAAMa,EAASb,IACfT,EAAOsB,EAAStB,KAChBa,EAAKS,EAAST,GACdG,EAAMM,EAASN,IACfG,EAAUG,EAASH,QACnBC,EAAcE,EAASF,YAO3B,SAASrL,EAAIxsB,GACX,GAAIA,IAASysB,EAAUzsB,EAAK9B,MAC1B,MAAM,IAAIkT,MAAMpR,EAAK9B,KAAO,6CAG9B,OAAO8B,EAAOysB,EAAUzsB,EAAK9B,MAAM8B,GAAQ,EAC7C,CAKA,IAAIysB,EAAY,CACdvsB,OAAQ,SAAgBF,GACtB,GAAmB,KAAfA,EAAKiK,MACP,MAAM,IAAImH,MAAM,yCAGlB,OAAOob,EAAIxsB,EAAK6J,KAClB,EACA6iB,YAAa,SAAqB1sB,GAChC,IAAIo3B,GAAap3B,EAAKlC,aAAe,IAAI+E,IAAI2pB,GAC7C,OAAO0K,EAAI7B,WAAM5sB,EAtCrB,SAA4BilB,GAAO,GAAI9xB,MAAMC,QAAQ6xB,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGmyB,EAAO1yB,MAAM8xB,EAAIlyB,QAASW,EAAIuxB,EAAIlyB,OAAQW,IAAOmyB,EAAKnyB,GAAKuxB,EAAIvxB,GAAM,OAAOmyB,CAAM,CAAS,OAAO1yB,MAAM0B,KAAKowB,EAAQ,CAsClKW,CAAmB+I,GACjD,EACAzK,YAAa,SAAqB3sB,GAChC,OAAOs3B,EAAG9K,EAAIxsB,EAAKb,MAAOqtB,EAAIxsB,EAAKZ,OACrC,EACA8tB,WAAY,SAAoBltB,GAC9B,OAAQA,EAAKN,WAAWtB,MACtB,IAAK,IACH,OAAOq5B,EAAIjL,EAAIxsB,EAAKpB,aACtB,IAAK,IACH,OAAOg5B,EAAQpL,EAAIxsB,EAAKpB,aAC1B,IAAK,IACH,OAAOi5B,EAAYrL,EAAIxsB,EAAKpB,aAC9B,QACE,MAAM,IAAIwS,MAAM,wBAA0BpR,EAAKN,WAAWtB,KAAO,KAEvE,EACAwtB,KAAM,SAAc5rB,GAClB,GAAkB,WAAdA,EAAK5B,KACP,MAAM,IAAIgT,MAAM,iDAGlB,OAAOqlB,EAAKz2B,EAAKvC,MACnB,EACAyH,MAAO,SAAelF,GACpB,OAAOwsB,EAAIxsB,EAAKpB,WAClB,GAGF/D,EAAOC,QAAU,CAIf2P,MAAO,SAAe2O,GACpB,IAAIuS,EAAMvS,EAYV,OAVIA,aAAkBlZ,SACpBkZ,EAAS,GAAKA,GAGM,iBAAXA,IACTuS,EAAMmM,EAAOnmB,MAAMyH,EAAQ,CACzB4e,kBAAkB,KAIfxL,EAAIb,EACb,iCCrFF,IAAIjC,EAAe,WAAc,SAASC,EAAiBC,EAAQte,GAAS,IAAK,IAAInP,EAAI,EAAGA,EAAImP,EAAM9P,OAAQW,IAAK,CAAE,IAAI0tB,EAAave,EAAMnP,GAAI0tB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMvc,OAAOwc,eAAeL,EAAQC,EAAWta,IAAKsa,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAY5Y,UAAW6Y,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAQf+N,EAAQ,EAAQ,OAGhBzB,EADW,EAAQ,OACAA,QAUnBD,EAAW,SAAU2B,GAGvB,SAAS3B,IAGP,OAzBJ,SAAyB7L,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAuBpJC,CAAgBhf,KAAM2qB,GArB1B,SAAoC4B,EAAMtiB,GAAQ,IAAKsiB,EAAQ,MAAM,IAAIC,eAAe,6DAAgE,OAAOviB,GAAyB,iBAATA,GAAqC,mBAATA,EAA8BsiB,EAAPtiB,CAAa,CAuBpOwiB,CAA2BzsB,MAAO2qB,EAAS+B,WAAa7qB,OAAO8qB,eAAehC,IAAWlB,MAAMzpB,KAAMsd,WAC9G,CAqLA,OA3MF,SAAmBsP,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAI9N,UAAU,kEAAoE8N,GAAeD,EAASlnB,UAAY7D,OAAOirB,OAAOD,GAAcA,EAAWnnB,UAAW,CAAEqnB,YAAa,CAAEl7B,MAAO+6B,EAAU1O,YAAY,EAAOE,UAAU,EAAMD,cAAc,KAAe0O,IAAYhrB,OAAOmrB,eAAiBnrB,OAAOmrB,eAAeJ,EAAUC,GAAcD,EAASF,UAAYG,EAAY,CAgB3eI,CAAUtC,EAAU2B,GAQpBxO,EAAa6M,EAAU,CAAC,CACtBhnB,IAAK,UAYL9R,MAAO,SAAiB8f,GACtB,IAAIub,EAAU5P,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,IAAI+G,IAGtF,GAAI6I,EAAQrqB,IAAI7C,MACd,OAAO,EAMT,GAHAktB,EAAQ3I,IAAIvkB,MAGU,IAAlB2R,EAAO/hB,OAAc,CAEvB,GAAIoQ,KAAKkkB,UACP,OAAO,EAKT,IAAIsC,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiB7pB,EAErB,IACE,IAAK,IAAyE8pB,EAArEC,EAAY5mB,KAAKmtB,uBAAuBvC,GAAS7I,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAG/K,GAFgBG,EAAM90B,MAER0b,QAAQ,GAAI2f,GACxB,OAAO,CAGb,CAAE,MAAO3K,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CAEA,OAAO,CACT,CAGA,IAAIvG,EAASxO,EAAO,GAChByT,EAAOzT,EAAO/W,MAAM,GAEpBwyB,EAAoBptB,KAAKmtB,uBAAuBhN,GAChD0G,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBlqB,EAEtB,IACE,IAAK,IAAuDmqB,EAAnDC,EAAamG,EAAkBrL,OAAOC,cAAuB6E,GAA8BG,EAASC,EAAW5E,QAAQC,MAAOuE,GAA6B,EAGlK,GAFiBG,EAAOn1B,MAET0b,QAAQ6X,GACrB,OAAO,CAMb,CAAE,MAAO7C,GACPuE,GAAqB,EACrBC,EAAkBxE,CACpB,CAAE,QACA,KACOsE,GAA8BI,EAAWvD,QAC5CuD,EAAWvD,QAEf,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CAEA,IAAIpC,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBhoB,EAEtB,IACE,IAAK,IAA0EioB,EAAtEC,EAAa/kB,KAAKmtB,uBAAuBvC,GAAS7I,OAAOC,cAAuB2C,GAA8BG,EAASC,EAAW1C,QAAQC,MAAOqC,GAA6B,EAGrL,GAFkBG,EAAOjzB,MAET0b,QAAQoE,EAAQub,GAC9B,OAAO,CAGb,CAAE,MAAO3K,GACPqC,GAAqB,EACrBC,EAAkBtC,CACpB,CAAE,QACA,KACOoC,GAA8BI,EAAWrB,QAC5CqB,EAAWrB,QAEf,CAAE,QACA,GAAIkB,EACF,MAAMC,CAEV,CACF,CAEA,OAAO,CACT,GAOC,CACDlhB,IAAK,oBACL9R,MAAO,WACL,IAAIw7B,EAASrtB,KAwCb,OAtCKA,KAAKstB,iBACR,WACE,IAAIC,EAAqBF,EAAOF,uBAAuBvC,GACnD4C,EAAUH,EAAOC,gBAAkB,IAAIjJ,IAC3CmJ,EAAQjJ,IAAI8I,GACZ,IAAIhI,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkB1oB,EAEtB,IACE,IAAK,IAAwD4oB,EAApDC,EAAa6H,EAAmBxL,OAAOC,cAAuBqD,GAA8BI,EAASC,EAAWrD,QAAQC,MAAO+C,GAA6B,EAAM,CACzK,IAAIoI,EAAYhI,EAAO5zB,MAElB27B,EAAQ3qB,IAAI4qB,KACfD,EAAQjJ,IAAIkJ,GACMA,EAAUC,oBAChBvxB,SAAQ,SAAUmoB,GAC5B,OAAOkJ,EAAQjJ,IAAID,EACrB,IAEJ,CACF,CAAE,MAAO/B,GACP+C,GAAqB,EACrBC,EAAkBhD,CACpB,CAAE,QACA,KACO8C,GAA8BK,EAAWhC,QAC5CgC,EAAWhC,QAEf,CAAE,QACA,GAAI4B,EACF,MAAMC,CAEV,CACF,CACD,CAlCD,GAqCKvlB,KAAKstB,eACd,KAGK3C,CACT,CA7Le,CA6Lb0B,GAEFp9B,EAAOC,QAAUy7B,gCCpNjB,IAAI9I,EAAgb,SAAUC,EAAKvxB,GAAK,GAAIP,MAAMC,QAAQ6xB,GAAQ,OAAOA,EAAY,GAAIC,OAAOC,YAAYngB,OAAOigB,GAAQ,OAAxf,SAAuBA,EAAKvxB,GAAK,IAAI0xB,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWvhB,OAAK/D,EAAW,IAAM,IAAK,IAAiC8D,EAA7ByhB,EAAKN,EAAIC,OAAOC,cAAmBE,GAAMvhB,EAAKyhB,EAAGC,QAAQC,QAAoBL,EAAKrrB,KAAK+J,EAAG9O,QAAYtB,GAAK0xB,EAAKryB,SAAWW,GAA3D2xB,GAAK,GAAkE,CAAE,MAAOK,GAAOJ,GAAK,EAAMvhB,EAAK2hB,CAAK,CAAE,QAAU,KAAWL,GAAME,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAID,EAAI,MAAMvhB,CAAI,CAAE,CAAE,OAAOqhB,CAAM,CAAuHO,CAAcV,EAAKvxB,GAAa,MAAM,IAAIwuB,UAAU,uDAA2D,EAE7oBjB,EAAe,WAAc,SAASC,EAAiBC,EAAQte,GAAS,IAAK,IAAInP,EAAI,EAAGA,EAAImP,EAAM9P,OAAQW,IAAK,CAAE,IAAI0tB,EAAave,EAAMnP,GAAI0tB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMvc,OAAOwc,eAAeL,EAAQC,EAAWta,IAAKsa,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAY5Y,UAAW6Y,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAMf6N,EAAW,EAAQ,OACnBvB,EAAUuB,EAASvB,QACnBxC,EAAkB+D,EAAS/D,gBAe3BkC,EAAM,WACR,SAASA,EAAIQ,EAASC,IApBxB,SAAyBjM,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAqBpJC,CAAgBhf,KAAMsqB,GAEtBtqB,KAAKorB,GAAKN,EACV9qB,KAAKmrB,IAAMJ,CACb,CAgMA,OAzLAjN,EAAawM,EAAK,CAAC,CACjB3mB,IAAK,UACL9R,MAAO,SAAiB8f,GACtB,OAAO3R,KAAKorB,GAAG7d,QAAQoE,EACzB,GAMC,CACDhO,IAAK,cACL9R,MAAO,WACL,IAAKmO,KAAK2tB,UAAW,CACnB3tB,KAAK2tB,UAAY,IAAItJ,IACrB,IAAInB,EAAQljB,KAAK+jB,qBACjB,IAAK,IAAIO,KAASpB,EAAO,CACvB,IAAI0K,EAAc1K,EAAMoB,GACxB,IAAK,IAAInE,KAAUyN,EACbzN,IAAWiI,GACbpoB,KAAK2tB,UAAUpJ,IAAIpE,EAGzB,CACF,CACA,OAAOngB,KAAK2tB,SACd,GAMC,CACDhqB,IAAK,qBACL9R,MAAO,WAKL,OAJKmO,KAAK6tB,kBAER7tB,KAAK+jB,qBAEA/jB,KAAK6tB,gBACd,GAMC,CACDlqB,IAAK,2BACL9R,MAAO,WACL,IAAKmO,KAAKyoB,uBAAwB,CAChCzoB,KAAKyoB,uBAAyB,IAAIpE,IAClC,IAAImC,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiB7pB,EAErB,IACE,IAAK,IAA8D8pB,EAA1DC,EAAY5mB,KAAK8tB,qBAAqB/L,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAAM,CAC1K,IAAIuH,EAAiBpH,EAAM90B,MAE3BmO,KAAKyoB,uBAAuBlE,IAAIwJ,EAAe76B,OACjD,CACF,CAAE,MAAOqvB,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CACF,CACA,OAAO1mB,KAAKyoB,sBACd,GAMC,CACD9kB,IAAK,qBACL9R,MAAO,WACL,IAAIg3B,EAAQ7oB,KAEZ,IAAKA,KAAK2oB,iBAAkB,CAC1B3oB,KAAK2oB,iBAAmB,CAAC,EACzB3oB,KAAK6tB,iBAAmB,IAAIxJ,IAE5B,IAAI6I,EAAU,IAAI7I,IACd2J,EAAU,IAAI3J,KAED,SAAS4J,EAAW3J,GACnC,IAAI4I,EAAQrqB,IAAIyhB,GAAhB,CAIA4I,EAAQ3I,IAAID,GACZA,EAAMpxB,OAASg6B,EAAQptB,KACvB+oB,EAAMF,iBAAiBrE,EAAMpxB,QAAU,CAAC,EAEpCoxB,EAAMJ,WACR2E,EAAMgF,iBAAiBtJ,IAAID,GAG7B,IAAIsJ,EAActJ,EAAM4J,iBAEpBrH,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBlqB,EAEtB,IACE,IAAK,IAAiDmqB,EAA7CC,EAAa2G,EAAY7L,OAAOC,cAAuB6E,GAA8BG,EAASC,EAAW5E,QAAQC,MAAOuE,GAA6B,EAAM,CAClK,IAAIlI,EAAOqI,EAAOn1B,MAEds1B,EAAQtF,EAAelD,EAAM,GAE7BwB,EAASgH,EAAM,GACfiG,EAAoBjG,EAAM,GAE1BgH,EAAgB,GACpBH,EAAQzJ,IAAIpE,GACZ,IAAIwE,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBhoB,EAEtB,IACE,IAAK,IAAuDioB,EAAnDC,EAAaqI,EAAkBrL,OAAOC,cAAuB2C,GAA8BG,EAASC,EAAW1C,QAAQC,MAAOqC,GAA6B,EAAM,CACxK,IAAI8I,EAAY3I,EAAOjzB,MAEvBo8B,EAAWR,GACXU,EAAcv3B,KAAK62B,EAAUv6B,OAC/B,CACF,CAAE,MAAOqvB,GACPqC,GAAqB,EACrBC,EAAkBtC,CACpB,CAAE,QACA,KACOoC,GAA8BI,EAAWrB,QAC5CqB,EAAWrB,QAEf,CAAE,QACA,GAAIkB,EACF,MAAMC,CAEV,CACF,CAEAgE,EAAMF,iBAAiBrE,EAAMpxB,QAAQitB,GAAUgO,CACjD,CACF,CAAE,MAAO5L,GACPuE,GAAqB,EACrBC,EAAkBxE,CACpB,CAAE,QACA,KACOsE,GAA8BI,EAAWvD,QAC5CuD,EAAWvD,QAEf,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CApEA,CAqEF,CAGAkH,CAAWjuB,KAAKorB,IAGhB8B,EAAQ/wB,SAAQ,SAAUmoB,UACjBuE,EAAMF,iBAAiBrE,EAAMpxB,QAAQ03B,GAC5C/B,EAAMF,iBAAiBrE,EAAMpxB,QAAQk1B,GAAmB,GAAGr2B,OAjNrE,SAA4B+vB,GAAO,GAAI9xB,MAAMC,QAAQ6xB,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGmyB,EAAO1yB,MAAM8xB,EAAIlyB,QAASW,EAAIuxB,EAAIlyB,OAAQW,IAAOmyB,EAAKnyB,GAAKuxB,EAAIvxB,GAAM,OAAOmyB,CAAM,CAAS,OAAO1yB,MAAM0B,KAAKowB,EAAQ,CAiNtHW,CAAmB6B,EAAMoJ,sBAAsBz2B,KAAI,SAAU2d,GAC7H,OAAOA,EAAE1hB,MACX,GACF,GACF,CAEA,OAAO8M,KAAK2oB,gBACd,KAGK2B,CACT,CAvMU,GAyMVr7B,EAAOC,QAAUo7B,0BCvNjBr7B,EAAOC,QAAU,CACf07B,QARY,IASZxC,gBAJoBwC,8BCFtB,IAAI9M,EAAe,WAAc,SAASC,EAAiBC,EAAQte,GAAS,IAAK,IAAInP,EAAI,EAAGA,EAAImP,EAAM9P,OAAQW,IAAK,CAAE,IAAI0tB,EAAave,EAAMnP,GAAI0tB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMvc,OAAOwc,eAAeL,EAAQC,EAAWta,IAAKsa,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAY5Y,UAAW6Y,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIf+N,EAAQ,WACV,SAASA,IACP,IACI+B,GADO9Q,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,CAAC,GACtD4G,UACtBA,OAA+BrnB,IAAnBuxB,GAAuCA,GAN3D,SAAyBtP,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAQpJC,CAAgBhf,KAAMqsB,GAKtBrsB,KAAKquB,aAAe,IAAIrxB,IAKxBgD,KAAKkkB,UAAYA,CACnB,CA0CA,OAnCApG,EAAauO,EAAO,CAAC,CACnB1oB,IAAK,iBACL9R,MAAO,WACL,OAAOmO,KAAKquB,YACd,GAMC,CACD1qB,IAAK,gBACL9R,MAAO,SAAuBsuB,EAAQmO,GAEpC,OADAtuB,KAAKmtB,uBAAuBhN,GAAQoE,IAAI+J,GACjCtuB,IACT,GAMC,CACD2D,IAAK,yBACL9R,MAAO,SAAgCsuB,GACrC,IAAIyN,EAAc5tB,KAAKquB,aAAahyB,IAAI8jB,GAOxC,OALKyN,IACHA,EAAc,IAAIvJ,IAClBrkB,KAAKquB,aAAalxB,IAAIgjB,EAAQyN,IAGzBA,CACT,KAGKvB,CACT,CA5DY,GA8DZp9B,EAAOC,QAAUm9B,gCCzEjB,IAAIz6B,EAAQ,EAAQ,MAChBs6B,EAAS,EAAQ,OACjB9O,EAAY,EAAQ,MACpBmR,EAAyB,EAAQ,OAErCt/B,EAAOC,QAAU,CAiBfs/B,SAAU,SAAkBhhB,GAC1B,IAAImR,EAAOrB,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5EmR,EAAiB9P,EAAK+P,UACtBA,OAA+B7xB,IAAnB4xB,EAA+B,GAAKA,EAChDE,EAAiBhQ,EAAKiQ,UACtBA,OAA+B/xB,IAAnB8xB,EAA+B,GAAKA,EAIhDpR,GAFgBmR,EAAU9+B,OAAS,EAAI8+B,EAAY1+B,MAAM0B,KAAK68B,EAAuBzsB,SAEpD1P,QAAO,SAAUgrB,GACpD,OAAQwR,EAAU/4B,SAASunB,EAC7B,IAEI2C,EAAMvS,EACNA,aAAkBlZ,SACpBkZ,EAAS,GAAKA,GAGM,iBAAXA,IACTuS,EAAMmM,EAAOnmB,MAAMyH,IAGrB,IAAIxR,EAAS,IAAIohB,EAAUyR,gBAAgB9O,GACvC+O,OAAmB,EAEvB,GAIEA,EAAmB9yB,EAAO9L,WAC1B6vB,EAAMnuB,EAAMoK,EAAOmC,UAEnBof,EAAiBphB,SAAQ,SAAUshB,GACjC,IAAK8Q,EAAuB1rB,IAAI4a,GAC9B,MAAM,IAAIjY,MAAM,mCAAqCiY,EAArC,+BAA2FztB,MAAM0B,KAAK68B,EAAuBzsB,QAAQ5E,KAAK,OAG5J,IAAI6xB,EAAcR,EAAuBlyB,IAAIohB,GAIzCuR,EAAY5R,EAAUA,UAAU2C,EAAKgP,GAErCC,EAAU9+B,aAAe8L,EAAO9L,aAC9B8+B,EAAU9+B,WAAWN,QAAUoM,EAAO9L,WAAWN,OACnDoM,EAASgzB,EAKTjP,EAAMnuB,EAAMoK,EAAOmC,UAGzB,UAIOnC,EAAO9L,aAAe4+B,GAE/B,OAAO9yB,CACT,2BClFF,IAAIizB,EAAa,IAAIC,YAAY,GAC7BC,EAAa,IAAID,YAAY,GAMjCjgC,EAAOC,QAAU,CACfkgC,eAAgB,KAChBvP,WAAW,EACXQ,KAAM,SAAcN,GAClB/f,KAAKovB,eAAiB,IAAI/K,IAC1BrkB,KAAK6f,UAAYE,EAAI1hB,MAAMxI,SAAS,IACtC,EACAiqB,UAAW,SAAmBC,GAC5B,OAAOA,EAAI1hB,MAAMxI,SAAS,IAC5B,EACAmqB,KAAM,SAAcna,GAClB,IAAIzR,EAAOyR,EAAKzR,KACZsF,EAASmM,EAAKnM,OAElB,IAAIjJ,MAAM2D,EAAK1B,aAMVsN,KAAK6f,aAAazrB,EAAK1B,WAAa,OAAzC,CAIA,GAAoB,eAAhBgH,EAAOpH,KAAuB,CAKhC,KAAK0N,KAAKovB,eAAevsB,IAAInJ,KAeX21B,EAfsC31B,EAgBxDhI,EAAO29B,EAAW39B,KAClBmB,EAAKw8B,EAAWx8B,GAGbnB,EAAKgB,WAAau8B,GAAcv9B,EAAKgB,WAAay8B,GAAct8B,EAAGH,WAAau8B,GAAcp8B,EAAGH,WAAay8B,IAnB/G,OAEFnvB,KAAKovB,eAAe7K,IAAI7qB,EAC1B,CAWJ,IAAwB21B,EAClB39B,EACAmB,EAXEy8B,EAAQl7B,EAAK+rB,OAAOjd,cACpBosB,IAAUl7B,EAAK+rB,SACjB/rB,EAAKvC,MAeX,SAA8BsuB,EAAQ/rB,GACpC,IAAI1B,EAAYytB,EAAO+O,YAAY,GACnC,GAAkB,YAAd96B,EAAK5B,KACP,MAAO,KAAOE,EAEhB,GAAkB,QAAd0B,EAAK5B,KACP,MAAO,MAAQE,EAAUxC,SAAS,GAEpC,GAAkB,QAAdkE,EAAK5B,KACP,MAAO,MAAQE,EAAUxC,SAAS,IAEpC,GAAkB,YAAdkE,EAAK5B,KAAoB,CAC3B,GAAI4B,EAAKm7B,gBAAiB,CACxB,IAAIC,EAuBV,SAAuC98B,GACrC,IACI+8B,GAAS/8B,EAAY,OAAW,KAAQ,MAC5C,MAAO,CACLg9B,MAHS74B,KAAK84B,OAAOj9B,EAAY,OAAW,MAAS,OAG1CxC,SAAS,IACpBu/B,MAAOA,EAAMv/B,SAAS,IAE1B,CA9BkC0/B,CAA8Bl9B,GACtDg9B,EAAOF,EAAsBE,KAC7BD,EAAQD,EAAsBC,MAElC,MAAO,MAAQ,IAAII,OAAO,EAAIH,EAAK9/B,QAAU8/B,EAAO,MAAQ,IAAIG,OAAO,EAAIJ,EAAM7/B,QAAU6/B,CAC7F,CAAO,GAAIr7B,EAAKvC,MAAMgE,SAAS,KAC7B,MAAO,OAASnD,EAAUxC,SAAS,IAAM,IAEzC,IAAI4/B,EAAOp9B,EAAUxC,SAAS,IAC9B,MAAO,MAAQ,IAAI2/B,OAAO,EAAIC,EAAKlgC,QAAUkgC,CAEjD,CAEA,OAAO3P,CACT,CA1CmB4P,CAAqBT,EAAOl7B,GACzCA,EAAK+rB,OAASmP,EACdl7B,EAAK1B,UAAY48B,EAAMJ,YAAY,GAjBrC,CAmBF,2BCMF,SAASc,EAAcr/B,EAAGC,GACxB,IAAIq/B,EAASC,EAAav/B,GACtBw/B,EAASD,EAAat/B,GAE1B,GAAIq/B,IAAWE,EAAQ,CAGrB,GAAe,eAAXx/B,EAAE2B,MAAoC,eAAX1B,EAAE0B,KAC/B,OAAQ,EAEV,GAAe,eAAX1B,EAAE0B,MAAoC,eAAX3B,EAAE2B,KAC/B,OAAO,EAET,GAAe,eAAX3B,EAAE2B,MAAoC,eAAX1B,EAAE0B,KAC/B,OAAO49B,EAAav/B,EAAEkC,IAAMq9B,EAAat/B,EAAEiC,IAE7C,GAAIu9B,EAAOz/B,IAAMy/B,EAAOx/B,IAAMy/B,EAAU1/B,IAAM0/B,EAAUz/B,GACtD,OAAOD,EAAEkB,MAAQjB,EAAEiB,OAAS,EAAI,CAEpC,CACA,OAAOo+B,EAASE,CAClB,CAMA,SAASD,EAAal9B,GACpB,MAAwB,SAApBA,EAAWV,KACY,MAArBU,EAAWnB,OAGS,YAApBmB,EAAWR,KAFNjD,IAKe,SAApByD,EAAWR,MAAmB/B,MAAMuC,EAAWN,YACzC,EAEHM,EAAWN,UAGbM,EAAWtB,KAAKgB,SACzB,CAQA,SAAS09B,EAAOp9B,GACd,IAAInB,EAAQyrB,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,KAEhF,MAA2B,SAApBtqB,EAAWV,MAAuC,SAApBU,EAAWR,OAAoBX,EAAQmB,EAAWnB,QAAUA,EAAQ,aAAa0C,KAAKvB,EAAWnB,OACxI,CAMA,SAASw+B,EAAUr9B,GACjB,MAA2B,SAApBA,EAAWV,MAAuC,YAApBU,EAAWR,IAClD,CAQA,SAAS89B,EAAYt9B,EAAYu9B,EAAOC,GACtC,IAAK,IAAIjgC,EAAI,EAAGA,EAAIggC,EAAM3gC,OAAQW,IAChC,GAAIkgC,EAAWz9B,EAAYu9B,EAAMhgC,GAAIigC,GACnC,OAAO,EAGX,OAAO,CACT,CAQA,SAASC,EAAWz9B,EAAY09B,EAAMF,GACpC,MAAwB,eAApBx9B,EAAWV,KACNm+B,EAAWz9B,EAAWtB,KAAMg/B,EAAMF,IAAeC,EAAWz9B,EAAWH,GAAI69B,EAAMF,KAK7E,QAATE,IAAmBN,EAAOp9B,EAAY,SAAUo9B,EAAOp9B,EAAY,WAI1D,QAAT09B,IAAmBN,EAAOp9B,EAAY,SAAUo9B,EAAOp9B,EAAY,WAI1D,QAAT09B,IAAkBN,EAAOp9B,EAAY,WAI5B,QAAT09B,IAAkBN,EAAOp9B,EAAY,SAIjB,SAApBA,EAAWV,OAAmB7B,MAAMuC,EAAWN,aAItC,QAATg+B,EACKC,EAAY39B,GAER,QAAT09B,GACMC,EAAY39B,GAET,QAAT09B,EACKE,EAAY59B,GAER,QAAT09B,GACME,EAAY59B,GAET,QAAT09B,EACKG,EAAY79B,EAAYw9B,GAEpB,QAATE,IACMG,EAAY79B,EAAYw9B,GAGpC,CAMA,SAASG,EAAY39B,GACnB,OAAgC,IAAzBA,EAAWN,WACO,KAAzBM,EAAWN,WACc,KAAzBM,EAAWN,WACc,KAAzBM,EAAWN,WACc,KAAzBM,EAAWN,WACc,KAAzBM,EAAWN,WACc,MAAzBM,EAAWN,WACc,OAAzBM,EAAWN,WACXM,EAAWN,WAAa,MAAUM,EAAWN,WAAa,MACjC,OAAzBM,EAAWN,WACc,OAAzBM,EAAWN,WACc,OAAzBM,EAAWN,WACc,OAAzBM,EAAWN,WACc,QAAzBM,EAAWN,WACc,QAAzBM,EAAWN,SACb,CAMA,SAASk+B,EAAY59B,GACnB,OAAOA,EAAWN,WAAa,IAAQM,EAAWN,WAAa,EACjE,CAOA,SAASm+B,EAAY79B,EAAYw9B,GAC/B,OAAOI,EAAY59B,IAAeA,EAAWN,WAAa,IAAQM,EAAWN,WAAa,IAC1FM,EAAWN,WAAa,IAAQM,EAAWN,WAAa,KACnC,MAArBM,EAAWnB,OAAiB2+B,IAAwC,MAAzBx9B,EAAWN,WAAiD,OAAzBM,EAAWN,UAC3F,CAOA,SAASo+B,EAAgC99B,EAAYq8B,GACnD,GAAIA,GAAkC,eAApBA,EAAW/8B,KAAuB,CAClD,GAAIy+B,EAAiB/9B,EAAYq8B,GAG/B,OAAO,EACF,GAEP2B,EAAkBh+B,IAAeq8B,EAAWx8B,GAAGH,YAAcM,EAAWN,UAAY,EAGlF,OADA28B,EAAWx8B,GAAKG,GACT,EACF,GAAwB,eAApBA,EAAWV,MAAyBU,EAAWtB,KAAKgB,WAAa28B,EAAWx8B,GAAGH,UAAY,GAAKM,EAAWH,GAAGH,WAAa28B,EAAW39B,KAAKgB,UAAY,EAUhK,OANIM,EAAWtB,KAAKgB,UAAY28B,EAAW39B,KAAKgB,YAC9C28B,EAAW39B,KAAOsB,EAAWtB,MAE3BsB,EAAWH,GAAGH,UAAY28B,EAAWx8B,GAAGH,YAC1C28B,EAAWx8B,GAAKG,EAAWH,KAEtB,CAEX,CACA,OAAO,CACT,CAOA,SAASo+B,EAAgCj+B,EAAYq8B,GACnD,SAAIA,GAAkC,eAApBA,EAAW/8B,OAM3B0+B,EAAkBh+B,IAAeq8B,EAAW39B,KAAKgB,YAAcM,EAAWN,UAAY,IACpF28B,EAAW39B,KAAOsB,EACX,GAKb,CAOA,SAAS+9B,EAAiB/9B,EAAYq8B,GACpC,OAAwB,SAApBr8B,EAAWV,OAAmB7B,MAAMuC,EAAWN,cAG3B,eAApBM,EAAWV,KACNy+B,EAAiB/9B,EAAWtB,KAAM29B,IAAe0B,EAAiB/9B,EAAWH,GAAIw8B,GAEnFr8B,EAAWN,WAAa28B,EAAW39B,KAAKgB,WAAaM,EAAWN,WAAa28B,EAAWx8B,GAAGH,UACpG,CAQA,SAASw+B,EAA+Bl+B,EAAY6W,EAAO3X,GAEzD,IAAK8+B,EAAkBh+B,GACrB,OAAO,EAGT,IADA,IAAIm+B,EAAgB,EACbtnB,EAAQ,GAAG,CAChB,IAAIunB,EAAoBl/B,EAAY2X,GAChCwnB,EAAqBn/B,EAAY2X,EAAQ,GAC7C,IAAImnB,EAAkBK,IAAuBA,EAAmB3+B,YAAc0+B,EAAkB1+B,UAAY,EAI1G,MAHAy+B,IACAtnB,GAIJ,CAEA,OAAIsnB,EAAgB,GAClBj/B,EAAY2X,GAAS,CACnBvX,KAAM,aACNZ,KAAMQ,EAAY2X,GAClBhX,GAAIG,GAECm+B,GAEF,CACT,CAEA,SAASH,EAAkBh+B,GACzB,OAAOA,GAAkC,SAApBA,EAAWV,OAAoB7B,MAAMuC,EAAWN,aAAem+B,EAAY79B,GAAY,IAA8B,YAApBA,EAAWR,MAA0C,QAApBQ,EAAWR,MAAsC,QAApBQ,EAAWR,MAAsC,YAApBQ,EAAWR,KAC9N,CApUAvD,EAAOC,QAAU,CACfoiC,aAAa,EACbjR,KAAM,SAAcN,GAClB/f,KAAKsxB,YAAcvR,EAAI1hB,MAAMxI,SAAS,MAAQkqB,EAAI1hB,MAAMxI,SAAS,IACnE,EACAurB,eAAgB,SAAwBvb,GACtC,IAEI3T,EAFO2T,EAAKzR,KAEOlC,YAEnBq+B,EAAQ,GAEZr+B,EAAYiK,SAAQ,SAAUnJ,GACxBo9B,EAAOp9B,IACTu9B,EAAM35B,KAAK5D,EAAWnB,MAE1B,IAEAK,EAAYkL,KAAK4yB,GAEjB,IAAK,IAAIz/B,EAAI,EAAGA,EAAI2B,EAAYtC,OAAQW,IAAK,CAC3C,IAAIyC,EAAad,EAAY3B,GAC7B,GAAI+/B,EAAYt9B,EAAYu9B,EAAOvwB,KAAKsxB,cAAgBR,EAAgC99B,EAAYd,EAAY3B,EAAI,KAAO0gC,EAAgCj+B,EAAYd,EAAY3B,EAAI,IACrL2B,EAAYq/B,OAAOhhC,EAAG,GACtBA,QACK,CACL,IAAI4gC,EAAgBD,EAA+Bl+B,EAAYzC,EAAG2B,GAClEA,EAAYq/B,OAAOhhC,EAAI4gC,EAAgB,EAAGA,GAC1C5gC,GAAK4gC,CACP,CACF,CACF,2BChCFliC,EAAOC,QAAU,CACfmyB,WAAY,SAAoBxb,GAC9B,IAAIzR,EAAOyR,EAAKzR,KAGZA,EAAK1C,KAAKgB,YAAc0B,EAAKvB,GAAGH,UAElCmT,EAAKlR,QAAQP,EAAK1C,MACT0C,EAAK1C,KAAKgB,YAAc0B,EAAKvB,GAAGH,UAAY,IAErDmT,EAAK2rB,YAAYC,cAAcr9B,EAAKvB,GAAIgT,EAAKgE,MAAQ,GACrDhE,EAAKlR,QAAQP,EAAK1C,MAEtB,yBCjBFzC,EAAOC,QAAU,CACfkyB,eAAgB,SAAwBvb,GAKtC,IAJA,IAAIzR,EAAOyR,EAAKzR,KAEZs9B,EAAU,CAAC,EAENnhC,EAAI,EAAGA,EAAI6D,EAAKlC,YAAYtC,OAAQW,IAAK,CAChD,IAAIohC,EAAY9rB,EAAK+rB,SAASrhC,GAC1BsuB,EAAS8S,EAAUE,aAEnBH,EAAQhU,eAAemB,KACzB8S,EAAU52B,SAIVxK,KAGFmhC,EAAQ7S,IAAU,CACpB,CACF,0BCnBF,SAAS4D,EAAmBX,GAAO,GAAI9xB,MAAMC,QAAQ6xB,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGmyB,EAAO1yB,MAAM8xB,EAAIlyB,QAASW,EAAIuxB,EAAIlyB,OAAQW,IAAOmyB,EAAKnyB,GAAKuxB,EAAIvxB,GAAM,OAAOmyB,CAAM,CAAS,OAAO1yB,MAAM0B,KAAKowB,EAAQ,CAElM7yB,EAAOC,QAAU,CACf4iC,WAAW,EACXjS,WAAW,EACXQ,KAAM,SAAcN,GAClB/f,KAAK8xB,UAAY/R,EAAI1hB,MAAMxI,SAAS,KACpCmK,KAAK6f,UAAYE,EAAI1hB,MAAMxI,SAAS,IACtC,EACAurB,eAAgB,SAAwBvb,IAe1C,SAA6BA,GAChBA,EAAKzR,KAGXlC,YAAYiK,SAAQ,SAAUnJ,EAAYzC,IAgIjD,SAA2B6D,GACzB,MAAqB,eAAdA,EAAK9B,MAA6C,MAApB8B,EAAK1C,KAAKG,OAAmC,MAAlBuC,EAAKvB,GAAGhB,KAC1E,EAjIQkgC,CAAkB/+B,IACpB6S,EAAK+rB,SAASrhC,GAAGoE,QAAQ,CACvBrC,KAAM,OACNT,MAAO,MACPW,KAAM,QAGZ,GACF,CA1BIw/B,CAAoBnsB,GAiCxB,SAA2BA,EAAMosB,EAAUC,GACzC,IAAI99B,EAAOyR,EAAKzR,KAGZ+9B,EAAa,KACbC,EAAgB,KAChBC,EAAgB,KAChBC,EAAiB,KACjBC,EAAY,KACZC,EAAY,KAEhBp+B,EAAKlC,YAAYiK,SAAQ,SAAUnJ,EAAYzC,GAEzCkiC,EAAWz/B,EAAY,OACzBm/B,EAAatsB,EAAK+rB,SAASrhC,GAgHjC,SAA0B6D,GACxB,MAAqB,eAAdA,EAAK9B,MAA6C,MAApB8B,EAAK1C,KAAKG,OAAmC,MAAlBuC,EAAKvB,GAAGhB,KAC1E,CA9Ga6gC,CAAiB1/B,GACtBo/B,EAAgBvsB,EAAK+rB,SAASrhC,GA+GtC,SAA0B6D,GACxB,MAAqB,eAAdA,EAAK9B,MAA6C,MAApB8B,EAAK1C,KAAKG,OAAmC,MAAlBuC,EAAKvB,GAAGhB,KAC1E,CA7Ge8gC,CAAiB3/B,GACtBq/B,EAAgBxsB,EAAK+rB,SAASrhC,GA8GxC,SAAsB6D,GACpB,MAAqB,SAAdA,EAAK9B,MAAkC,MAAf8B,EAAKvC,OAA+B,WAAduC,EAAK5B,IAC5D,CA5GiBogC,CAAa5/B,GAClBs/B,EAAiBzsB,EAAK+rB,SAASrhC,GACtB0hC,GAAYC,GAAYW,EAAY7/B,EAAY,KACzDu/B,EAAY1sB,EAAK+rB,SAASrhC,GACjB0hC,GAAYC,GAAYW,EAAY7/B,EAAY,QACzDw/B,EAAY3sB,EAAK+rB,SAASrhC,GAEpC,IAGI4hC,IAAeC,GAAiBC,GAAiBJ,IAAaG,GAAiBC,KAAmBC,KAAoBJ,IAAaD,GAAYM,GAAaC,KAE9JL,EAAWx9B,QAAQ,CACjBrC,KAAM,OACNT,MAAO,MACPW,KAAM,SAIJ4/B,GACFA,EAAcr3B,SAEZs3B,GACFA,EAAct3B,SAEhBu3B,EAAev3B,SACXw3B,GACFA,EAAUx3B,SAERy3B,GACFA,EAAUz3B,SAGhB,CA3FI+3B,CAAkBjtB,EAAM7F,KAAK8xB,UAAW9xB,KAAK6f,WA8GjD,SAAiCha,GAC/B,IAAIzR,EAAOyR,EAAKzR,KAGhB,KAAIA,EAAKlC,YAAYtC,OAASmjC,EAAqBnjC,SAAWmjC,EAAqBj+B,OAAM,SAAUP,GACjG,OAAOH,EAAKlC,YAAYue,MAAK,SAAUzd,GACrC,OAAOuB,EAAKvB,EACd,GACF,IAJA,CAWA,IAAIggC,EAAQ5+B,EAAKlC,YAAY6f,MAAK,SAAU/e,GAC1C,OAAOy/B,EAAWz/B,EAAY,MAChC,IACAggC,EAAMnhC,MAAQ,MACdmhC,EAAM7S,YAAStjB,EACfm2B,EAAMtgC,UAAYC,IAGlByB,EAAKlC,YAAY+E,KAAI,SAAUjE,EAAYzC,GACzC,OAAOwiC,EAAqBtiB,MAAK,SAAUlc,GACzC,OAAOA,EAAKvB,EACd,IAAK6S,EAAK+rB,SAASrhC,QAAKsM,CAC1B,IAAGzK,OAAOC,SAAS8J,SAAQ,SAAU0J,GACnC,OAAOA,EAAK9K,QACd,GAnBA,CAoBF,CAzIIk4B,CAAwBptB,EAC1B,GA4FF,IAAIktB,EAAuB,CAAC,SAAU3+B,GACpC,OAAO8+B,EAAO9+B,EAAM,IACtB,GAAGrC,OAAO0wB,EAAmB,CAAC,MAAO,MAAO,MAAO,MAAO,OAAOxrB,KAAI,SAAU4zB,GAC7E,OAAO,SAAUz2B,GACf,OAAOq+B,EAAWr+B,EAAMy2B,EAC1B,CACF,KAAKpI,EAAmB,CAAC,IAAQ,KAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,OAAQxrB,KAAI,SAAUvE,GACrG,OAAO,SAAU0B,GACf,OAAOy+B,EAAYz+B,EAAM1B,EAC3B,CACF,KAAK,CAAC,SAAU0B,GACd,MAAqB,eAAdA,EAAK9B,MAAyBugC,EAAYz+B,EAAK1C,KAAM,OAAWmhC,EAAYz+B,EAAKvB,GAAI,KAC9F,IAsCA,SAASqgC,EAAO9+B,EAAMvC,GACpB,IAAIW,EAAO8qB,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,SAE/E,MAAqB,SAAdlpB,EAAK9B,MAAmB8B,EAAKvC,QAAUA,GAASuC,EAAK5B,OAASA,CACvE,CAEA,SAASigC,EAAWr+B,EAAMvC,GACxB,OAAOqhC,EAAO9+B,EAAMvC,EAAO,OAC7B,CAcA,SAASghC,EAAYz+B,EAAM1B,GACzB,MAAqB,SAAd0B,EAAK9B,MAAiC,YAAd8B,EAAK5B,MAAsB4B,EAAK1B,YAAcA,CAC/E,0BCtGA,SAASygC,EAAathC,GACpB,MAAQ,iBAAiB0C,KAAK1C,EAEhC,CAnFA5C,EAAOC,QAAU,CACfkyB,eAAgB,SAAwBvb,GACtC,IAAIzR,EAAOyR,EAAKzR,KAGhB,GAAgC,IAA5BA,EAAKlC,YAAYtC,QA8CzB,SAAgCiW,GAC9B,IAAInM,EAASmM,EAAKnM,OACdmQ,EAAQhE,EAAKgE,MAGjB,GAAoB,gBAAhBnQ,EAAOpH,KACT,OAAO,EAGT,IAAI8gC,EAAe15B,EAAOxH,YAAY2X,EAAQ,GAC9C,OAAoB,MAAhBupB,IAKsB,kBAAtBA,EAAa9gC,MAAkD,WAAtB8gC,EAAa5gC,QAKhC,SAAtB4gC,EAAa9gC,MAAyC,YAAtB8gC,EAAa5gC,KAKnD,CAvE0C6gC,CAAuBxtB,IA6BjE,SAA2BzR,GACzB,MAAqB,SAAdA,EAAK9B,MAGG,QAAf8B,EAAKvC,KACP,CAlC2EyhC,CAAkBl/B,EAAKlC,YAAY,IAA1G,CAIA,IAAIqhC,EAAqBn/B,EAAKlC,YAAY,GACtCL,EAAQ0hC,EAAmB1hC,MAC3BW,EAAO+gC,EAAmB/gC,KAC1BgvB,EAAU+R,EAAmB/R,QAGjC,GAAIptB,EAAK8sB,SAAU,CAGjB,IAuBN,SAAgBrvB,GACd,MAAQ,eAAe0C,KAAK1C,EAE9B,CA1BWu+B,CAAOv+B,GACV,OAGFA,EAwBN,SAAwBA,GACtB,MAAQ,QAAQ0C,KAAK1C,GAASA,EAAMoa,cAAgBpa,EAAMqR,aAE5D,CA3BcswB,CAAe3hC,EACzB,CAEAgU,EAAKlR,QAAQ,CACXrC,KAAM,OACNT,MAAOA,EACPW,KAAMA,EACNgvB,QAASA,GAAW2R,EAAathC,IAtBnC,CAwBF,2BCtCF,IAAIo9B,EAAa,IAAIC,YAAY,GAC7BC,EAAa,IAAID,YAAY,GAC7BuE,EAAa,IAAIvE,YAAY,GAC7BwE,EAAa,IAAIxE,YAAY,GAC7ByE,EAAa,IAAIzE,YAAY,GAC7B0E,EAAa,IAAI1E,YAAY,GAOjCjgC,EAAOC,QAAU,CACf8wB,KAAM,SAAcna,GAClB,IAqCmBwpB,EACjB39B,EACAmB,EAvCEuB,EAAOyR,EAAKzR,KACZsF,EAASmM,EAAKnM,OAElB,IAAIjJ,MAAM2D,EAAK1B,YAA4B,WAAd0B,EAAK5B,OAId,eAAhBkH,EAAOpH,OA+BTZ,GADiB29B,EA7BE31B,GA8BDhI,KAClBmB,EAAKw8B,EAAWx8B,GAEbnB,EAAKgB,WAAaihC,GAAcjiC,EAAKgB,WAAakhC,GAAc/gC,EAAGH,WAAaihC,GAAc9gC,EAAGH,WAAakhC,GAAcliC,EAAKgB,WAAau8B,GAAcv9B,EAAKgB,WAAay8B,GAAct8B,EAAGH,WAAau8B,GAAcp8B,EAAGH,WAAay8B,GAAcz9B,EAAKgB,WAAa+gC,GAAc/hC,EAAKgB,WAAaghC,GAAc7gC,EAAGH,WAAa+gC,GAAc5gC,EAAGH,WAAaghC,MASjVhhC,EArCA0B,EAAK1B,YAsCb,IAAQA,GAAa,IAtCvC,CAqCJ,IAA8BA,EAjCtBytB,EAAS1tB,OAAOohC,cAAcz/B,EAAK1B,WACnCohC,EAAU,CACZxhC,KAAM,OACNE,KAAM,SACNX,MAAOsuB,EACPA,OAAQA,EACRztB,UAAW0B,EAAK1B,YA+BtB,SAAqBytB,EAAQ4T,GAC3B,MAAmB,eAAfA,GAA8C,mBAAfA,EACzB,WAAWx/B,KAAK4rB,GAIlB,oBAAoB5rB,KAAK4rB,EAEnC,EArCQ6T,CAAY7T,EAAQzmB,EAAOpH,QAC7BwhC,EAAQtS,SAAU,GAEpB3b,EAAKlR,QAAQm/B,EAbb,CAcF,0BC+BF,SAASG,EAAeC,EAAYx6B,EAAQy6B,GAI1C,IAHA,IAAI5jC,EAAI2jC,EACJE,GAAeD,EAAM5jC,GAAK,EAAIA,EAAImJ,EAAOxH,YAAYtC,SAAW8J,EAAOxH,YAAY3B,GAEhF6jC,GAAoC,SAArBA,EAAY9hC,MAAwC,WAArB8hC,EAAY5hC,OAAsB4hC,EAAY5S,SAAW,KAAKjtB,KAAK6/B,EAAYviC,QAClIsiC,EAAM5jC,IAAMA,IACZ6jC,GAAeD,EAAM5jC,GAAK,EAAIA,EAAImJ,EAAOxH,YAAYtC,SAAW8J,EAAOxH,YAAY3B,GAGrF,OAAOsG,KAAKw9B,IAAIH,EAAa3jC,EAC/B,CAEA,SAAS+jC,EAAalgC,EAAMvC,GAC1B,OAAOuC,GAAsB,SAAdA,EAAK9B,MAAiC,WAAd8B,EAAK5B,OAAsB4B,EAAKotB,SAAWptB,EAAKvC,QAAUA,CACnG,CAhFA5C,EAAOC,QAAU,CACfqlC,WAAW,EACXlU,KAAM,SAAcN,GAClB/f,KAAKu0B,UAAYxU,EAAI1hB,MAAMxI,SAAS,IACtC,EACAmqB,KAAM,SAAcna,GAClB,IAAIzR,EAAOyR,EAAKzR,KAGXA,EAAKotB,SAUd,SAAwB3b,EAAM2uB,GAC5B,IAAI3iC,EAAQgU,EAAKzR,KAAKvC,MAClBgY,EAAQhE,EAAKgE,MACbnQ,EAASmM,EAAKnM,OAIlB,MAAoB,mBAAhBA,EAAOpH,MAA6C,eAAhBoH,EAAOpH,MAuBjD,SAAyBT,EAAOgY,EAAOnQ,EAAQ86B,GAC7C,MAAc,MAAV3iC,EAgCN,SAA0CgY,EAAOnQ,GAE/C,GAAa,MAATmQ,EACF,OAAO,EAGT,IAAI4qB,EAAqBR,EAAepqB,EAAQ,EAAGnQ,GAC/CnJ,EAAIsZ,EAAQ4qB,EAAqB,EACjCC,EAAkBnkC,EAAImJ,EAAOxH,YAAYtC,QAAU8J,EAAOxH,YAAY3B,GAE1E,GAAIkkC,EAAoB,CAEtB,GAAIH,EAAaI,EAAiB,KAChC,OAAO,EAGT,GAAIJ,EAAaI,EAAiB,KAMhC,OAAOJ,EAHPI,GADAnkC,EAAIA,GADJkkC,EAAqBR,EAAe1jC,EAAI,EAAGmJ,IACd,GACPA,EAAOxH,YAAYtC,QAAU8J,EAAOxH,YAAY3B,GAGjC,IAEzC,CACA,OAAO,CACT,CAzDWokC,CAAiC9qB,EAAOnQ,GAGnC,MAAV7H,EAwDN,SAA0CgY,EAAOnQ,GAE/C,GAAa,MAATmQ,EACF,OAAO,EAGT,IAAI+qB,EAAqBX,EAAepqB,EAAQ,EAAGnQ,GAAQ,GACvDnJ,EAAIsZ,EAAQ+qB,EAAqB,EACjCC,EAAsBtkC,GAAK,GAAKmJ,EAAOxH,YAAY3B,GAGvD,SAAIqkC,IAAsBN,EAAaO,EAAqB,SAIxDP,EAAaO,EAAqB,OAGpCA,GADAtkC,EAAIA,GADJqkC,EAAqBX,EAAe1jC,EAAI,EAAGmJ,GAAQ,IACtB,GACHA,EAAOxH,YAAYtC,QAAU8J,EAAOxH,YAAY3B,GAGnEqkC,GAAsBN,EAAaO,EAAqB,KAGnE,CA/EWC,CAAiCjrB,EAAOnQ,MAG7C86B,IAAY,OAAOjgC,KAAK1C,KAIpB,kBAAkB0C,KAAK1C,EAEjC,CArCYkjC,CAAgBljC,EAAOgY,EAAOnQ,EAAQ86B,IASlD,SAA8B3iC,EAAOgY,EAAOnQ,GAC1C,MAAc,MAAV7H,EAEe,IAAVgY,IAAgBnQ,EAAOwnB,SAElB,MAAVrvB,GAII,SAAS0C,KAAK1C,EAExB,CAjBUmjC,CAAqBnjC,EAAOgY,EAAOnQ,EAC7C,CAlBQu7B,CAAepvB,EAAM7F,KAAKu0B,mBACrBngC,EAAKotB,OAEhB,0BClBFvyB,EAAOC,QAAU,CACf4wB,UAAW,SAAmBC,GAC5B,OAAOA,EAAI1hB,MAAMxI,SAAS,IAC5B,EACAmqB,KAAM,SAAcna,GAClB,IAAIzR,EAAOyR,EAAKzR,KAEE,YAAdA,EAAK5B,MAAuB4B,EAAKm7B,kBAAmB9+B,MAAM2D,EAAK1B,aAGnE0B,EAAKvC,MAAQ,OAASuC,EAAK1B,UAAUxC,SAAS,IAAM,WAC7CkE,EAAKm7B,gBACd,iCClBF,SAAS9M,EAAmBX,GAAO,GAAI9xB,MAAMC,QAAQ6xB,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGmyB,EAAO1yB,MAAM8xB,EAAIlyB,QAASW,EAAIuxB,EAAIlyB,OAAQW,IAAOmyB,EAAKnyB,GAAKuxB,EAAIvxB,GAAM,OAAOmyB,CAAM,CAAS,OAAO1yB,MAAM0B,KAAKowB,EAAQ,CAElM,IAAIoT,EAAW,EAAQ,OAGnBC,EADW,EAAQ,OACgBA,wBAyCvC,SAASC,EAA4BC,EAAaC,EAAOzrB,GAOvD,IANA,IAAIzV,EAAOihC,EAAYjhC,KAGnBmhC,EAAoB1+B,KAAK2+B,KAAK3rB,EAAQ,GACtCtZ,EAAI,EAEDA,EAAIglC,GAAmB,CAC5B,IAAIrB,EAAarqB,EAAQ,EAAItZ,EAAI,EAC7BiD,OAAQ,EACRD,OAAO,EAiBX,GAfU,IAANhD,GACFiD,EAAQ8hC,EACR/hC,EAAO8hC,EAAYzD,SAASsC,KAE5B1gC,EAAQ0hC,EAASO,WAAW,CAC1BnjC,KAAM,cACNJ,YAAa,GAAGH,OAAO0wB,EAAmBruB,EAAKlC,YAAY0I,MAAMiP,EAAQtZ,EAAGsZ,IAAS,CAACyrB,EAAMlhC,SAG9Fb,EAAO2hC,EAASO,WAAW,CACzBnjC,KAAM,cACNJ,YAAa,GAAGH,OAAO0wB,EAAmBruB,EAAKlC,YAAY0I,MAAMs5B,EAAYrqB,EAAQtZ,QAIrFiD,EAAMkiC,eAAeniC,GAAO,CAC9B,IAAK,IAAI0E,EAAI,EAAGA,EAAI,EAAI1H,EAAI,EAAG0H,IAC7Bo9B,EAAYzD,SAASsC,GAAYn5B,SAkBnC,OAfAu6B,EAAM3gC,QAAQ,CACZrC,KAAM,aACNU,WAAkB,IAANzC,GAA+B,eAApBiD,EAAMY,KAAK9B,KAAwBkB,EAAMY,KAAO,CACrE9B,KAAM,QACNW,WAAW,EACXD,WAAYQ,EAAMY,MAEpBN,WAAY,CACVxB,KAAM,aACNE,KAAM,QACNd,KAAM,EACNmB,GAAI,EACJkB,QAAQ,KAGLmgC,CACT,CAEA3jC,GACF,CAEA,OAAOsZ,CACT,CAGA,SAAS8rB,EAA8BN,EAAaC,EAAOzrB,GAKzD,IAJA,IAAIzV,EAAOihC,EAAYjhC,KAGnB7D,EAAI,EACDA,EAAIsZ,GAAO,CAChB,IAAI+rB,EAAgBP,EAAYzD,SAASrhC,GAEzC,GAAgC,eAA5BqlC,EAAcxhC,KAAK9B,MAAyBsjC,EAAcxhC,KAAKN,WAAWC,OAAQ,CACpF,IAAIR,EAAOqiC,EAAchE,WACrBp+B,OAAQ,EAkBZ,GAhBuB,UAAnBD,EAAKa,KAAK9B,MAAqBiB,EAAKa,KAAKnB,YAC3CM,EAAOA,EAAKq+B,YAGVrhC,EAAI,IAAMsZ,EAEY,WADxBrW,EAAQ8hC,GACElhC,KAAK9B,MAAqBkB,EAAMY,KAAKnB,YAC7CO,EAAQA,EAAMo+B,YAGhBp+B,EAAQ0hC,EAASO,WAAW,CAC1BnjC,KAAM,cACNJ,YAAa,GAAGH,OAAO0wB,EAAmBruB,EAAKlC,YAAY0I,MAAMrK,EAAI,EAAGsZ,EAAQ,OAIhFtW,EAAKmiC,eAAeliC,GAAQ,CAC9B,IAAK,IAAIyE,EAAI1H,EAAG0H,EAAI4R,EAAO5R,IACzBo9B,EAAYzD,SAASrhC,EAAI,GAAGwK,SAK9B,OAFAo6B,EAAwBS,EAAcxhC,KAAKN,YAEpCvD,CACT,CACF,CAEAA,GACF,CACA,OAAOsZ,CACT,CAGA,SAASgsB,EAA8BR,EAAaC,EAAOzrB,GACzD,IAAIzV,EAAOihC,EAAYjhC,KAGvB,GAAwB,eAApBkhC,EAAMlhC,KAAK9B,MAAyBgjC,EAAMlhC,KAAKN,WAAWC,OAAQ,CACpE,IAAIP,EAAQ8hC,EAAM1D,WACdr+B,OAAO,EAEa,UAApBC,EAAMY,KAAK9B,MAAqBkB,EAAMY,KAAKnB,YAC7CO,EAAQA,EAAMo+B,YAGhB,IAAIkE,OAAc,EAelB,GAdwB,gBAApBtiC,EAAMY,KAAK9B,MACbwjC,EAActiC,EAAMY,KAAKlC,YAAYtC,OACrC2D,EAAO2hC,EAASO,WAAW,CACzBnjC,KAAM,cACNJ,YAAa,GAAGH,OAAO0wB,EAAmBruB,EAAKlC,YAAY0I,MAAMiP,EAAQisB,EAAajsB,SAGxFisB,EAAc,EAES,WADvBviC,EAAO8hC,EAAYzD,SAAS/nB,EAAQ,IAC3BzV,KAAK9B,MAAqBiB,EAAKa,KAAKnB,YAC3CM,EAAOA,EAAKq+B,aAIZr+B,EAAKmiC,eAAeliC,GAAQ,CAC9B,IAAK,IAAIyE,EAAI4R,EAAQisB,EAAa79B,EAAI4R,EAAO5R,IAC3Co9B,EAAYzD,SAAS/nB,EAAQisB,GAAa/6B,SAK5C,OAFAo6B,EAAwBG,EAAMlhC,KAAKN,YAE5B+V,EAAQisB,CACjB,CACF,CACA,OAAOjsB,CACT,CA3KA5a,EAAOC,QAAU,CACf4xB,YAAa,SAAqBjb,GAMhC,IALA,IAAIzR,EAAOyR,EAAKzR,KAIZyV,EAAQ,EACLA,EAAQzV,EAAKlC,YAAYtC,QAAQ,CACtC,IAAI0lC,EAAQzvB,EAAK+rB,SAAS/nB,GAG1B,IAFAA,EAAQhT,KAAKkD,IAAI,EAAGq7B,EAA4BvvB,EAAMyvB,EAAOzrB,MAEhDzV,EAAKlC,YAAYtC,OAC5B,MAMF,GAHA0lC,EAAQzvB,EAAK+rB,SAAS/nB,IACtBA,EAAQhT,KAAKkD,IAAI,EAAG47B,EAA8B9vB,EAAMyvB,EAAOzrB,MAElDzV,EAAKlC,YAAYtC,OAC5B,MAGF0lC,EAAQzvB,EAAK+rB,SAAS/nB,GACtBA,EAAQhT,KAAKkD,IAAI,EAAG87B,EAA8BhwB,EAAMyvB,EAAOzrB,IAE/DA,GACF,CACF,iCC1CF,IAAIqrB,EAAW,EAAQ,OAEnB/I,EAAW,EAAQ,OACnB4J,EAAoB5J,EAAS4J,kBAC7BC,EAAoB7J,EAAS6J,kBASjC/mC,EAAOC,QAAU,CACf6xB,YAAa,SAAqBlb,GAChC,IAAIzR,EAAOyR,EAAKzR,KAIZ6hC,EAAiB,CAAC,EAElBj/B,EAAQ++B,EAAkB3hC,GAAMhC,QAAO,SAAUsJ,GACnD,IAAIw6B,EAAUx6B,EAAOw5B,EAASO,WAAW/5B,GAAMm2B,aAAe,OAG9D,OAAIoE,EAAevY,eAAewY,KAIlCD,EAAeC,GAAWx6B,GACnB,EACT,IAGAmK,EAAKlR,QAAQqhC,EAAkBh/B,GACjC,0BC1BF/H,EAAOC,QAAU,CACf6xB,YAAa,SAAqBlb,GAChC,IAAIzR,EAAOyR,EAAKzR,KACZsF,EAASmM,EAAKnM,OAGlB,GAAKy8B,EAASz8B,EAAOpH,MAArB,CAIA,IAAI8jC,EAAU,IAAIp5B,IAElB,GAAKq5B,EAAcjiC,EAAMgiC,IAAaA,EAAQt2B,KAA9C,CAIA,IAAIw2B,EAAiB,CACnBhkC,KAAM,iBACNJ,YAAalC,MAAM0B,KAAK0kC,EAAQt0B,QAAQ1E,OAAOnG,KAAI,SAAU0M,GAC3D,OAAOyyB,EAAQ/5B,IAAIsH,EACrB,KAGFwyB,EAASz8B,EAAOpH,MAAMuT,EAAK2rB,YAAa8E,EATxC,CANA,CAgBF,GAGF,IAAIH,EAAW,CACb7hC,OAAQ,SAAgBuR,EAAMywB,GACjBzwB,EAAKzR,KAGX6J,KAAOq4B,CACd,EACAh9B,MAAO,SAAeuM,EAAMywB,GAC1B,IAAIliC,EAAOyR,EAAKzR,KAGZA,EAAKnB,UACPmB,EAAKpB,WAAasjC,EAElBzwB,EAAKlR,QAAQ2hC,EAEjB,GAGF,SAASD,EAAcrjC,EAAYojC,GACjC,IAAKpjC,EAEH,OAAO,EAGT,IAAIV,EAAOU,EAAWV,KAGtB,GAAa,gBAATA,EAAwB,CAC1B,IAAIiB,EAAOP,EAAWO,KAClBC,EAAQR,EAAWQ,MAGvB,OAAO6iC,EAAc9iC,EAAM6iC,IAAYC,EAAc7iC,EAAO4iC,EAC9D,CAAO,GAAa,SAAT9jC,EAAiB,CAC1B,GAAwB,SAApBU,EAAWR,MAAyC,MAAtBQ,EAAWmtB,OAC3C,OAAO,EAGT,IAAItuB,EAAQmB,EAAWnB,MAKvB,OAFAukC,EAAQj5B,IAAItL,EAAOmB,IAEZ,CACT,CAAO,MAAa,mBAATV,IAA8BU,EAAWkuB,UAC3CluB,EAAWd,YAAY4C,OAAM,SAAU9B,GAC5C,OAAOqjC,EAAcrjC,EAAYojC,EACnC,GAIJ,gCCxFAnnC,EAAOC,QAAU,IAAI8N,IAAI,CAEzB,CAAC,mCAAoC,EAAQ,OAG7C,CAAC,uBAAwB,EAAQ,QAGjC,CAAC,wCAAyC,EAAQ,QAGlD,CAAC,4BAA6B,EAAQ,MAGtC,CAAC,mBAAoB,EAAQ,QAG7B,CAAC,0BAA2B,EAAQ,QAGpC,CAAC,8BAA+B,EAAQ,QAGxC,CAAC,kBAAmB,EAAQ,OAG5B,CAAC,wBAAyB,EAAQ,QAGlC,CAAC,qBAAsB,EAAQ,OAG/B,CAAC,4BAA6B,EAAQ,QAGtC,CAAC,8BAA+B,EAAQ,QAGxC,CAAC,8BAA+B,EAAQ,OAGxC,CAAC,mBAAoB,EAAQ,QAG7B,CAAC,UAAW,EAAQ,QAGpB,CAAC,2BAA4B,EAAQ,kCClCrC/N,EAAOC,QAAU,CACfqyB,WAAY,SAAoB1b,GAIZ,UAHPA,EAAKzR,KAGP5B,OAeb,SAAyBqT,GACvB,IAAIzR,EAAOyR,EAAKzR,KAGE,IAAdA,EAAK1C,MAAc0C,EAAKvB,KAI5BuB,EAAK5B,KAAO,WACL4B,EAAK1C,KACd,CApBI6kC,CAAgB1wB,GAsBpB,SAAwBA,GACtB,IAAIzR,EAAOyR,EAAKzR,KAGE,IAAdA,EAAK1C,MAAc0C,EAAKvB,KAI5BuB,EAAK5B,KAAO,WACL4B,EAAK1C,KACd,CA7BI8kC,CAAe3wB,GA+BnB,SAAyBA,GACvB,IAAIzR,EAAOyR,EAAKzR,KAGE,IAAdA,EAAK1C,MAA0B,IAAZ0C,EAAKvB,IAI5BgT,EAAK4wB,WAAW9hC,QAAQkR,EAAK4wB,WAAWriC,KAAKpB,WAC/C,CArCI0jC,CAAgB7wB,GAClB,iCC9BF,IACIsvB,EADW,EAAQ,OACgBA,wBAmFvC,SAASwB,EAAkB7iC,GACzB,OAAOA,EAAWC,SAA+B,MAApBD,EAAWtB,MAAoC,MAApBsB,EAAWtB,MAAoC,UAApBsB,EAAWtB,OAAqBsB,EAAWjB,GAChI,CAEA,SAAS+jC,EAAc9iC,GACrB,IAAIpC,OAAO,EACPmB,OAAK,EAcT,MAbwB,MAApBiB,EAAWtB,KACbd,EAAO,EACsB,MAApBoC,EAAWtB,KACpBd,EAAO,EACsB,MAApBoC,EAAWtB,MACpBd,EAAO,EACPmB,EAAK,IAELnB,EAAOoC,EAAWpC,KACdoC,EAAWjB,KACbA,EAAKiB,EAAWjB,KAGb,CAAEnB,KAAMA,EAAMmB,GAAIA,EAC3B,CA7FA5D,EAAOC,QAAU,CACfoyB,WAAY,SAAoBzb,GAC9B,IAAIzR,EAAOyR,EAAKzR,KAIhB,GAAoB,gBAHPyR,EAAKnM,OAGPpH,MAA2BuT,EAAKgE,MAA3C,CAIA,IAAIgtB,EAAkBhxB,EAAKixB,qBAE3B,GAAKD,EAIL,GAAkC,eAA9BA,EAAgBziC,KAAK9B,KAAuB,CAC9C,IAAKukC,EAAgBjF,WAAW8D,eAAe7vB,EAAK+rB,YAClD,OAGF,IAAImF,EAAiBH,EAAcC,EAAgBziC,KAAKN,YACpDkjC,EAAsBD,EAAerlC,KACrCulC,EAAoBF,EAAelkC,GAEnCqkC,EAAkBN,EAAcxiC,EAAKN,YACrCqjC,EAAWD,EAAgBxlC,KAC3B0lC,EAASF,EAAgBrkC,GAM7B,GAAIgkC,EAAgBziC,KAAKN,WAAWC,SAAWK,EAAKN,WAAWC,SAAW4iC,EAAkBE,EAAgBziC,KAAKN,cAAgB6iC,EAAkBviC,EAAKN,YACtJ,OAeFM,EAAKN,WAAWtB,KAAO,QACvB4B,EAAKN,WAAWpC,KAAOslC,EAAsBG,EACzCF,GAAqBG,EACvBhjC,EAAKN,WAAWjB,GAAKokC,EAAoBG,SAElChjC,EAAKN,WAAWjB,IAErB8jC,EAAkBE,EAAgBziC,KAAKN,aAAe6iC,EAAkBviC,EAAKN,eAC/EM,EAAKN,WAAWC,QAAS,GAG3B8iC,EAAgB97B,QAClB,KAAO,CACL,IAAK87B,EAAgBnB,eAAe7vB,EAAK+rB,YACvC,OAGFuD,EAAwB/gC,EAAKN,YAC7B+iC,EAAgB97B,QAClB,CA5DA,CA6DF,2BC1EF9L,EAAOC,QAAU,CACfoK,MAAO,SAAeuM,GACpB,IAAIzR,EAAOyR,EAAKzR,KACZsF,EAASmM,EAAKnM,OAEdi4B,EAAY9rB,EAAK+rB,WAEjBx9B,EAAKnB,WAAa0+B,IAIF,eAAhBj4B,EAAOpH,KAETuT,EAAK2rB,YAAY78B,QAAQP,GACA,WAAhBsF,EAAOpH,MAEhBuT,EAAK9K,SAET,2BCnBF,SAAS0nB,EAAmBX,GAAO,GAAI9xB,MAAMC,QAAQ6xB,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGmyB,EAAO1yB,MAAM8xB,EAAIlyB,QAASW,EAAIuxB,EAAIlyB,OAAQW,IAAOmyB,EAAKnyB,GAAKuxB,EAAIvxB,GAAM,OAAOmyB,CAAM,CAAS,OAAO1yB,MAAM0B,KAAKowB,EAAQ,CAElM7yB,EAAOC,QAAU,CACfoK,MAAO,SAAeuM,GACpB,IAAIzR,EAAOyR,EAAKzR,KACZsF,EAASmM,EAAKnM,OAEdi4B,EAAY9rB,EAAK+rB,WAErB,IAAIx9B,EAAKnB,WAAc0+B,GAsC3B,SAAgC9rB,GAC9B,IAAInM,EAASmM,EAAKnM,OACdmQ,EAAQhE,EAAKgE,MAGjB,GAAoB,gBAAhBnQ,EAAOpH,KACT,OAAO,EAGT,IAAI8gC,EAAe15B,EAAOxH,YAAY2X,EAAQ,GAC9C,OAAoB,MAAhBupB,IAKsB,kBAAtBA,EAAa9gC,MAAkD,WAAtB8gC,EAAa5gC,QAKhC,SAAtB4gC,EAAa9gC,MAAyC,YAAtB8gC,EAAa5gC,KAKnD,CA1DS6gC,CAAuBxtB,MAMA,gBAAxB8rB,EAAUv9B,KAAK9B,MAA0C,WAAhBoH,EAAOpH,MAOhC,eAAhBoH,EAAOpH,MAAiD,SAAxBq/B,EAAUv9B,KAAK9B,MAA2C,mBAAxBq/B,EAAUv9B,KAAK9B,MAIrF,GAA4B,gBAAxBq/B,EAAUv9B,KAAK9B,KAAwB,CACzC,IAAImkC,EAAa5wB,EAAK2rB,YACO,gBAAzBiF,EAAWriC,KAAK9B,MAGlBmkC,EAAW9hC,QAAQ,CACjBrC,KAAM,cACNJ,YAAa,GAAGH,OAAO0wB,EAAmB/oB,EAAOxH,YAAY0I,MAAM,EAAGiL,EAAKgE,QAAS4Y,EAAmBkP,EAAUv9B,KAAKlC,aAAcuwB,EAAmB/oB,EAAOxH,YAAY0I,MAAMiL,EAAKgE,MAAQ,MAGnM,MACEhE,EAAKlR,QAAQg9B,EAAUv9B,KAE3B,gCChCF,SAASquB,EAAmBX,GAAO,GAAI9xB,MAAMC,QAAQ6xB,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGmyB,EAAO1yB,MAAM8xB,EAAIlyB,QAASW,EAAIuxB,EAAIlyB,OAAQW,IAAOmyB,EAAKnyB,GAAKuxB,EAAIvxB,GAAM,OAAOmyB,CAAM,CAAS,OAAO1yB,MAAM0B,KAAKowB,EAAQ,CAElM,IAAIuV,OAAS,EAUTC,EAAK,CAAC,EAKNC,OAAK,EAKLC,OAAQ,EAEZ,SAASC,EAAMj9B,EAAOgW,GACpB,OAAK8mB,EAAGzmC,QAAQu7B,iBAKX5xB,GAAUgW,EAIR,CACLknB,YAAal9B,EAAMk9B,YACnBC,UAAWnnB,EAAImnB,UACfC,UAAWp9B,EAAMo9B,UACjBC,QAASrnB,EAAIqnB,QACbC,YAAat9B,EAAMs9B,YACnBC,UAAWvnB,EAAIunB,WATRv9B,GAASgW,EALT,IAgBX,CAEA,IAKIwnB,EAAc,CAAC,EAAE,EAAG,EAAG,SAAUC,EAAIC,GACvCV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIE,EAAIC,EAAIC,EAAIH,EAAOI,EAAOC,EAAOC,GACxDhB,EAAQC,EAAMS,EAAOM,GACrBjB,EAAKkB,EAAK,CACRnmC,KAAM,SACN2L,KAAMk6B,EACN95B,MAAOq6B,EAAWL,IACjBM,EAAIT,EAAOM,GAASD,GACzB,GAAI,CAAC,EAAG,EAAG,SAAUN,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,EAAG,EAAG,WACTT,EAAQ,KAAKD,EAAK,EACpB,GAAI,CAAC,EAAG,EAAG,SAAUU,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIE,EAAID,EAAOI,GAClCd,EAAQC,EAAMS,EAAOI,GAAOf,EAAKU,EAAKE,CACxC,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7Cf,EAAQC,EAAMS,EAAOK,GAErB,IAAIK,EAAO,KAEPN,IACFM,EAAOD,EAAIT,GAASI,EAAOC,GAASD,IAGtCf,EAAKkB,EAAK,CACRnmC,KAAM,cACNiB,KAAM0kC,EACNzkC,MAAO4kC,GACNQ,EACL,GAAI,CAAC,EAAG,EAAG,SAAUX,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAOnBX,EANgB,IAAdU,EAAGroC,OAKW,IAAdqoC,EAAGroC,OACA6oC,EAAKR,EAAG,GAAIT,GAEZiB,EAAK,CACRnmC,KAAM,cACNJ,YAAa+lC,GACZT,GAVE,IAYT,GAAI,CAAC,EAAG,EAAG,WACTA,EAAQ,KAAKD,EAAK,EACpB,GAAI,CAAC,EAAG,EAAG,SAAUU,EAAIE,EAAID,EAAOI,GAClCd,EAAQC,EAAMS,EAAOI,GAAOf,EAAKU,EAAGlmC,OAAOomC,EAC7C,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKkB,EAAK52B,OAAOokB,OAAO,CAAE3zB,KAAM,aAAe2lC,GAAKT,EAClF,GAAI,CAAC,EAAG,EAAG,SAAUS,EAAIE,EAAID,EAAOI,GAClCd,EAAQC,EAAMS,EAAOI,GACrBf,EAAKU,EAEDE,IACFZ,EAAKkB,EAAK,CACRnmC,KAAM,aACNU,WAAYilC,EACZnkC,WAAYqkC,GACXX,GAEP,GAAI,CAAC,EAAG,EAAG,SAAUS,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAK,CAAE/kC,KAAM,IAC3C,GAAI,CAAC,EAAG,EAAG,SAAUylC,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAK,CAAE/kC,KAAM,IAC3C,GAAI,CAAC,EAAG,EAAG,SAAUylC,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAK,CAAE/kC,KAAM,MAC3C,GAAI,CAAC,EAAG,EAAG,SAAUylC,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAK,CAAE/kC,KAAM,MAC3C,GAAI,CAAC,EAAG,EAAG,SAAUylC,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7Cf,EAAQC,EAAMS,EAAOK,GACrBhB,EAAK,CACH/kC,KAAM,YACNyuB,UAAWkX,EAEf,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7Cf,EAAQC,EAAMS,EAAOK,GACrBhB,EAAK,CACH/kC,KAAM,YACN0uB,UAAU,EACVD,UAAWkX,EAEf,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7Cf,EAAQC,EAAMS,EAAOK,GACrBhB,EAAK,CACH/kC,KAAM,aACNyuB,UAAWkX,EAEf,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC7Cf,EAAQC,EAAMS,EAAOK,GACrBhB,EAAK,CACH/kC,KAAM,aACN0uB,UAAU,EACVD,UAAWkX,EAEf,GAAI,CAAC,EAAG,EAAG,SAAUF,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,EAAG,EAAG,SAAUA,EAAIC,GACvBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKvX,EAAKiY,EAAI,SAAUT,EACtD,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,IAAOX,EAAKvX,EAAKiY,EAAGr9B,MAAM,GAAI,SAAU48B,IAAUhW,SAAU,CACnF,GAAI,CAAC,GAAI,EAAG,SAAUyW,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,IAAOX,EAAKvX,EAAKiY,EAAI,UAAWT,IAAUjI,iBAAkB,CACnF,GAAI,CAAC,GAAI,EAAG,SAAU0I,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKvX,EAAKiY,EAAI,UAAWT,EACvD,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAsxB9B,SAAyBpsB,EAASwtB,GAChC,IAAIzX,EAA0B,MAAf/V,EAAQ,GACnB0tB,EAAe1tB,EAAQ/E,QAAQ,KAE/B5G,EAAO2L,EAAQvQ,MAAM,GAAqB,IAAlBi+B,EAAsBA,GAAgB,GAC9DhnC,OAAQ,EAGRinC,GAAgC,IAAlBD,GAAuBE,EAAkBC,uBAAuBx5B,GAG9Ey5B,GAAqC,IAAlBJ,GAAuBE,EAAkBG,qBAAqB15B,GAErF,GAAIs5B,EACFjnC,EAAQ2N,EACRA,EAAO,wBACF,GAAIy5B,EACTpnC,EAAQ2N,MACH,CACL,IAAKu5B,EAAkBI,YAAY35B,GACjC,MAAM,IAAI45B,YAAY,kCAAoC55B,EAAO,KAKnE,GAFA3N,EAAQsZ,EAAQvQ,MAAMi+B,EAAe,GAAI,IAEpCE,EAAkBM,aAAa75B,EAAM3N,GACxC,MAAM,IAAIunC,YAAY,WAAa55B,EAAO,4BAA8B3N,EAAQ,IAEpF,CAEA,OAAO4mC,EAAK,CACVnmC,KAAM,kBACNkN,KAAMA,EACN3N,MAAOA,EACPqvB,SAAUA,EACVQ,UAAWoX,EACXnX,OAAQsX,EACRK,cAAeP,EAAkBQ,iBAAiB/5B,IAASA,EAC3Dg6B,eAAgBT,EAAkBU,kBAAkB5nC,IAAUA,GAC7D8mC,EACL,CA9zBmClX,CAAgBwW,EAAIT,EACvD,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKvX,EAAKiY,EAAI,UAAWT,EACvD,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKvX,EAAKiY,EAAI,MAAOT,EACnD,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKvX,EAAKiY,EAAI,MAAOT,EACnD,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GAg9B1B,IAA2BwB,EAAMC,EAC3BnZ,EAh9BJgX,EAAQC,EAAMS,EAAOA,GA+8BIwB,EA/8B0BzB,EA+8BpB0B,EA/8BwBnC,EAg9BnDhX,EAAY9qB,OAAOgkC,EAAK9+B,MAAM,IAh9BN28B,EAk9BxB/W,EAAY,GAAKA,GAAaoZ,EACzBnB,EAAK,CACVnmC,KAAM,gBACNE,KAAM,SACNU,OAAQstB,EACRA,UAAWA,GACVmZ,GAGE3Z,EAAK0Z,EAAM,UAAWC,EA19B/B,GAAI,CAAC,GAAI,EAAG,SAAU1B,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKvX,EAAKiY,EAAI,OAAQT,EACpD,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKvX,EAAKiY,EAAI,OAAQT,EACpD,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAgiC9B,SAA8BmC,EAAMC,GAClC,IAAIlZ,EAAeiZ,EAAK9+B,MAAM,GAAI,GAC9B4lB,EAAYqZ,EAAuBpZ,GAEvC,GAAIqZ,EAAYpc,eAAe8C,GAC7B,OAAOiY,EAAK,CACVnmC,KAAM,gBACNE,KAAM,OACNU,OAAQ4mC,EAAYtZ,GACpBA,UAAWA,EACXC,aAAcA,GACbkZ,GAML,IAAIjC,EAAc,KACdE,EAAY,KACZC,EAAU,KACVC,EAAc,KAEd6B,IACFjC,EAAciC,EAAQjC,YACtBE,EAAY+B,EAAQ/B,UACpBC,EAAU8B,EAAQ9B,QAClBC,EAAc6B,EAAQ7B,aAGxB,IAAIiC,EAAS,WACTpB,OAAM,EAENqB,EAAQ,CAEZha,EAAK0Z,EAAK9+B,MAAM,EAAG,GAAI,SAAU88B,EAAc,CAC7CE,UAAWA,EACXC,QAASA,EACTC,YAAaA,EACbJ,YAAaA,EACbC,UAAWD,GAAe,EAC1BK,UAAWD,GAAe,GACxB,OAQJ,IALAkC,EAAM,GAAGxY,SAAU,EAGnBkY,EAAOA,EAAK9+B,MAAM,GAEX8+B,EAAK9pC,OAAS,GAAG,CACtB,IAAIub,EAAU,MAGTA,EAAUuuB,EAAK1tB,MAAMiuB,MAAe9uB,EAAUuuB,EAAK1tB,MAAMkuB,KACxDxC,IACFiB,EAAM,CACJf,UAAWA,EACXC,QAASA,EACTC,YAAaA,EACbJ,YAAaA,EACbC,UAAWD,GAAevsB,EAAQ,GAAGvb,OACrCmoC,UAAWD,GAAe3sB,EAAQ,GAAGvb,SAGzCoqC,EAAMpjC,KAAKopB,EAAK7U,EAAQ,GAAI,UAAWwtB,IACvCe,EAAOA,EAAK9+B,MAAMuQ,EAAQ,GAAGvb,UAItBub,EAAUuuB,EAAK1tB,MAAM+tB,MACtBrC,IACFiB,EAAM,CACJf,UAAWA,EACXC,QAASA,EACTC,YAAaA,EACbJ,YAAaA,EACbC,YAAaD,EACbK,YAAaD,IAGjBkC,EAAMpjC,KAAKopB,EAAK7U,EAAQ,GAAI,SAAUwtB,IACtCe,EAAOA,EAAK9+B,MAAM,GAExB,CAEA,OAAOo/B,CACT,CAtnCmCG,CAAqBlC,EAAIC,EAC5D,GAAI,CAAC,GAAI,EAAG,SAAUD,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,GAAI,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACjCV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIE,EAAID,EAAOI,GACnCd,EAAQC,EAAMS,EAAOI,GACrBL,EAAGlkC,QAAS,EACZwjC,EAAKU,CACP,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GACrBX,EAAKkB,EAAK,CACRnmC,KAAM,aACNE,KAAMylC,EACNlkC,QAAQ,GACPyjC,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GACrBX,EAAKkB,EAAK,CACRnmC,KAAM,aACNE,KAAMylC,EACNlkC,QAAQ,GACPyjC,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GACrBX,EAAKkB,EAAK,CACRnmC,KAAM,aACNE,KAAMylC,EACNlkC,QAAQ,GACPyjC,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GACrB,IAAItgC,EAAQwiC,EAASnC,GACrBV,EAAKkB,EAAK,CACRnmC,KAAM,aACNE,KAAM,QACNd,KAAMkG,EAAM,GACZ/E,GAAI+E,EAAM,GACV7D,QAAQ,GACPyjC,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GACrBX,EAAKkB,EAAK,CACRnmC,KAAM,aACNE,KAAM,QACNd,KAAM0oC,EAASnC,GAAI,GACnBlkC,QAAQ,GACPyjC,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GACrB,IAAItgC,EAAQwiC,EAASnC,GACrBV,EAAKkB,EAAK,CACRnmC,KAAM,aACNE,KAAM,QACNd,KAAMkG,EAAM,GACZ/E,GAAI+E,EAAM,GACV7D,QAAQ,GACPyjC,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9Cf,EAAQC,EAAMS,EAAOK,GACrB,IAAIjY,EAAU7tB,OAAOwlC,GACjBz4B,EAAOq6B,EAAuBvZ,GAClC,IAAKgX,EAAGzmC,QAAQwpC,0BAA4BP,EAAYpc,eAAele,GACrE,MAAM,IAAI45B,YAAY,iCAAmC55B,EAAO,MAGlEs6B,EAAYt6B,GAAQy4B,EAAGrY,YAEvB2X,EAAKkB,EAAK,CACRnmC,KAAM,QACNW,WAAW,EACXuM,KAAMA,EACN8gB,QAASA,EACTptB,OAAQ+kC,EAAGrY,YACX5sB,WAAYmlC,GACXX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9Cf,EAAQC,EAAMS,EAAOK,GACrBhB,EAAKkB,EAAK,CACRnmC,KAAM,QACNW,WAAW,EACXC,OAAQ+kC,EAAGrY,YACX5sB,WAAYmlC,GACXX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9Cf,EAAQC,EAAMS,EAAOK,GACrBhB,EAAKkB,EAAK,CACRnmC,KAAM,QACNW,WAAW,EACXD,WAAYmlC,GACXX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9Cf,EAAQC,EAAMS,EAAOK,GACrBhB,EAAKkB,EAAK,CACRnmC,KAAM,iBACN4uB,UAAU,EACVhvB,YAAaimC,GACZX,EACL,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIE,EAAIC,EAAIF,EAAOI,EAAOC,GAC9Cf,EAAQC,EAAMS,EAAOK,GACrBhB,EAAKkB,EAAK,CACRnmC,KAAM,iBACNJ,YAAaimC,GACZX,EACL,GAAI,CAAC,GAAI,EAAG,WACVA,EAAQ,KAAKD,EAAK,EACpB,GAAI,CAAC,GAAI,EAAG,SAAUU,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAK,CAACU,EACpC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIE,EAAID,EAAOI,GACnCd,EAAQC,EAAMS,EAAOI,GAAOf,EAAK,CAACU,GAAIlmC,OAAOomC,EAC/C,GAAI,CAAC,GAAI,EAAG,SAAUF,EAAIE,EAAIC,EAAIC,EAAIH,EAAOI,EAAOC,EAAOC,GACzDhB,EAAQC,EAAMS,EAAOM,GACrB8B,EAAgBrC,EAAIG,GAEpBb,EAAK,CAACkB,EAAK,CACTnmC,KAAM,aACNZ,KAAMumC,EACNplC,GAAIulC,GACHO,EAAIT,EAAOK,KAEVF,IACFd,EAAKA,EAAGxlC,OAAOsmC,GAEnB,GAAI,CAAC,GAAI,EAAG,SAAUJ,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIE,EAAID,EAAOI,GACnCd,EAAQC,EAAMS,EAAOI,GAAOf,EAAK,CAACU,GAAIlmC,OAAOomC,EAC/C,GAAI,CAAC,GAAI,EAAG,SAAUF,EAAIE,EAAIC,EAAIC,EAAIH,EAAOI,EAAOC,EAAOC,GACzDhB,EAAQC,EAAMS,EAAOM,GACrB8B,EAAgBrC,EAAIG,GAEpBb,EAAK,CAACkB,EAAK,CACTnmC,KAAM,aACNZ,KAAMumC,EACNplC,GAAIulC,GACHO,EAAIT,EAAOK,KAEVF,IACFd,EAAKA,EAAGxlC,OAAOsmC,GAEnB,GAAI,CAAC,GAAI,EAAG,SAAUJ,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKvX,EAAKiY,EAAI,SAAUT,EACtD,GAAI,CAAC,GAAI,EAAG,SAAUS,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKU,CACnC,GAAI,CAAC,GAAI,EAAG,SAAUA,EAAIC,GACxBV,EAAQC,EAAMS,EAAOA,GAAOX,EAAKvX,EAAKiY,EAAI,OAAQT,EACpD,IAKI+C,EAAS,CAAE,MAAS,KAAM,KAAQ,KAAM,IAAO,KAAM,IAAO,KAAM,IAAO,KAAM,MAAS,KAAM,MAAS,KAAM,cAAiB,KAAM,QAAW,KAAM,cAAiB,KAAM,cAAiB,KAAM,cAAiB,KAAM,SAAY,KAAM,iBAAoB,KAAM,OAAU,KAAM,iBAAoB,KAAM,QAAW,KAAM,SAAY,KAAM,SAAY,KAAM,SAAY,KAAM,UAAa,KAAM,IAAO,KAAM,gBAAmB,KAAM,OAAU,KAAM,KAAQ,KAAM,KAAQ,KAAM,YAAe,KAAM,WAAc,KAAM,aAAgB,KAAM,oBAAuB,KAAM,QAAW,KAAM,kBAAqB,KAAM,UAAa,KAAM,UAAa,KAAM,UAAa,KAAM,KAAQ,KAAM,EAAK,MAKhrBrX,EAAQ,CAAC,CAAE,EAAK,EAAG,GAAM,MAAQ,CAAE,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,GAAI,EAAK,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,KAAM,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,KAAM,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,KAAM,GAAM,MAAQ,CAAE,EAAK,GAAI,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,KAAM,GAAM,KAAM,GAAM,MAAQ,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,EAAK,GAAI,EAAK,EAAG,EAAK,EAAG,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,GAAI,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,OAAS,CAAE,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,MAAO,GAAM,QAK/txBsX,EAAQ,GAKRC,OAAY,EASZC,EAAW,CAAC,CAAC,WAAY,WAAgC,GAAI,CAAC,OAAQ,WAAkC,GAAI,CAAC,KAAM,WACrH,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,KAAM,WACT,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,WAAY,WACf,MAAO,aACT,GAAI,CAAC,YAAa,WAChB,MAAO,YACT,GAAI,CAAC,eAAgB,WACnB,MAAO,cACT,GAAI,CAAC,qglBAAsglB,WAGzglB,OADAC,EADgBtD,EAAOz8B,MAAM,GAAI,GACGoF,KAAK46B,mBAClC,iBACT,GAAI,CAAC,OAAQ,WACX,MAAO,OACT,GAAI,CAAC,OAAQ,WACX,MAAO,OACT,GAAI,CAAC,eAAgB,WACnB,MAAO,SACT,GAAI,CAAC,cAAe,WAClB,MAAO,UACT,GAAI,CAAC,OAAQ,WACX,MAAO,UACT,GAAI,CAAC,aAAc,WACjB,MAAO,UACT,GAAI,CAAC,8DAA+D,WAClE,MAAO,kBACT,GAAI,CAAC,0BAA2B,WAC9B,MAAO,QACT,GAAI,CAAC,qBAAsB,WACzB,MAAO,QACT,GAAI,CAAC,0BAA2B,WAC9B,MAAO,kBACT,GAAI,CAAC,qBAAsB,WACzB,MAAO,UACT,GAAI,CAAC,mBAAoB,WACvB,MAAO,WACT,GAAI,CAAC,QAAS,WACZ,MAAO,UACT,GAAI,CAAC,UAAW,WACd,MAAO,UACT,GAAI,CAAC,sCAAuC,WAC1C,MAAO,UACT,GAAI,CAAC,mBAAoB,WACvB,IAAIhmB,EAAI5U,KAAK46B,kBACb,GAAU,YAANhmB,GAA8B,QAAXyiB,EACrB,MAAO,WACF,GAAU,MAANziB,GAAmB,OAANA,GAAoB,YAANA,EACpC,MAAM,IAAIwkB,YAAY,0BAA4B/B,GAEpD,MAAO,UACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,SAAU,WACb,MAAO,eACT,GAAI,CAAC,SAAU,WACb,MAAO,eACT,GAAI,CAAC,UAAW,WACd,MAAO,eACT,GAAI,CAAC,UAAW,WACd,MAAO,eACT,GAAI,CAAC,SAAU,WACb,MAAO,mBACT,GAAI,CAAC,sglBAAuglB,WAG1glB,OADAsD,EADAtD,EAASA,EAAOz8B,MAAM,GAAI,GACOoF,KAAK46B,mBAC/B,qBACT,GAAI,CAAC,MAAO,WACV,MAAO,SACT,GAAI,CAAC,MAAO,WACV,MAAO,SACT,GAAI,CAAC,YAAa,WAChB,MAAO,MACT,GAAI,CAAC,QAAS,WACZ,MAAO,UACT,GAAI,CAAC,MAAO,WACM,OAAhB56B,KAAK66B,WAAkB,WACzB,GAAI,CAAC,MAAO,WACV,MAAO,KACT,GAAI,CAAC,MAAO,WACV,MAAO,KACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,QACT,GAAI,CAAC,MAAO,WACV,MAAO,MACT,GAAI,CAAC,MAAO,WACV,MAAO,KACT,GAAI,CAAC,MAAO,WACV,MAAO,KACT,GAAI,CAAC,MAAO,WACV,MAAO,OACT,GAAI,CAAC,iBAAkB,WACrB,MAAO,MACT,GAAI,CAAC,QAAS,WACZ,IAAIjmB,EAAI5U,KAAK46B,kBAAgF,OAA9D56B,KAAK86B,UAAgB,MAANlmB,GAAmB,OAANA,EAAa,UAAY,SAAgB,WACtG,GAAI,CAAC,MAAO,WACV,IAAIA,EAAI5U,KAAK46B,kBAAgF,OAA9D56B,KAAK86B,UAAgB,MAANlmB,GAAmB,OAANA,EAAa,UAAY,SAAgB,WACtG,IACImmB,EAAuB,CAAE,QAAW,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAM,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,EAAK,CAAC,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,QAAW,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,MAAS,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAE3gCC,EAAY,CACd1oC,KAhbQ,IAibRT,MAAO,IAGT4oC,EAAY,CACVQ,WAAY,SAAoBtpB,GAqB9B,OApBA3R,KAAKk7B,QAAUvpB,EACf3R,KAAKm7B,QAAU,EAEfn7B,KAAKo7B,QAAU,CAAC,WAChBp7B,KAAKq7B,aAAe,GAEpBr7B,KAAKs7B,aAAe,EACpBt7B,KAAKu7B,eAAiB,EACtBv7B,KAAKw7B,wBAA0B,EAK/Bx7B,KAAKy7B,kBAAoB,EACzBz7B,KAAK07B,gBAAkB,EACvB17B,KAAK27B,gBAAkB,EACvB37B,KAAK47B,cAAgB,EACrB57B,KAAK67B,kBAAoB,EACzB77B,KAAK87B,gBAAkB,EAEhB97B,IACT,EAMA+7B,UAAW,WACT,OAAO/7B,KAAKo7B,OACd,EACAR,gBAAiB,WACf,OAAO56B,KAAKo7B,QAAQp7B,KAAKo7B,QAAQxrC,OAAS,EAC5C,EACAkrC,UAAW,SAAmBxW,GAC5BtkB,KAAKo7B,QAAQxkC,KAAK0tB,EACpB,EACA0X,MAAO,SAAe1X,GACpBtkB,KAAK86B,UAAUxW,EACjB,EACAuW,SAAU,WACR,OAAI76B,KAAKo7B,QAAQxrC,OAAS,EACjBoQ,KAAKo7B,QAAQ3nC,MAEfuM,KAAKo7B,QAAQ,EACtB,EACAa,aAAc,WAEZ,GAAIj8B,KAAKq7B,aAAazrC,OAAS,EAC7B,OAAOoQ,KAAKk8B,QAAQl8B,KAAKm8B,SAASn8B,KAAKq7B,aAAaxgC,UAGtD,IAAKmF,KAAKo8B,gBACR,OAAOp8B,KAAKk8B,QAAQlB,GAMtB,IAHA,IAAIrpB,EAAS3R,KAAKk7B,QAAQtgC,MAAMoF,KAAKm7B,SACjCkB,EAAmBtB,EAAqB/6B,KAAK46B,mBAExCrqC,EAAI,EAAGA,EAAI8rC,EAAiBzsC,OAAQW,IAAK,CAChD,IAAI+rC,EAAeD,EAAiB9rC,GAChCgsC,EAAU7B,EAAS4B,GAEnBnxB,EAAUnL,KAAKw8B,OAAO7qB,EAAQ4qB,EAAQ,IAQ1C,GAJe,KAAX5qB,GAA6B,KAAZxG,GACnBnL,KAAKm7B,UAGS,OAAZhwB,EAAkB,EACpBksB,EAASlsB,GACOvb,OAChB,IAAI6sC,EAAQF,EAAQ,GAAGtyB,KAAKjK,MAE5B,IAAKy8B,EACH,OAAOz8B,KAAKi8B,eAMd,GAAIjsC,MAAMC,QAAQwsC,GAAQ,CACxB,IAGMpB,EAHFqB,EAAgBD,EAAM7hC,MAAM,GAChC6hC,EAAQA,EAAM,GACVC,EAAc9sC,OAAS,IAGxByrC,EAAer7B,KAAKq7B,cAAc/iC,QAAQmxB,MAAM4R,EAAc5Y,EAAmBia,GAEtF,CAEA,OAAO18B,KAAKk8B,QAAQl8B,KAAKm8B,SAASM,EAAOpF,GAC3C,CACF,CAEA,GAAIr3B,KAAK28B,QAEP,OADA38B,KAAKm7B,UACEH,EAGTh7B,KAAK48B,qBAAqBjrB,EAAO,GAAI3R,KAAKs7B,aAAct7B,KAAKu7B,eAC/D,EAQAqB,qBAAsB,SAA8Bzc,EAAQ0c,EAAMC,GAChE,IAAIC,EAAa/8B,KAAKk7B,QAAQ/qC,MAAM,MAAM0sC,EAAO,GAC7CG,EAAW,GAOf,MALID,IAEFC,EAAW,OAASD,EAAa,KADvB,IAAIlN,OAAOiN,GACyB,OAG1C,IAAI1D,YAAY4D,EAAW,sBAAwB7c,EAAnC6c,QAA4DH,EAAO,IAAMC,EAAS,IAC1G,EACAG,UAAW,WACT,OAAOj9B,KAAKm7B,OACd,EACA+B,eAAgB,WACd,OAAOl9B,KAAKs7B,YACd,EACA6B,iBAAkB,WAChB,OAAOn9B,KAAKu7B,cACd,EACA6B,iBAAkB,SAA0BjyB,GAC1C,IAAIkyB,EAAO,MAGXr9B,KAAKy7B,kBAAoBz7B,KAAKm7B,QAG9Bn7B,KAAK27B,gBAAkB37B,KAAKs7B,aAC5Bt7B,KAAK67B,kBAAoB77B,KAAKy7B,kBAAoBz7B,KAAKw7B,wBAIvD,IADA,IAAI8B,OAAU,EAC4B,QAAlCA,EAAUD,EAAK3d,KAAKvU,KAC1BnL,KAAKs7B,eACLt7B,KAAKw7B,wBAA0Bx7B,KAAKy7B,kBAAoB6B,EAAQzzB,MAAQ,EAG1E7J,KAAK07B,gBAAkB17B,KAAKm7B,QAAUhwB,EAAQvb,OAG9CoQ,KAAK47B,cAAgB57B,KAAKs7B,aAC1Bt7B,KAAK87B,gBAAkB97B,KAAKu7B,eAAiBv7B,KAAK07B,gBAAkB17B,KAAKw7B,uBAC3E,EACAW,SAAU,SAAkBoB,GAG1B,MAAO,CAELjrC,KAAMirC,EACN1rC,MALWyrB,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,GAQ/Eoa,YAAa13B,KAAKy7B,kBAClB9D,UAAW33B,KAAK07B,gBAChB9D,UAAW53B,KAAK27B,gBAChB9D,QAAS73B,KAAK47B,cACd9D,YAAa93B,KAAK67B,kBAClB9D,UAAW/3B,KAAK87B,gBAEpB,EACAa,MAAO,WACL,OAAO38B,KAAKm7B,UAAYn7B,KAAKk7B,QAAQtrC,MACvC,EACAwsC,cAAe,WACb,OAAOp8B,KAAKm7B,SAAWn7B,KAAKk7B,QAAQtrC,MACtC,EACA4sC,OAAQ,SAAgB7qB,EAAQnE,GAC9B,IAAIrC,EAAUwG,EAAO3F,MAAMwB,GAC3B,OAAIrC,GAEFnL,KAAKo9B,iBAAiBjyB,EAAQ,IAC9BnL,KAAKm7B,SAAWhwB,EAAQ,GAAGvb,OACpBub,EAAQ,IAEV,IACT,EAOA+wB,QAAS,SAAiBO,GACxB,OAAOA,CACT,GAMFnF,EAAGkG,MAAQ/C,EACXnD,EAAGmD,UAAYA,EASfnD,EAAGzmC,QAAU,CACXu7B,kBAAkB,GAMpB,IAAIqR,EAAU,CAIZC,WAAY,SAAoB7sC,GAE9B,OADAymC,EAAGzmC,QAAUA,EACNmP,IACT,EAMA29B,WAAY,WACV,OAAOrG,EAAGzmC,OACZ,EAMAkV,MAAO,SAAe4L,EAAQisB,GAC5B,IAAKnD,EACH,MAAM,IAAIj1B,MAAM,wCAGlBi1B,EAAUQ,WAAWtpB,GAMrB,IAAIksB,EAAgBvG,EAAGzmC,QACnB+sC,IACFtG,EAAGzmC,QAAUgR,OAAOokB,OAAO,CAAC,EAAGqR,EAAGzmC,QAAS+sC,IAO7CH,EAAQK,aAAansB,EAAQ8oB,EAAWnD,EAAGzmC,SAE3C2pC,EAAM5qC,OAAS,EACf4qC,EAAM5jC,KAAK,GAEX,IAAI6lC,EAAQhC,EAAUwB,eAClB8B,EAAe,KAEnB,EAAG,CACItB,IAEHnF,EAAGzmC,QAAUgtC,EACbG,KAGF,IAAI1Z,EAAQkW,EAAMA,EAAM5qC,OAAS,GAC7BktC,EAASvC,EAAOkC,EAAMnqC,MAErB4wB,EAAMoB,GAAO5G,eAAeof,KAC/BxF,EAAGzmC,QAAUgtC,EACbI,EAAgBxB,IAGlB,IAAIt6B,EAAQ+gB,EAAMoB,GAAOwY,GAGzB,GAAiB,MAAb36B,EAAM,GAAY,CACpB,IAAI+7B,EAAQ,KAER5G,EAAGzmC,QAAQu7B,mBACb8R,EAAQ,CACNxG,YAAa+E,EAAM/E,YACnBC,UAAW8E,EAAM9E,UACjBC,UAAW6E,EAAM7E,UACjBC,QAAS4E,EAAM5E,QACfC,YAAa2E,EAAM3E,YACnBC,UAAW0E,EAAM1E,YAIrBgG,EAAe/9B,KAAKm+B,QAAQ1B,GAE5BjC,EAAM5jC,KAAK,CAAEupB,OAAQoa,EAAOwD,EAAazrC,MAAO8rC,cAAeL,EAAalsC,MAAO8mC,IAAKuF,GAASxoC,OAAOyM,EAAMvH,MAAM,KAEpH6hC,EAAQhC,EAAUwB,cACpB,MAGK,GAAiB,MAAb95B,EAAM,GAAY,CACvB,IAAIk8B,EAAmBl8B,EAAMvH,MAAM,GAC/B0jC,EAAatG,EAAYqG,GACzBE,EAA6C,mBAAlBD,EAAW,GACtCE,EAAoBD,EAAoB,GAAK,KAE7CE,EAAeF,GAAqBjH,EAAGzmC,QAAQu7B,iBAAmB,GAAK,KAE3E,GAAsB,IAAlBkS,EAAW,GAEb,IADA,IAAII,EAAYJ,EAAW,GACpBI,KAAc,GAAG,CACtBlE,EAAM/mC,MACN,IAAIkrC,EAAanE,EAAM/mC,MAEnB8qC,IACFC,EAAkBlmC,QAAQqmC,EAAWP,eAEjCK,GACFA,EAAanmC,QAAQqmC,EAAWhG,KAGtC,CAGF,IAAIiG,EAAmB,CAAEze,OAAQme,EAAW,IAE5C,GAAIC,EAAmB,CACrBlH,EAAS0G,EAAeA,EAAalsC,MAAQ,KACpCksC,GAAeA,EAAalsC,MAAMjC,OAE3C,IAAIivC,EAAsC,OAAjBJ,EAAwBD,EAAkBzsC,OAAO0sC,GAAgBD,EAE1FF,EAAW,GAAG7U,MAAM6U,EAAY7b,EAAmBoc,IAEnDD,EAAiBR,cAAgB7G,EAE7BkH,IACFG,EAAiBjG,IAAMnB,EAE3B,CAEA,IAAI/J,EAAY+M,EAAMA,EAAM5qC,OAAS,GACjCkvC,EAAqBR,EAAW,GAEpC9D,EAAM5jC,KAAKgoC,EAAkB1b,EAAMuK,GAAWqR,GAChD,MAGK,GAAc,QAAV38B,EAAiB,CACtBq4B,EAAM/mC,MACN,IAAIgc,EAAS+qB,EAAM/mC,MAQnB,OANqB,IAAjB+mC,EAAM5qC,QAA6B,IAAb4qC,EAAM,IAAYC,EAAU2B,mBAEpD9E,EAAGzmC,QAAUgtC,EACbI,EAAgBxB,IAGdhtB,EAAOiO,eAAe,kBACxB4Z,EAAGzmC,QAAUgtC,EACbJ,EAAQsB,WAAWtvB,EAAO2uB,eACnB3uB,EAAO2uB,gBAGhBX,EAAQsB,aAGRzH,EAAGzmC,QAAUgtC,GACN,EACT,CACN,OAASpD,EAAU2B,iBAAmB5B,EAAM5qC,OAAS,EACvD,EACAovC,aAAc,SAAsBC,GAElC,OADAxE,EAAYwE,EACLxB,CACT,EACAyB,aAAc,WACZ,OAAOzE,CACT,EACAqD,aAAc,SAAsBnsB,EAAQ8oB,EAAW5pC,GAAU,EACjEkuC,WAAY,SAAoBtvB,GAAS,EAOzC0uB,QAAS,SAAiB1B,GACxB,OAAOA,CACT,GAME7C,EAAuB,EAKvBE,EAAc,CAAC,EAKfqF,EAAgB,GAoCpB,SAAS/E,EAASV,GAChB,IAAI9hC,EAAQ8hC,EAAK1tB,MAAM,QAAQ/U,IAAIvB,QAEnC,GAAIA,OAAO0pC,SAASxnC,EAAM,KAAOA,EAAM,GAAKA,EAAM,GAChD,MAAM,IAAIwhC,YAAY,2BAA6BM,EAAO,eAG5D,OAAO9hC,CACT,CAKA,SAAS0iC,EAAgB5oC,EAAMmB,GAC7B,GAAkB,YAAdnB,EAAKc,MAAkC,YAAZK,EAAGL,OAAuB/B,MAAMiB,EAAKgB,aAAejC,MAAMoC,EAAGH,YAAchB,EAAKgB,UAAYG,EAAGH,UAC5H,MAAM,IAAI0mC,YAAY,SAAW1nC,EAAKG,MAAQ,IAAMgB,EAAGhB,MAAQ,mCAEnE,CAnDA4rC,EAAQK,aAAe,SAAUnsB,EAAQ6rB,GACvC2B,EAAgBxtB,EAChBioB,EAAuB,EACvBE,EAAc,CAAC,EAEf,IAAIuF,EAAY1tB,EAAO2tB,YAAY,KAC/BjhC,EAAQsT,EAAO/W,MAAMykC,GAErBhhC,EAAMxI,SAAS,MAAQwI,EAAMxI,SAAS,KACxC2nC,EAAM1C,UAAU,OAEZz8B,EAAMxI,SAAS,MACjB2nC,EAAM1C,UAAU,KAEdz8B,EAAMxI,SAAS,MACjB2nC,EAAM1C,UAAU,KAGtB,EAKA2C,EAAQU,QAAU,SAAU1B,GAK1B,MAJmB,YAAfA,EAAMnqC,MAAqC,wBAAfmqC,EAAMnqC,OACpCmqC,EAAM5qC,MAAQ,IAAIY,OAAOgqC,EAAM5qC,OAC/B4qC,EAAM5qC,MAAM+tB,cAAgBga,GAEvB6C,CACT,EA0BA,IAAI1D,EAAoB,EAAQ,OAqDhC,SAAS/Y,EAAKnuB,EAAOW,EAAMmmC,GACzB,IAAIxY,OAAS,EACTztB,OAAY,EAEhB,OAAQF,GACN,IAAK,UAEDE,EAAYgD,OAAO7D,EAAM+I,MAAM,IAC/BulB,EAAS1tB,OAAOohC,cAAcnhC,GAC9B,MAEJ,IAAK,MAEDA,EAAYlC,SAASqB,EAAM+I,MAAM,GAAI,GACrCulB,EAAS1tB,OAAOohC,cAAcnhC,GAC9B,MAEJ,IAAK,MACL,IAAK,UAED,GAAIb,EAAMytC,YAAY,OAAS,EAAG,CAChC,IACIC,EAngCsa,SAAUzd,EAAKvxB,GAAK,GAAIP,MAAMC,QAAQ6xB,GAAQ,OAAOA,EAAY,GAAIC,OAAOC,YAAYngB,OAAOigB,GAAQ,OAAxf,SAAuBA,EAAKvxB,GAAK,IAAI0xB,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAWvhB,OAAK/D,EAAW,IAAM,IAAK,IAAiC8D,EAA7ByhB,EAAKN,EAAIC,OAAOC,cAAmBE,GAAMvhB,EAAKyhB,EAAGC,QAAQC,QAAoBL,EAAKrrB,KAAK+J,EAAG9O,QAAYtB,GAAK0xB,EAAKryB,SAAWW,GAA3D2xB,GAAK,GAAkE,CAAE,MAAOK,GAAOJ,GAAK,EAAMvhB,EAAK2hB,CAAK,CAAE,QAAU,KAAWL,GAAME,EAAW,QAAGA,EAAW,QAAK,CAAE,QAAU,GAAID,EAAI,MAAMvhB,CAAI,CAAE,CAAE,OAAOqhB,CAAM,CAAuHO,CAAcV,EAAKvxB,GAAa,MAAM,IAAIwuB,UAAU,uDAA2D,CAmgC7mB8C,CADDhwB,EAAM1B,MAAM,OAAOyK,MAAM,GACW,GACzD80B,EAAO6P,EAAoB,GAC3B9P,EAAQ8P,EAAoB,GAIhC7sC,EAA8B,OAF9Bg9B,EAAOl/B,SAASk/B,EAAM,KAEF,SADpBD,EAAQj/B,SAASi/B,EAAO,KACuB,OAAU,MAEzDtP,EAAS1tB,OAAOohC,cAAcnhC,EAChC,KAAO,CACL,IAAI8sC,EAAM3tC,EAAM+I,MAAM,GAAGjG,QAAQ,IAAK,IAEtC,IADAjC,EAAYlC,SAASgvC,EAAK,KACV,QACd,MAAM,IAAIpG,YAAY,kCAAoCvnC,GAG5DsuB,EAAS1tB,OAAOohC,cAAcnhC,EAChC,CACA,MAEJ,IAAK,OAED,OAAQb,GACN,IAAK,MAEHa,GADAytB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHx8B,GADAytB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHx8B,GADAytB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHx8B,GADAytB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHx8B,GADAytB,EAAS,MACU+O,YAAY,GAC/B,MACF,IAAK,MAEHx8B,GADAytB,EAAS,MACU+O,YAAY,GACjC,IAAK,MACH/O,EAAS,KACTztB,EAAY,EACd,IAAK,IACHytB,EAAS,IACTztB,EAAYC,IACZ,MACF,QACED,EAAYC,IAEhB,MAEJ,IAAK,SAGDD,GADAytB,EAAStuB,GACUq9B,YAAY,GAKrC,OAAOuJ,EAAK,CACVnmC,KAAM,OACNT,MAAOA,EACPW,KAAMA,EACN2tB,OAAQA,EACRztB,UAAWA,GACVimC,EACL,CAMA,IAAI8G,EAAa,UAMjB,SAAS/G,EAAWr6B,GAClB,IAAIqhC,EAAO,IAAIrb,IAEXmC,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiB7pB,EAErB,IACE,IAAK,IAA0C8pB,EAAtCC,EAAYvoB,EAAM0jB,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAAM,CACtJ,IAAImZ,EAAOhZ,EAAM90B,MAEjB,GAAI6tC,EAAK78B,IAAI88B,KAAUF,EAAW5pC,SAAS8pC,GACzC,MAAM,IAAIvG,YAAY,kBAAoB/6B,GAE5CqhC,EAAKnb,IAAIob,EACX,CACF,CAAE,MAAOpd,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CAEA,OAAOroB,EAAMlO,MAAM,IAAIiN,OAAOF,KAAK,GACrC,CAwBA,IAAI+8B,EAAW,qBACXC,EAAa,0BACb0F,EAAgB,yBAKpB,SAASjF,EAAyBn7B,EAAM8kB,GAItC,GAHoBsb,EAAcrrC,KAAKiL,IACR,MAAV8kB,GAA2B,OAAVA,GAA4B,YAAVA,EAGtD,MAAM,IAAI8U,YAAY,+BAAiC55B,EAAO,oBAGhE,OAAOA,CACT,CAuBA,IAAIqgC,EAAQ,uOAEZ,SAAShG,EAAuBr6B,GAC9B,OAAOA,EAAK7K,QAAQ,IAAIL,OAAOurC,EAAO,MAAM,SAAU/nC,EAAGgoC,EAAeC,EAAgBC,EAAmBC,EAAoBC,EAAcxtC,GAC3I,OAAIotC,EACKrtC,OAAOohC,cAAcrjC,SAASsvC,EAAe,IAAKtvC,SAASuvC,EAAgB,KAEhFC,EACKvtC,OAAOohC,cAAcrjC,SAASwvC,EAAmB,KAEtDC,EAGKxtC,OAAOohC,cAAcrjC,SAASyvC,EAAoB,KAEvDC,EACKztC,OAAOohC,cAAcrjC,SAAS0vC,EAAc,KAEjDxtC,EACKD,OAAOohC,cAAcrjC,SAASkC,EAAW,KAE3CoF,CACT,GACF,CAkGA,SAAS2gC,EAAKrkC,EAAMukC,GAgBlB,OAfIrB,EAAGzmC,QAAQu7B,mBACbh4B,EAAKukC,IAAM,CACT9Z,OAAQsgB,EAAcvkC,MAAM+9B,EAAIjB,YAAaiB,EAAIhB,WACjDn9B,MAAO,CACLqiC,KAAMlE,EAAIf,UACVkF,OAAQnE,EAAIb,YACZqI,OAAQxH,EAAIjB,aAEdlnB,IAAK,CACHqsB,KAAMlE,EAAId,QACViF,OAAQnE,EAAIZ,UACZoI,OAAQxH,EAAIhB,aAIXvjC,CACT,CAKA,SAASukC,EAAIn+B,EAAOgW,GAClB,OAAK8mB,EAAGzmC,QAAQu7B,iBAIT,CACLsL,YAAal9B,EAAMk9B,YACnBC,UAAWnnB,EAAImnB,UACfC,UAAWp9B,EAAMo9B,UACjBC,QAASrnB,EAAIqnB,QACbC,YAAat9B,EAAMs9B,YACnBC,UAAWvnB,EAAIunB,WATR,IAWX,CAEA,SAASkG,EAAgBxB,GAvyCf,MAwyCJA,EAAMnqC,MACR0rC,IAGFvD,EAAUmC,qBAAqBH,EAAM5qC,MAAO4qC,EAAM7E,UAAW6E,EAAM3E,YACrE,CAEA,SAASkG,KAIT,SAAoBz4B,GAClB,MAAM,IAAI6zB,YAJC,2BAKb,CALEgH,EACF,CAMAnxC,EAAOC,QAAUuuC,gCCr3CjB,IAAI4C,EAAmB,EAAQ,MAK3BC,EAAmBD,EAAiBt6B,MAAMw6B,KAAKF,GAQnDA,EAAiBt6B,MAAQ,SAAUyH,EAAQ3c,GACzC,OAAOyvC,EAAiB,GAAK9yB,EAAQ3c,EACvC,EAGAwvC,EAAiB3C,WAAW,CAAEtR,kBAAkB,IAEhDn9B,EAAOC,QAAUmxC,0BCpBjB,IAAIG,EAAmC,CACrCC,iBAAkB,KAClBC,OAAQ,KACRC,kBAAmB,OAGjBC,EAAmCC,EAAWL,GAE9CM,EAA+B,CACjCC,MAAO,QACPC,gBAAiB,OACjBC,WAAY,QACZC,IAAK,MACLC,SAAU,WACVC,aAAc,SACdC,cAAe,SACfC,eAAgB,KAChBC,MAAO,QACPC,wBAAyB,OACzBC,wBAAyB,OACzBC,wBAAyB,MACzBC,6BAA8B,QAC9BC,wBAAyB,MACzBC,wBAAyB,MACzBC,KAAM,OACNC,6BAA8B,KAC9BC,WAAY,MACZC,UAAW,MACXC,MAAO,QACPC,gBAAiB,kBACjBC,eAAgB,iBAChBC,oBAAqB,sBACrBC,mBAAoB,qBACpBC,sBAAuB,wBACvBC,SAAU,MACVC,cAAe,UACfC,gBAAiB,SACjBC,UAAW,MACXC,oBAAqB,OACrBC,qBAAsB,OACtBC,YAAa,MACbC,SAAU,MACVC,YAAa,OACbC,aAAc,SACdC,wBAAyB,MACzBC,UAAW,QACXtsC,KAAM,OACNusC,wBAAyB,QACzBC,eAAgB,UAChBC,oBAAqB,SACrBC,eAAgB,QAChBC,QAAS,UACTC,mBAAoB,KACpBC,kBAAmB,QACnBC,YAAa,KACbC,qBAAsB,OACtBC,kBAAmB,QACnBC,UAAW,QACXC,mBAAoB,KACpBC,YAAa,QACbC,aAAc,OACdC,UAAW,QAGTC,EAA+BtD,EAAWC,GAE1CsD,EAAoC,CACtCC,aAAc,KACdC,kBAAmB,KACnBC,sBAAuB,KACvBC,QAAS,CAAC,KAAM,SAChBC,gBAAiB,KACjBC,iBAAkB,KAClBC,eAAgB,CAAC,KAAM,SACvBC,eAAgB,KAChBC,kBAAmB,KACnBC,OAAQ,KACRC,oBAAqB,KACrBC,OAAQ,IACRC,cAAe,KACfC,eAAgB,KAChBC,iBAAkB,KAClBC,KAAM,CAAC,IAAK,kBACZC,YAAa,KACbC,gBAAiB,KACjBC,gBAAiB,KACjBC,gBAAiB,KACjB9vC,OAAQ,IACR+vC,iBAAkB,KAClBC,MAAO,IACPC,aAAc,KACdC,aAAc,KACdC,kBAAmB,KACnBC,aAAc,KACdC,oBAAqB,KACrBC,YAAa,KACbC,YAAa,CAAC,IAAK,SACnBC,UAAW,IACXC,gBAAiB,KACjBC,aAAc,KACdC,UAAW,KACXtkB,OAAQ,IACRukB,iBAAkB,KAClBC,WAAY,KACZC,iBAAkB,MAGhBC,EAA2C5F,EAAWuD,GAEtDsC,EAA0B,CAC5BC,MAAO,OACPC,KAAM,OACNC,sBAAuB,OACvBC,OAAQ,OACRC,SAAU,OACVC,QAAS,OACTC,SAAU,OACVC,MAAO,OACPC,UAAW,OACXC,MAAO,OACPC,QAAS,OACTC,UAAW,OACXC,SAAU,OACVC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,MAAO,OACPC,oBAAqB,OACrBC,OAAQ,OACRC,mBAAoB,OACpBC,OAAQ,OACRC,KAAM,OACNC,SAAU,OACVC,OAAQ,OACRC,OAAQ,CAAC,OAAQ,QACjBC,UAAW,OACXC,QAAS,OACTC,SAAU,OACVC,QAAS,OACTC,WAAY,OACZC,MAAO,OACPC,SAAU,OACVC,qBAAsB,OACtBC,QAAS,OACTC,SAAU,OACVC,SAAU,OACVC,WAAY,OACZC,OAAQ,OACRC,QAAS,OACTC,MAAO,OACPC,SAAU,OACVC,cAAe,OACfC,SAAU,OACVC,IAAK,OACLC,OAAQ,OACRC,gBAAiB,OACjBC,QAAS,OACTC,OAAQ,OACRC,OAAQ,OACRC,SAAU,OACVC,iBAAkB,OAClBC,UAAW,CAAC,OAAQ,QACpBC,sBAAuB,OACvBC,uBAAwB,OACxBC,SAAU,OACVC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,SAAU,OACVC,WAAY,OACZC,MAAO,OACPC,OAAQ,OACRC,UAAW,OACXC,IAAK,OACLC,MAAO,OACPC,OAAQ,OACRC,MAAO,OACPC,SAAU,OACVC,SAAU,OACVC,KAAM,OACNC,OAAQ,OACRC,OAAQ,OACRC,SAAU,OACVC,QAAS,OACTC,UAAW,OACXC,QAAS,OACTC,WAAY,OACZC,QAAS,OACTC,YAAa,OACbC,cAAe,OACfC,aAAc,OACdC,cAAe,OACfC,iBAAkB,OAClBC,qBAAsB,OACtBC,KAAM,OACNC,KAAM,OACNC,UAAW,OACXC,IAAK,OACLC,QAAS,OACTC,QAAS,OACTC,UAAW,OACXC,YAAa,OACbC,KAAM,OACNC,IAAK,OACLC,MAAO,OACPC,MAAO,OACPC,SAAU,OACVC,cAAe,OACfC,WAAY,OACZC,kBAAmB,OACnBC,WAAY,OACZC,YAAa,OACbC,YAAa,OACbC,kBAAmB,OACnBC,WAAY,OACZC,MAAO,OACPC,MAAO,OACPC,QAAS,OACTC,aAAc,OACdC,UAAW,OACXC,YAAa,OACbC,SAAU,OACVC,WAAY,OACZC,gBAAiB,OACjBC,OAAQ,OACRC,MAAO,OACPC,UAAW,OACXC,WAAY,OACZC,QAAS,OACTC,QAAS,OACTC,QAAS,OACTC,YAAa,OACbC,QAAS,OACTC,QAAS,OACTC,aAAc,OACdC,QAAS,OACTC,UAAW,OACXC,aAAc,OACdC,OAAQ,OACRC,QAAS,OACTC,SAAU,OACVC,OAAQ,OACRC,SAAU,OACVC,SAAU,OACVC,MAAO,OACPC,MAAO,OACPC,OAAQ,OACRC,OAAQ,OACRC,OAAQ,OACRC,KAAM,OACNC,QAAS,OACTC,SAAU,OACVC,QAAS,OACTC,SAAU,OACVC,IAAK,OACLC,YAAa,OACbC,GAAI,OACJC,iBAAkB,QAGhBC,EAAgClP,EAAW6F,GAE/C,SAAS7F,EAAW15B,GAClB,IAAI6oC,EAAU,CAAC,EAEf,IAAK,IAAIxwC,KAAQ2H,EACf,GAAKA,EAAKuW,eAAele,GAAzB,CAGA,IAAI3N,EAAQsV,EAAK3H,GACjB,GAAIxP,MAAMC,QAAQ4B,GAChB,IAAK,IAAItB,EAAI,EAAGA,EAAIsB,EAAMjC,OAAQW,IAChCy/C,EAAQn+C,EAAMtB,IAAMiP,OAGtBwwC,EAAQn+C,GAAS2N,CAPnB,CAWF,OAAOwwC,CACT,CA8BA,SAAShX,EAAuBnnC,GAC9B,OAAOuyC,EAAkC1mB,eAAe7rB,IAAU40C,EAAyC/oB,eAAe7rB,EAC5H,CAEA,SAASo+C,EAAsBp+C,GAC7B,OAAO60C,EAAwBhpB,eAAe7rB,IAAUk+C,EAA8BryB,eAAe7rB,EACvG,CAkCA5C,EAAOC,QAAU,CACfghD,QArDF,SAAiB1wC,GACf,OAAOohC,EAAiCljB,eAAele,IAAS2kC,EAA6BzmB,eAAele,EAC9G,EAoDE25B,YAtEF,SAAqB35B,GACnB,OAAOghC,EAAiC9iB,eAAele,IAASohC,EAAiCljB,eAAele,IAASshC,EAA6BpjB,eAAele,IAAS2kC,EAA6BzmB,eAAele,EAC5N,EAqEE65B,aAnEF,SAAsB75B,EAAM3N,GAC1B,OAeF,SAA+B2N,GAC7B,MAAgB,qBAATA,GAAuC,MAARA,CACxC,CAjBM2wC,CAAsB3wC,GACjBw5B,EAAuBnnC,KAkBlC,SAA8B2N,GAC5B,MAAgB,WAATA,GAA8B,sBAATA,GAAyC,OAATA,GAA0B,QAATA,CAC/E,CAjBM4wC,CAAqB5wC,IAChBywC,EAAsBp+C,EAIjC,EA0DEmnC,uBAAwBA,EACxBiX,sBAAuBA,EACvB/W,qBAtCF,SAA8B15B,GAC5B,OAAOshC,EAA6BpjB,eAAele,IAAS2kC,EAA6BzmB,eAAele,EAC1G,EAqCE+5B,iBAnCF,SAA0B/5B,GACxB,OAAIohC,EAAiCljB,eAAele,GAC3CohC,EAAiCphC,GAGtC2kC,EAA6BzmB,eAAele,GACvC2kC,EAA6B3kC,GAG/B,IACT,EA0BEi6B,kBAxBF,SAA2B5nC,GACzB,OAAI40C,EAAyC/oB,eAAe7rB,GACnD40C,EAAyC50C,GAG9Ck+C,EAA8BryB,eAAe7rB,GACxCk+C,EAA8Bl+C,GAGnCsyC,EAA6BzmB,eAAe7rB,GACvCsyC,EAA6BtyC,GAG/B,IACT,EAYE2uC,iCAAkCA,EAClCI,iCAAkCA,EAElCE,6BAA8BA,EAC9BqD,6BAA8BA,EAE9BC,kCAAmCA,EACnCqC,yCAA0CA,EAE1CC,wBAAyBA,EACzBqJ,8BAA+BA,iCClXjC,IAAIM,EAAmB,EAAQ,MAC3BxvB,EAAY,EAAQ,OACpByvB,EAAY,EAAQ,OACpBpkB,EAAS,EAAQ,OACjB/O,EAAa,EAAQ,MACrBozB,EAAY,EAAQ,OACpBC,EAAK,EAAQ,OAGb/xB,EADW,EAAQ,OACGA,WAOtBgyB,EAAa,CAIfvkB,OAAQA,EAKRskB,GAAIA,EAKJ3hB,gBAAiB1R,EAAW0R,gBAkB5B9oB,MAAO,SAAeyH,EAAQ3c,GAC5B,OAAOq7B,EAAOnmB,MAAM,GAAKyH,EAAQ3c,EACnC,EAqBA6/C,SAAU,SAAkB3wB,EAAKoW,EAAUtlC,GACzC,OAAO0/C,EAAUG,SAAS3wB,EAAKoW,EAAUtlC,EAC3C,EAeAusB,UAAW,SAAmB5P,EAAQ2oB,GACpC,OAAOhZ,EAAWC,UAAU5P,EAAQ2oB,EACtC,EAYAvU,SAAU,SAAkB7B,GAC1B,OAAOc,EAAUe,SAAS7B,EAC5B,EAQA4wB,SAAU,SAAkBnjC,GAC1B,IAAIojC,EAAS5wC,KAAK6wC,gBAAgBrjC,GAClC,OAAO,IAAIlZ,OAAOs8C,EAAOE,YAAaF,EAAOG,WAC/C,EAWAviB,SAAU,SAAkBhhB,EAAQkhB,GAClC,IACIE,GADOtR,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAC3DsR,UAErB,OAAO0hB,EAAU9hB,SAAShhB,EAAQ,CAAEkhB,UAAWA,EAAWE,UAAWA,GACvE,EAWAiiB,gBAAiB,SAAyBrjC,EAAQkhB,GAChD,OAAO2hB,EAAiBjzB,UAAU5P,EAAQkhB,EAC5C,EASAhP,KAAM,SAAchB,EAAI/M,GACtB,GAAkB,iBAAP+M,EAAiB,CAC1B,IAAIkyB,EAAS5wC,KAAK6wC,gBAAgBnyB,GAC9BlB,EAAQozB,EAAOhzB,WAGjBc,EADElB,EAAMkD,qBACH,IAAIjC,EAAWmyB,EAAOD,WAAY,CACrCtyC,MAAOuyC,EAAOG,WACdlyB,OAAQ+xB,EAAOE,YACflyB,OAAQpB,EAAMkD,uBAGXkwB,EAAOD,UAEhB,CAEA,OAAOjyB,EAAGgB,KAAK/N,EACjB,GAGF1iB,EAAOC,QAAUuhD,+BC7KjB,IAAI3yB,EAAe,WAAc,SAASC,EAAiBC,EAAQte,GAAS,IAAK,IAAInP,EAAI,EAAGA,EAAImP,EAAM9P,OAAQW,IAAK,CAAE,IAAI0tB,EAAave,EAAMnP,GAAI0tB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMvc,OAAOwc,eAAeL,EAAQC,EAAWta,IAAKsa,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAY5Y,UAAW6Y,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIfuC,EAAY,EAAQ,OACpBqL,EAAS,EAAQ,OACjBwkB,EAAW,EAAQ,OAMnB7hB,EAAkB,WAOpB,SAASA,EAAgB9O,GACvB,IAAIvC,EAAQF,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,MAlBpF,SAAyBwB,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CAoBpJC,CAAgBhf,KAAM6uB,GAEtB7uB,KAAKgxC,KAAOjxB,EACZ/f,KAAKixC,QAAU,KACfjxC,KAAKk7B,QAAU,KACfl7B,KAAKkxC,QAAU,KACflxC,KAAKmxC,OAAS3zB,CAChB,CAgDA,OA9CAM,EAAa+Q,EAAiB,CAAC,CAC7BlrB,IAAK,SACL9R,MAAO,WACL,OAAOmO,KAAKgxC,IACd,GACC,CACDrtC,IAAK,WACL9R,MAAO,SAAkB2rB,GACvBxd,KAAKmxC,OAAS3zB,CAChB,GACC,CACD7Z,IAAK,WACL9R,MAAO,WACL,OAAOmO,KAAKmxC,MACd,GACC,CACDxtC,IAAK,WACL9R,MAAO,WAIL,OAHKmO,KAAKkxC,UACRlxC,KAAKkxC,QAAU,IAAI58C,OAAO0L,KAAK8wC,YAAa9wC,KAAKgxC,KAAK3yC,QAEjD2B,KAAKkxC,OACd,GACC,CACDvtC,IAAK,YACL9R,MAAO,WAIL,OAHKmO,KAAKixC,UACRjxC,KAAKixC,QAAUpwB,EAAUe,SAAS5hB,KAAKgxC,KAAK/yC,OAEvC+B,KAAKixC,OACd,GACC,CACDttC,IAAK,WACL9R,MAAO,WACL,OAAOmO,KAAKgxC,KAAK3yC,KACnB,GACC,CACDsF,IAAK,WACL9R,MAAO,WAIL,OAHKmO,KAAKk7B,UACRl7B,KAAKk7B,QAAUra,EAAUe,SAAS5hB,KAAKgxC,OAElChxC,KAAKk7B,OACd,KAGKrM,CACT,CAlEsB,GAoEtB5/B,EAAOC,QAAU,CAIf2/B,gBAAiBA,EA6BjBzR,UAAW,SAAmB5P,EAAQ2oB,GACpC,IAAIpW,EAAMvS,EAcV,OAZIA,aAAkBlZ,SACpBkZ,EAAS,GAAKA,GAGM,iBAAXA,IACTuS,EAAMmM,EAAOnmB,MAAMyH,EAAQ,CACzB4e,kBAAkB,KAItBskB,EAASA,SAAS3wB,EAAKoW,GAEhB,IAAItH,EAAgB9O,EAC7B,2BCrDF9wB,EAAOC,QAAU,CACf6mC,kBAnEF,SAASA,EAAkB3hC,GACzB,GAAkB,gBAAdA,EAAK9B,KACP,MAAM,IAAIysB,UAAU,qCAAuC3qB,EAAK9B,KAAO,KAGzE,IAAIoP,EAAO,GAQX,OANItN,EAAKb,MAA2B,gBAAnBa,EAAKb,KAAKjB,KACzBoP,EAAK9K,KAAK6yB,MAAM/nB,EAVpB,SAA4BogB,GAAO,GAAI9xB,MAAMC,QAAQ6xB,GAAM,CAAE,IAAK,IAAIvxB,EAAI,EAAGmyB,EAAO1yB,MAAM8xB,EAAIlyB,QAASW,EAAIuxB,EAAIlyB,OAAQW,IAAOmyB,EAAKnyB,GAAKuxB,EAAIvxB,GAAM,OAAOmyB,CAAM,CAAS,OAAO1yB,MAAM0B,KAAKowB,EAAQ,CAUxKW,CAAmBsT,EAAkB3hC,EAAKb,OAAOxB,OAAO,CAACqC,EAAKZ,SAEpFkO,EAAK9K,KAAKxC,EAAKb,KAAMa,EAAKZ,OAGrBkO,CACT,EAsDEs0B,kBA7CF,SAA2Bt0B,GACzB,OAAOA,EAAK3M,QAAO,SAAUxB,EAAMC,GACjC,MAAO,CACLlB,KAAM,cACNiB,KAAMA,EACNC,MAAOA,EAEX,GACF,EAsCE2hC,wBA1BF,SAAiCrhC,GACP,MAApBA,EAAWtB,KAEbsB,EAAWtB,KAAO,IACW,MAApBsB,EAAWtB,MAEpBsB,EAAWtB,KAAO,QAClBsB,EAAWpC,KAAO,SACXoC,EAAWjB,IACW,MAApBiB,EAAWtB,MAEpBsB,EAAWtB,KAAO,QAClBsB,EAAWpC,KAAO,EAClBoC,EAAWjB,GAAK,GACa,UAApBiB,EAAWtB,OAEpBsB,EAAWpC,MAAQ,EACfoC,EAAWjB,KACbiB,EAAWjB,IAAM,GAGvB,iCC1EA,IAAIqiC,EAAW,EAAQ,OA8FvBjmC,EAAOC,QAAU,CAqCfwhD,SAAU,SAAkB3wB,EAAKoW,GAC/B,IAAItlC,EAAUysB,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,CAAE8zB,SAAS,GAwB7F,SAASC,EAAWj9C,EAAMsF,EAAQ43C,EAAMznC,GACtC,IAAI4sB,EAAavB,EAASO,WAAW/7B,GAGrC,OAFew7B,EAASO,WAAWrhC,EAAMqiC,EAAY6a,EAAMznC,EAG7D,CA1BK7Z,MAAMC,QAAQkmC,KACjBA,EAAW,CAACA,IAIdA,EAAWA,EAAS/jC,QAAO,SAAUurB,GACnC,MAAiC,mBAAtBA,EAAQmC,WAGZnC,EAAQmC,UAAUC,EAC3B,IAEAmV,EAASqc,eAGTpb,EAASh6B,SAAQ,SAAUwhB,GACG,mBAAjBA,EAAQ0C,MACjB1C,EAAQ0C,KAAKN,EAEjB,IAvIJ,SAAqByxB,GACnB,IAAI3gD,EAAUysB,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE/EloB,EAAMvE,EAAQuE,IACdE,EAAOzE,EAAQyE,KACfm8C,EAAe5gD,EAAQ4gD,cAE3B,SAASC,EAAMt9C,EAAMsF,EAAQ43C,EAAMlrB,GACjC,GAAKhyB,GAA6B,iBAAdA,EAAK9B,KAAzB,CAIA,IAAIq/C,OAAM90C,EAKV,GAJIzH,IACFu8C,EAAMv8C,EAAIhB,EAAMsF,EAAQ43C,EAAMlrB,KAGpB,IAARurB,EAYF,IAAK,IAAIC,KARLl4C,GAAUA,EAAO43C,KAIjBl9C,EAHG3D,MAAM21B,GAGF1sB,EAAO43C,GAFP53C,EAAO43C,GAAMlrB,IAMNhyB,EAChB,GAAIA,EAAKspB,eAAek0B,GAAQ,CAC9B,GAAIH,EAAeA,EAAaG,EAAOx9C,GAAqB,MAAbw9C,EAAM,GACnD,SAGF,IAAItc,EAAQlhC,EAAKw9C,GAcjB,GAAI5hD,MAAMC,QAAQqlC,GAAQ,CACxB,IAAIzrB,EAAQ,EAEZ,IADAqrB,EAAS2c,qBAAqBj7C,KAAKiT,GAC5BA,EAAQyrB,EAAM1lC,QACnB8hD,EAAMpc,EAAMzrB,GAAQzV,EAAMw9C,EAAO/nC,GACjCA,EAAQqrB,EAAS4c,sBAAsB,GAEzC5c,EAAS2c,qBAAqBp+C,KAChC,MAIIi+C,EAAMpc,EAAOlhC,EAAMw9C,EAEzB,CAIAt8C,GACFA,EAAKlB,EAAMsF,EAAQ43C,EAAMlrB,EA1D3B,CA4DF,CAEAsrB,CAAMF,EAAM,KACd,CAwEIO,CAAYhyB,EAAK,CAIf3qB,IAAK,SAAahB,EAAMsF,EAAQ43C,EAAMznC,GACpC,IAAItU,OAAW,EACV1E,EAAQugD,UACX77C,EAAW87C,EAAWj9C,EAAMsF,EAAQ43C,EAAMznC,IAG5C,IAAI2c,GAA4B,EAC5BC,GAAoB,EACpBC,OAAiB7pB,EAErB,IACE,IAAK,IAA6C8pB,EAAzCC,EAAYuP,EAASpU,OAAOC,cAAsBwE,GAA6BG,EAAQC,EAAUvE,QAAQC,MAAOkE,GAA4B,EAAM,CACzJ,IAAI7I,EAAUgJ,EAAM90B,MAGpB,GAA4B,mBAAjB8rB,EAAQ,KACjB,GAAIpoB,GAEF,IAAKA,EAASy8C,cAGU,IAFFr0B,EAAQ,KAAKpoB,GAG/B,OAAO,OAIXooB,EAAQ,KAAKvpB,EAAMsF,EAAQ43C,EAAMznC,GAKrC,IAAIooC,OAAiB,EAOrB,GANkC,mBAAvBt0B,EAAQvpB,EAAK9B,MACtB2/C,EAAiBt0B,EAAQvpB,EAAK9B,MACS,iBAAvBqrB,EAAQvpB,EAAK9B,OAAwD,mBAA3BqrB,EAAQvpB,EAAK9B,MAAM8C,MAC7E68C,EAAiBt0B,EAAQvpB,EAAK9B,MAAM8C,KAGlC68C,EACF,GAAI18C,GAEF,IAAKA,EAASy8C,cAGW,IAFFC,EAAehoC,KAAK0T,EAASpoB,GAGhD,OAAO,OAIX08C,EAAehoC,KAAK0T,EAASvpB,EAAMsF,EAAQ43C,EAAMznC,EAGvD,CACF,CAAE,MAAO0Y,GACPkE,GAAoB,EACpBC,EAAiBnE,CACnB,CAAE,QACA,KACOiE,GAA6BI,EAAUlD,QAC1CkD,EAAUlD,QAEd,CAAE,QACA,GAAI+C,EACF,MAAMC,CAEV,CACF,CACF,EAMApxB,KAAM,SAAclB,EAAMsF,EAAQ43C,EAAMznC,GACtC,GAAKzV,EAAL,CAIA,IAAImB,OAAW,EACV1E,EAAQugD,UACX77C,EAAW87C,EAAWj9C,EAAMsF,EAAQ43C,EAAMznC,IAG5C,IAAIgd,GAA6B,EAC7BC,GAAqB,EACrBC,OAAkBlqB,EAEtB,IACE,IAAK,IAA8CmqB,EAA1CC,EAAakP,EAASpU,OAAOC,cAAuB6E,GAA8BG,EAASC,EAAW5E,QAAQC,MAAOuE,GAA6B,EAAM,CAC/J,IAAIlJ,EAAUqJ,EAAOn1B,MAGjBqgD,OAAkB,EAKtB,GAJkC,iBAAvBv0B,EAAQvpB,EAAK9B,OAAyD,mBAA5BqrB,EAAQvpB,EAAK9B,MAAMgD,OACtE48C,EAAkBv0B,EAAQvpB,EAAK9B,MAAMgD,MAGnC48C,EACF,GAAI38C,GAEF,IAAKA,EAASy8C,cAGU,IAFFE,EAAgBjoC,KAAK0T,EAASpoB,GAGhD,OAAO,OAIX28C,EAAgBjoC,KAAK0T,EAASvpB,EAAMsF,EAAQ43C,EAAMznC,EAGxD,CACF,CAAE,MAAO0Y,GACPuE,GAAqB,EACrBC,EAAkBxE,CACpB,CAAE,QACA,KACOsE,GAA8BI,EAAWvD,QAC5CuD,EAAWvD,QAEf,CAAE,QACA,GAAIoD,EACF,MAAMC,CAEV,CACF,CAjDA,CAkDF,EAMA0qB,aAAc,SAAsBH,GAClC,MAAgB,QAATA,CACT,GAEJ,2BChTF,IAAIxzB,EAAe,WAAc,SAASC,EAAiBC,EAAQte,GAAS,IAAK,IAAInP,EAAI,EAAGA,EAAImP,EAAM9P,OAAQW,IAAK,CAAE,IAAI0tB,EAAave,EAAMnP,GAAI0tB,EAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,UAAWF,IAAYA,EAAWG,UAAW,GAAMvc,OAAOwc,eAAeL,EAAQC,EAAWta,IAAKsa,EAAa,CAAE,CAAE,OAAO,SAAUK,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYR,EAAiBO,EAAY5Y,UAAW6Y,GAAiBC,GAAaT,EAAiBO,EAAaE,GAAqBF,CAAa,CAAG,CAA7hB,GAIf6zB,EAA0B,cAC1BC,EAAsB,aAStBld,EAAW,WASb,SAASA,EAAS9gC,GAChB,IAAIqiC,EAAanZ,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,KACjF+0B,EAAW/0B,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,KAC/EzT,EAAQyT,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,MAxBpF,SAAyBwB,EAAUR,GAAe,KAAMQ,aAAoBR,GAAgB,MAAM,IAAIS,UAAU,oCAAwC,CA0BpJC,CAAgBhf,KAAMk1B,GAEtBl1B,KAAK5L,KAAOA,EACZ4L,KAAKy2B,WAAaA,EAClBz2B,KAAKtG,OAAS+8B,EAAaA,EAAWriC,KAAO,KAC7C4L,KAAKqyC,SAAWA,EAChBryC,KAAK6J,MAAQA,CACf,CA2WA,OAzWAiU,EAAaoX,EAAU,CAAC,CACtBvxB,IAAK,eACL9R,MAAO,SAAsBwgD,GAC3B,IAAKryC,KAAK5L,KAAKspB,eAAe20B,GAC5B,MAAM,IAAI7sC,MAAM,gBAAkBxF,KAAK5L,KAAK9B,KAAO,mBAAqB+/C,EAAW,gBAEvF,GAYC,CACD1uC,IAAK,WACL9R,MAAO,SAAkBuC,GACvB,IAAIyV,EAAQyT,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,KAC5E+0B,EAAW/0B,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,KAG/EqU,OAAY,EAgBhB,OAfa,MAAT9nB,GACGwoC,IACHA,EAAWF,GAEbnyC,KAAKsyC,aAAaD,GAClBryC,KAAK5L,KAAKi+C,GAAUxoC,GAASzV,EAC7Bu9B,EAAYuD,EAASO,WAAWrhC,EAAM4L,KAAMqyC,EAAUxoC,KAEjDwoC,IACHA,EAAWD,GAEbpyC,KAAKsyC,aAAaD,GAClBryC,KAAK5L,KAAKi+C,GAAYj+C,EACtBu9B,EAAYuD,EAASO,WAAWrhC,EAAM4L,KAAMqyC,EAAU,OAEjD1gB,CACT,GAWC,CACDhuB,IAAK,cACL9R,MAAO,SAAqBuC,GAC1B,IAAIi+C,EAAW/0B,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,KAG9E+0B,IACHA,EAAWF,GAEbnyC,KAAKsyC,aAAaD,GAClB,IAAI7hC,EAAMxQ,KAAK5L,KAAKi+C,GAAUziD,OAC9B,OAAOoQ,KAAKuyC,SAASn+C,EAAMoc,EAAK6hC,EAClC,GAYC,CACD1uC,IAAK,gBACL9R,MAAO,SAAuBuC,EAAMyV,GAClC,IAAIwoC,EAAW/0B,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK60B,EAEnFnyC,KAAKsyC,aAAaD,GAElBryC,KAAK5L,KAAKi+C,GAAU9gB,OAAO1nB,EAAO,EAAGzV,GAIjCyV,GAASqrB,EAASsd,sBACpBtd,EAAS4c,sBAAsB,GAGjC9xC,KAAKyyC,cAAczyC,KAAK5L,KAAMi+C,EAChC,GAMC,CACD1uC,IAAK,SACL9R,MAAO,WACL,IAAImO,KAAKgyC,cAGT9c,EAASwd,SAASC,OAAO3yC,KAAK5L,MAE9B4L,KAAK5L,KAAO,KAEP4L,KAAKtG,QAAV,CAKA,GAAmB,OAAfsG,KAAK6J,MAeP,OAdA7J,KAAKtG,OAAOsG,KAAKqyC,UAAU9gB,OAAOvxB,KAAK6J,MAAO,GAI1C7J,KAAK6J,OAASqrB,EAASsd,sBACzBtd,EAAS4c,uBAAuB,GAIlC9xC,KAAKyyC,cAAczyC,KAAKtG,OAAQsG,KAAKqyC,UAErCryC,KAAK6J,MAAQ,UACb7J,KAAKqyC,SAAW,aAMXryC,KAAKtG,OAAOsG,KAAKqyC,UACxBryC,KAAKqyC,SAAW,IAvBhB,CAwBF,GAMC,CACD1uC,IAAK,gBACL9R,MAAO,SAAuB6H,EAAQ24C,GAGpC,IAFA,IAAI5b,EAAavB,EAASO,WAAW/7B,GAE5BnJ,EAAI,EAAGA,EAAImJ,EAAO24C,GAAUziD,OAAQW,IAChC2kC,EAASO,WAAW/7B,EAAO24C,GAAU9hD,GAAIkmC,EAAY4b,EAAU9hD,GACrEsZ,MAAQtZ,CAEjB,GAMC,CACDoT,IAAK,YACL9R,MAAO,WACL,OAAqB,OAAdmO,KAAK5L,IACd,GAMC,CACDuP,IAAK,UACL9R,MAAO,SAAiB+gD,GAKtB,OAJA1d,EAASwd,SAASC,OAAO3yC,KAAK5L,MAE9B4L,KAAK5L,KAAOw+C,EAEP5yC,KAAKtG,QAKS,OAAfsG,KAAK6J,MACP7J,KAAKtG,OAAOsG,KAAKqyC,UAAUryC,KAAK6J,OAAS+oC,EAKvC5yC,KAAKtG,OAAOsG,KAAKqyC,UAAYO,EAI1B1d,EAASO,WAAWmd,EAAS5yC,KAAKy2B,WAAYz2B,KAAKqyC,SAAUryC,KAAK6J,QAdhE,IAeX,GAMC,CACDlG,IAAK,SACL9R,MAAO,SAAgBghD,GACrBhxC,OAAOokB,OAAOjmB,KAAK5L,KAAMy+C,EAC3B,GAMC,CACDlvC,IAAK,YACL9R,MAAO,WACL,OAAOmO,KAAKy2B,UACd,GAMC,CACD9yB,IAAK,WACL9R,MAAO,WACL,IAAIwQ,EAAIib,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,EAE5E,OAAItd,KAAK5L,KAAKlC,YACLgjC,EAASO,WAAWz1B,KAAK5L,KAAKlC,YAAYmQ,GAAIrC,KAAMmyC,EAAyB9vC,GAC3ErC,KAAK5L,KAAKpB,YAAmB,GAALqP,EAC1B6yB,EAASO,WAAWz1B,KAAK5L,KAAKpB,WAAYgN,KAAMoyC,GAElD,IACT,GAcC,CACDzuC,IAAK,iBACL9R,MAAO,SAAwBgU,GAC7B,OAAO+E,KAAKC,UAAU7K,KAAK5L,KAAM0+C,KAAiBloC,KAAKC,UAAUhF,EAAKzR,KAAM0+C,EAC9E,GAMC,CACDnvC,IAAK,aACL9R,MAAO,WACL,IAAI8sB,EAAOrB,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC5Ey1B,EAASp0B,EAAKo0B,OACdC,EAASr0B,EAAKq0B,OAElB,OAAOpoC,KAAKC,UAAU7K,KAAK5L,KAAM4+C,EAAS,KAAOF,EAAaC,EAChE,GAMC,CACDpvC,IAAK,qBACL9R,MAAO,WACL,OAAKmO,KAAKtG,QAAwB,MAAdsG,KAAK6J,MAGlBqrB,EAASO,WAAWz1B,KAAKtG,OAAOsG,KAAKqyC,UAAUryC,KAAK6J,MAAQ,GAAIqrB,EAASO,WAAWz1B,KAAKtG,QAASsG,KAAKqyC,SAAUryC,KAAK6J,MAAQ,GAF5H,IAGX,GAMC,CACDlG,IAAK,iBACL9R,MAAO,WACL,OAAKmO,KAAKtG,QAAwB,MAAdsG,KAAK6J,MAGlBqrB,EAASO,WAAWz1B,KAAKtG,OAAOsG,KAAKqyC,UAAUryC,KAAK6J,MAAQ,GAAIqrB,EAASO,WAAWz1B,KAAKtG,QAASsG,KAAKqyC,SAAUryC,KAAK6J,MAAQ,GAF5H,IAGX,IASE,CAAC,CACHlG,IAAK,aACL9R,MAAO,SAAoBuC,GACzB,IAAIqiC,EAAanZ,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,KACjFg0B,EAAOh0B,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,GAAK,KAC3EzT,EAAQyT,UAAU1tB,OAAS,QAAsBiN,IAAjBygB,UAAU,GAAmBA,UAAU,IAAM,EAEjF,IAAKlpB,EACH,OAAO,KAGJ8gC,EAASwd,SAAS7vC,IAAIzO,IACzB8gC,EAASwd,SAASv1C,IAAI/I,EAAM,IAAI8gC,EAAS9gC,EAAMqiC,EAAY6a,GAAgB,GAAVznC,EAAc,KAAOA,IAGxF,IAAIhE,EAAOqvB,EAASwd,SAASr2C,IAAIjI,GAejC,OAbmB,OAAfqiC,IACF5wB,EAAK4wB,WAAaA,EAClB5wB,EAAKnM,OAASmM,EAAK4wB,WAAWriC,MAGnB,OAATk9C,IACFzrC,EAAKwsC,SAAWf,GAGdznC,GAAS,IACXhE,EAAKgE,MAAQA,GAGRhE,CACT,GAOC,CACDlC,IAAK,eACL9R,MAAO,WACAqjC,EAASwd,WACZxd,EAASwd,SAAW,IAAI11C,KAE1Bk4B,EAASwd,SAASO,OACpB,GAMC,CACDtvC,IAAK,wBACL9R,MAAO,SAA+BqhD,GACpC,OAAOhe,EAAS2c,qBAAqB3c,EAAS2c,qBAAqBjiD,OAAS,IAAMsjD,CACpF,GAMC,CACDvvC,IAAK,qBACL9R,MAAO,WACL,OAAOqjC,EAAS2c,qBAAqB3c,EAAS2c,qBAAqBjiD,OAAS,EAC9E,KAGKslC,CACT,CAjYe,GA6Yf,SAAS4d,EAAYxB,EAAMz/C,GACzB,GAAa,QAATy/C,EAGJ,OAAOz/C,CACT,CAfAqjC,EAASqc,eAOTrc,EAAS2c,qBAAuB,GAUhC5iD,EAAOC,QAAUgmC,yBC3ZjBjmC,EAAOC,QAAU,SAAS0C,EAAMkX,GAC9B,GAAY,OAARA,GAA+B,iBAARA,EACzB,OAAOA,EAET,IAAI6oC,OAAM,EAMV,IAAK,IAAIphD,KAJPohD,EADE3hD,MAAMC,QAAQ6Y,GACV,GAEA,CAAC,EAEKA,EACZ6oC,EAAIphD,GAAKqB,EAAMkX,EAAIvY,IAErB,OAAOohD,CACT,gCCrBA1iD,EAAOC,QAAU,EAAjB,k3+BCNIikD,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBx2C,IAAjBy2C,EACH,OAAOA,EAAapkD,QAGrB,IAAID,EAASkkD,EAAyBE,GAAY,CACjD1xC,GAAI0xC,EACJE,QAAQ,EACRrkD,QAAS,CAAC,GAUX,OANAskD,EAAoBH,GAAUppC,KAAKhb,EAAOC,QAASD,EAAQA,EAAOC,QAASkkD,GAG3EnkD,EAAOskD,QAAS,EAGTtkD,EAAOC,OACf,CAGAkkD,EAAoBn/B,EAAIu/B,E1E5BpBxkD,EAAW,GACfokD,EAAoBrgC,EAAI,CAAC/W,EAAQy3C,EAAU7vC,EAAI8vC,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAepkD,IACnB,IAASgB,EAAI,EAAGA,EAAIvB,EAASY,OAAQW,IAAK,CACrCkjD,EAAWzkD,EAASuB,GAAG,GACvBqT,EAAK5U,EAASuB,GAAG,GACjBmjD,EAAW1kD,EAASuB,GAAG,GAE3B,IAJA,IAGIqjD,GAAY,EACP37C,EAAI,EAAGA,EAAIw7C,EAAS7jD,OAAQqI,MACpB,EAAXy7C,GAAsBC,GAAgBD,IAAa7xC,OAAOC,KAAKsxC,EAAoBrgC,GAAGje,OAAO6O,GAASyvC,EAAoBrgC,EAAEpP,GAAK8vC,EAASx7C,MAC9Iw7C,EAASliB,OAAOt5B,IAAK,IAErB27C,GAAY,EACTF,EAAWC,IAAcA,EAAeD,IAG7C,GAAGE,EAAW,CACb5kD,EAASuiC,OAAOhhC,IAAK,GACrB,IAAIokB,EAAI/Q,SACE/G,IAAN8X,IAAiB3Y,EAAS2Y,EAC/B,CACD,CACA,OAAO3Y,CArBP,CAJC03C,EAAWA,GAAY,EACvB,IAAI,IAAInjD,EAAIvB,EAASY,OAAQW,EAAI,GAAKvB,EAASuB,EAAI,GAAG,GAAKmjD,EAAUnjD,IAAKvB,EAASuB,GAAKvB,EAASuB,EAAI,GACrGvB,EAASuB,GAAK,CAACkjD,EAAU7vC,EAAI8vC,EAuBjB,E2E3BdN,EAAoB/wC,EAAKpT,IACxB,IAAI4kD,EAAS5kD,GAAUA,EAAO6kD,WAC7B,IAAO7kD,EAAiB,QACxB,IAAM,EAEP,OADAmkD,EAAoBp7C,EAAE67C,EAAQ,CAAEljD,EAAGkjD,IAC5BA,CAAM,ECLdT,EAAoBp7C,EAAI,CAAC9I,EAAS6kD,KACjC,IAAI,IAAIpwC,KAAOowC,EACXX,EAAoBl/B,EAAE6/B,EAAYpwC,KAASyvC,EAAoBl/B,EAAEhlB,EAASyU,IAC5E9B,OAAOwc,eAAenvB,EAASyU,EAAK,CAAEua,YAAY,EAAM7hB,IAAK03C,EAAWpwC,IAE1E,ECHDyvC,EAAoBx/B,EAAI,IAAOogC,QAAQjvC,UCHvCquC,EAAoBt/B,EAAI,WACvB,GAA0B,iBAAfmgC,WAAyB,OAAOA,WAC3C,IACC,OAAOj0C,MAAQ,IAAIk0C,SAAS,cAAb,EAChB,CAAE,MAAOtgC,GACR,GAAsB,iBAAXlR,OAAqB,OAAOA,MACxC,CACA,CAPuB,GCAxB0wC,EAAoBl/B,EAAI,CAACpL,EAAKwoC,IAAUzvC,OAAO6D,UAAUgY,eAAezT,KAAKnB,EAAKwoC,GCClF8B,EAAoBz+B,EAAKzlB,IACH,oBAAX6yB,QAA0BA,OAAOoyB,aAC1CtyC,OAAOwc,eAAenvB,EAAS6yB,OAAOoyB,YAAa,CAAEtiD,MAAO,WAE7DgQ,OAAOwc,eAAenvB,EAAS,aAAc,CAAE2C,OAAO,GAAO,ECL9DuhD,EAAoBgB,IAAOnlD,IAC1BA,EAAOolD,MAAQ,GACVplD,EAAOqlD,WAAUrlD,EAAOqlD,SAAW,IACjCrlD,GCHRmkD,EAAoBn7C,EAAI,WCAxBm7C,EAAoBxiD,EAAI2jD,SAASC,SAAWjoB,KAAK5pB,SAAS8xC,KAK1D,IAAIC,EAAkB,CACrB,KAAM,GAaPtB,EAAoBrgC,EAAE9a,EAAK08C,GAA0C,IAA7BD,EAAgBC,GAGxD,IAAIC,EAAuB,CAACC,EAA4B1tC,KACvD,IAKIksC,EAAUsB,EALVlB,EAAWtsC,EAAK,GAChB2tC,EAAc3tC,EAAK,GACnB4tC,EAAU5tC,EAAK,GAGI5W,EAAI,EAC3B,GAAGkjD,EAAShjC,MAAM9O,GAAgC,IAAxB+yC,EAAgB/yC,KAAa,CACtD,IAAI0xC,KAAYyB,EACZ1B,EAAoBl/B,EAAE4gC,EAAazB,KACrCD,EAAoBn/B,EAAEo/B,GAAYyB,EAAYzB,IAGhD,GAAG0B,EAAS,IAAI/4C,EAAS+4C,EAAQ3B,EAClC,CAEA,IADGyB,GAA4BA,EAA2B1tC,GACrD5W,EAAIkjD,EAAS7jD,OAAQW,IACzBokD,EAAUlB,EAASljD,GAChB6iD,EAAoBl/B,EAAEwgC,EAAiBC,IAAYD,EAAgBC,IACrED,EAAgBC,GAAS,KAE1BD,EAAgBC,GAAW,EAE5B,OAAOvB,EAAoBrgC,EAAE/W,EAAO,EAGjCg5C,EAAqBzoB,KAA4B,sBAAIA,KAA4B,uBAAK,GAC1FyoB,EAAmB74C,QAAQy4C,EAAqBrU,KAAK,KAAM,IAC3DyU,EAAmBp+C,KAAOg+C,EAAqBrU,KAAK,KAAMyU,EAAmBp+C,KAAK2pC,KAAKyU,QClDvF5B,EAAoB6B,QAAKp4C,ECGzB,IAAIq4C,EAAsB9B,EAAoBrgC,OAAElW,EAAW,CAAC,OAAO,IAAOu2C,EAAoB,SAC9F8B,EAAsB9B,EAAoBrgC,EAAEmiC","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?7880","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/Web.vue?2edf","webpack:///nextcloud/node_modules/vue-material-design-icons/Web.vue?vue&type=template&id=48291522","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=script&lang=js","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?ec62","webpack://nextcloud/./core/src/views/UnsupportedBrowser.vue?d53c","webpack:///nextcloud/core/src/unsupported-browser.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/core/src/views/UnsupportedBrowser.vue?vue&type=style&index=0&id=4465c3af&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @copyright 2021 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp'\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist'\nimport browserslistConfig from '@nextcloud/browserslist-config'\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({ allowHigherVersions: true, browsers: browserslistConfig })\nexport const supportedBrowsers = browserslist(browserslistConfig)\n","/**\n * @copyright 2021 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage'\n\nexport default getBuilder('core')\n\t.clearOnLogout()\n\t.persist()\n\t.build()\n","/**\n * @copyright 2019 Christoph Wurst \n *\n * @author Christoph Wurst \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst getLogger = user => {\n\tif (user === null) {\n\t\treturn getLoggerBuilder()\n\t\t\t.setApp('core')\n\t\t\t.build()\n\t}\n\treturn getLoggerBuilder()\n\t\t.setApp('core')\n\t\t.setUid(user.uid)\n\t\t.build()\n}\n\nexport default getLogger(getCurrentUser())\n","/**\n * @copyright 2022 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js'\nimport browserStorage from '../services/BrowserStorageService.js'\nimport logger from '../logger.js'\n\nexport const browserStorageKey = 'unsupported-browser-ignore'\nconst redirectPath = generateUrl('/unsupported')\n\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true'\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function() {\n\tif (supportedBrowsersRegExp.test(navigator.userAgent)) {\n\t\tlogger.debug('this browser is officially supported ! 🚀')\n\t\treturn\n\t}\n\n\t// If incompatible BUT ignored, let's keep going\n\tif (isBrowserOverridden) {\n\t\tlogger.debug('this browser is NOT supported but has been manually overridden ! ⚠️')\n\t\treturn\n\t}\n\n\t// If incompatible, NOT overridden AND NOT already on the warning page,\n\t// redirect to the unsupported warning page\n\tif (window.location.pathname.indexOf(redirectPath) === -1) {\n\t\tconst redirectUrl = window.location.href.replace(window.location.origin, '')\n\t\tconst base64Param = Buffer.from(redirectUrl).toString('base64')\n\t\thistory.pushState(null, null, `${redirectPath}?redirect_url=${base64Param}`)\n\t\twindow.location.reload()\n\t}\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"content-unsupported-browser guest-box\"},[_c('NcEmptyContent',{scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Web')]},proxy:true},{key:\"action\",fn:function(){return [_c('div',[_c('h2',[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Your browser is not supported. Please upgrade to a newer version or a supported one.'))+\"\\n\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcButton',{staticClass:\"content-unsupported-browser__continue\",attrs:{\"type\":\"primary\"},on:{\"click\":_vm.forceBrowsing}},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('core', 'Continue with this unsupported browser'))+\"\\n\\t\\t\\t\\t\")])],1),_vm._v(\" \"),_c('ul',{staticClass:\"content-unsupported-browser__list\"},[_c('h3',[_vm._v(_vm._s(_vm.t('core', 'Supported versions')))]),_vm._v(\" \"),_vm._l((_vm.formattedBrowsersList),function(browser){return _c('li',{key:browser},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(browser)+\"\\n\\t\\t\\t\\t\")])})],2)]},proxy:true}])},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.t('core', 'This browser is not supported'))+\"\\n\\t\\t\")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./Web.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Web.vue?vue&type=template&id=48291522\"\nimport script from \"./Web.vue?vue&type=script&lang=js\"\nexport * from \"./Web.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon web-icon\",attrs:{\"aria-hidden\":_vm.title ? null : true,\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M16.36,14C16.44,13.34 16.5,12.68 16.5,12C16.5,11.32 16.44,10.66 16.36,10H19.74C19.9,10.64 20,11.31 20,12C20,12.69 19.9,13.36 19.74,14M14.59,19.56C15.19,18.45 15.65,17.25 15.97,16H18.92C17.96,17.65 16.43,18.93 14.59,19.56M14.34,14H9.66C9.56,13.34 9.5,12.68 9.5,12C9.5,11.32 9.56,10.65 9.66,10H14.34C14.43,10.65 14.5,11.32 14.5,12C14.5,12.68 14.43,13.34 14.34,14M12,19.96C11.17,18.76 10.5,17.43 10.09,16H13.91C13.5,17.43 12.83,18.76 12,19.96M8,8H5.08C6.03,6.34 7.57,5.06 9.4,4.44C8.8,5.55 8.35,6.75 8,8M5.08,16H8C8.35,17.25 8.8,18.45 9.4,19.56C7.57,18.93 6.03,17.65 5.08,16M4.26,14C4.1,13.36 4,12.69 4,12C4,11.31 4.1,10.64 4.26,10H7.64C7.56,10.66 7.5,11.32 7.5,12C7.5,12.68 7.56,13.34 7.64,14M12,4.03C12.83,5.23 13.5,6.57 13.91,8H10.09C10.5,6.57 11.17,5.23 12,4.03M18.92,8H15.97C15.65,6.75 15.19,5.55 14.59,4.44C16.43,5.07 17.96,6.34 18.92,8M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"," \n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=script&lang=js\"","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=4465c3af&prod&lang=scss&scoped=true\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./UnsupportedBrowser.vue?vue&type=style&index=0&id=4465c3af&prod&lang=scss&scoped=true\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./UnsupportedBrowser.vue?vue&type=template&id=4465c3af&scoped=true\"\nimport script from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nexport * from \"./UnsupportedBrowser.vue?vue&type=script&lang=js\"\nimport style0 from \"./UnsupportedBrowser.vue?vue&type=style&index=0&id=4465c3af&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4465c3af\",\n null\n \n)\n\nexport default component.exports","/**\n * @copyright 2022 John Molakvoæ \n *\n * @author John Molakvoæ \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport Vue from 'vue'\n\nimport { browserStorageKey } from './utils/RedirectUnsupportedBrowsers.js'\nimport browserStorage from './services/BrowserStorageService.js'\nimport UnsupportedBrowser from './views/UnsupportedBrowser.vue'\n\n// If the ignore token is set, redirect\nif (browserStorage.getItem(browserStorageKey) === 'true') {\n\twindow.location = generateUrl('/')\n}\n\nexport default new Vue({\n\tel: '#unsupported-browser',\n\t// eslint-disable-next-line vue/match-component-file-name\n\tname: 'UnsupportedBrowserRoot',\n\trender: h => h(UnsupportedBrowser),\n})\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TC\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.007984,\"1\":0.015968,\"2\":0.015968,\"3\":0.011976,\"4\":0.015968,\"5\":0.015968,\"6\":0.035928,\"7\":0.267464,\"8\":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1680825600,\"1\":1683158400,\"2\":1685664000,\"3\":1689897600,\"4\":1692576000,\"5\":1694649600,\"6\":1697155200,\"7\":1698969600,\"8\":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:\"ms\",K:\"ms\",L:\"ms\",G:\"ms\",M:\"ms\",N:\"ms\",O:\"ms\"}},C:{A:{\"0\":0.003992,\"1\":0.007984,\"2\":0.011976,\"3\":0.467064,\"4\":0.003992,\"5\":0.007984,\"6\":0.087824,\"7\":0.227544,\"8\":0.231536,\"9\":0,UC:0,\"7B\":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,\"8B\":0.003992,kB:0,\"9B\":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,\"1B\":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:\"moz\",C:[\"UC\",\"7B\",\"WC\",\"XC\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\",\"VC\"],E:\"Firefox\",F:{\"0\":1681171200,\"1\":1683590400,\"2\":1686009600,\"3\":1688428800,\"4\":1690848000,\"5\":1693267200,\"6\":1695686400,\"7\":1698105600,\"8\":1700524800,\"9\":1308614400,UC:1161648000,\"7B\":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,\"8B\":1520985600,kB:1525824000,\"9B\":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,\"0B\":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,\"1B\":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{\"0\":0.075848,\"1\":0.15968,\"2\":0.115768,\"3\":0.07984,\"4\":0.263472,\"5\":0.195608,\"6\":0.467064,\"7\":2.4471,\"8\":15.8562,\"9\":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,\"8B\":0,kB:0.015968,\"9B\":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,\"0B\":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,\"1B\":0.015968,BC:0,CC:0,DC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\"],E:\"Chrome\",F:{\"0\":1680566400,\"1\":1682985600,\"2\":1685404800,\"3\":1689724800,\"4\":1692057600,\"5\":1694476800,\"6\":1696896000,\"7\":1698710400,\"8\":1701993600,\"9\":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,\"8B\":1496707200,kB:1500940800,\"9B\":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,\"0B\":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,\"1B\":1708387200,BC:null,CC:null,DC:null}},E:{A:{\"9\":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,\"2B\":0.015968,\"3B\":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,\"4B\":0.043912,fC:0.2994,\"5B\":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,\"6B\":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"YC\",\"EC\",\"I\",\"9\",\"ZC\",\"J\",\"aC\",\"D\",\"bC\",\"E\",\"F\",\"cC\",\"A\",\"FC\",\"B\",\"2B\",\"C\",\"3B\",\"K\",\"GC\",\"L\",\"dC\",\"G\",\"eC\",\"HC\",\"IC\",\"4B\",\"fC\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"gC\",\"6B\",\"OC\",\"PC\",\"QC\",\"hC\",\"iC\",\"\"],E:\"Safari\",F:{\"9\":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,\"2B\":1522281600,C:1537142400,\"3B\":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,\"4B\":1652745600,fC:1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,\"6B\":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,\"2B\":0,RC:0,nC:0,\"3B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"jC\",\"kC\",\"lC\",\"mC\",\"B\",\"2B\",\"RC\",\"nC\",\"C\",\"3B\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"\",\"\",\"\"],E:\"Opera\",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,\"2B\":1302566400,RC:1309219200,nC:1323129600,C:1323129600,\"3B\":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,\"0B\":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:\"o\",B:\"o\",C:\"o\",jC:\"o\",kC:\"o\",lC:\"o\",mC:\"o\",\"2B\":\"o\",RC:\"o\",nC:\"o\",\"3B\":\"o\"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,\"0C\":0.267828,\"1C\":0.00451396,\"2C\":0.0496536,\"3C\":0.0135419,\"4C\":0.0601861,\"5C\":0.105326,\"6C\":0.160998,\"7C\":0.0692141,HC:0.0797466,IC:0.0932885,\"4B\":0.123382,\"8C\":0.961474,\"5B\":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,\"9C\":2.01925,\"6B\":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"EC\",\"oC\",\"SC\",\"pC\",\"qC\",\"rC\",\"E\",\"sC\",\"tC\",\"uC\",\"vC\",\"wC\",\"xC\",\"yC\",\"zC\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"HC\",\"IC\",\"4B\",\"8C\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"9C\",\"6B\",\"OC\",\"PC\",\"QC\",\"\",\"\",\"\"],E:\"Safari on iOS\",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,\"0C\":1553472000,\"1C\":1568851200,\"2C\":1572220800,\"3C\":1580169600,\"4C\":1585008000,\"5C\":1600214400,\"6C\":1619395200,\"7C\":1632096000,HC:1639353600,IC:1647216000,\"4B\":1652659200,\"8C\":1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,\"9C\":1690156800,\"6B\":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"AD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{AD:1426464000}},I:{A:{\"7B\":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"BD\",\"CD\",\"DD\",\"7B\",\"I\",\"ED\",\"SC\",\"FD\",\"GD\",\"H\",\"\",\"\",\"\"],E:\"Android Browser\",F:{BD:1256515200,CD:1274313600,DD:1291593600,\"7B\":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,\"2B\":0,RC:0,\"3B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"2B\",\"RC\",\"C\",\"3B\",\"u\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"2B\":1314835200,RC:1318291200,C:1330300800,\"3B\":1349740800,u:1673827200},D:{u:\"webkit\"}},L:{A:{H:40.5268},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{H:1705968000}},M:{A:{\"1B\":0.30045},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"1B\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{\"1B\":1705968000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"4B\":0.811215},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"4B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"4B\":1687132800},D:{\"4B\":\"webkit\"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,\"5B\":0.0107426,\"6B\":0.0322279,RD:0.0214852,SD:0.0322279},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"FC\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"5B\",\"6B\",\"RD\",\"SD\",\"q\",\"r\",\"s\",\"t\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,\"5B\":1640736000,\"6B\":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GC\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{GC:1663718400}},R:{A:{TD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UD\",\"VD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{UD:1527811200,VD:1631664000}}};\n","module.exports={\"0\":\"112\",\"1\":\"113\",\"2\":\"114\",\"3\":\"115\",\"4\":\"116\",\"5\":\"117\",\"6\":\"118\",\"7\":\"119\",\"8\":\"120\",\"9\":\"5\",A:\"10\",B:\"11\",C:\"12\",D:\"7\",E:\"8\",F:\"9\",G:\"15\",H:\"121\",I:\"4\",J:\"6\",K:\"13\",L:\"14\",M:\"16\",N:\"17\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"20\",r:\"21\",s:\"22\",t:\"23\",u:\"73\",v:\"107\",w:\"108\",x:\"109\",y:\"110\",z:\"111\",AB:\"19\",BB:\"24\",CB:\"25\",DB:\"26\",EB:\"27\",FB:\"28\",GB:\"29\",HB:\"30\",IB:\"31\",JB:\"32\",KB:\"33\",LB:\"34\",MB:\"35\",NB:\"36\",OB:\"37\",PB:\"38\",QB:\"39\",RB:\"40\",SB:\"41\",TB:\"42\",UB:\"43\",VB:\"44\",WB:\"45\",XB:\"46\",YB:\"47\",ZB:\"48\",aB:\"49\",bB:\"50\",cB:\"51\",dB:\"52\",eB:\"53\",fB:\"54\",gB:\"55\",hB:\"56\",iB:\"57\",jB:\"58\",kB:\"60\",lB:\"62\",mB:\"63\",nB:\"64\",oB:\"65\",pB:\"66\",qB:\"67\",rB:\"68\",sB:\"69\",tB:\"70\",uB:\"71\",vB:\"72\",wB:\"74\",xB:\"75\",yB:\"76\",zB:\"77\",\"0B\":\"78\",\"1B\":\"122\",\"2B\":\"11.1\",\"3B\":\"12.1\",\"4B\":\"15.5\",\"5B\":\"16.0\",\"6B\":\"17.0\",\"7B\":\"3\",\"8B\":\"59\",\"9B\":\"61\",AC:\"82\",BC:\"123\",CC:\"124\",DC:\"125\",EC:\"3.2\",FC:\"10.1\",GC:\"13.1\",HC:\"15.2-15.3\",IC:\"15.4\",JC:\"16.1\",KC:\"16.2\",LC:\"16.3\",MC:\"16.4\",NC:\"16.5\",OC:\"17.1\",PC:\"17.2\",QC:\"17.3\",RC:\"11.5\",SC:\"4.2-4.3\",TC:\"5.5\",UC:\"2\",VC:\"126\",WC:\"3.5\",XC:\"3.6\",YC:\"3.1\",ZC:\"5.1\",aC:\"6.1\",bC:\"7.1\",cC:\"9.1\",dC:\"14.1\",eC:\"15.1\",fC:\"15.6\",gC:\"16.6\",hC:\"17.4\",iC:\"TP\",jC:\"9.5-9.6\",kC:\"10.0-10.1\",lC:\"10.5\",mC:\"10.6\",nC:\"11.6\",oC:\"4.0-4.1\",pC:\"5.0-5.1\",qC:\"6.0-6.1\",rC:\"7.0-7.1\",sC:\"8.1-8.4\",tC:\"9.0-9.2\",uC:\"9.3\",vC:\"10.0-10.2\",wC:\"10.3\",xC:\"11.0-11.2\",yC:\"11.3-11.4\",zC:\"12.0-12.1\",\"0C\":\"12.2-12.5\",\"1C\":\"13.0-13.1\",\"2C\":\"13.2\",\"3C\":\"13.3\",\"4C\":\"13.4-13.7\",\"5C\":\"14.0-14.4\",\"6C\":\"14.5-14.8\",\"7C\":\"15.0-15.1\",\"8C\":\"15.6-15.8\",\"9C\":\"16.6-16.7\",AD:\"all\",BD:\"2.1\",CD:\"2.2\",DD:\"2.3\",ED:\"4.1\",FD:\"4.4\",GD:\"4.4.3-4.4.4\",HD:\"5.0-5.4\",ID:\"6.2-6.4\",JD:\"7.2-7.4\",KD:\"8.2\",LD:\"9.2\",MD:\"11.1-11.2\",ND:\"12.0\",OD:\"13.0\",PD:\"14.0\",QD:\"15.0\",RD:\"18.0\",SD:\"19.0\",TD:\"13.18\",UD:\"2.5\",VD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.content-unsupported-browser[data-v-4465c3af]{display:flex;justify-content:center;width:400px;max-width:calc(90vw - 60px);margin:auto;padding:30px}.content-unsupported-browser .empty-content[data-v-4465c3af]{margin:0}.content-unsupported-browser .empty-content[data-v-4465c3af] .empty-content__icon{opacity:1}.content-unsupported-browser__continue[data-v-4465c3af]{display:block;margin:30px auto}.content-unsupported-browser__list[data-v-4465c3af]{margin-top:60px;margin-bottom:30px}.content-unsupported-browser__list li[data-v-4465c3af]{text-align:left}`, \"\",{\"version\":3,\"sources\":[\"webpack://./core/src/views/UnsupportedBrowser.vue\"],\"names\":[],\"mappings\":\"AAGA,8CACC,YAAA,CACA,sBAAA,CACA,WAAA,CACA,2BAAA,CACA,WAAA,CACA,YARS,CAUT,6DACC,QAAA,CACA,kFACC,SAAA,CAIF,wDACC,aAAA,CACA,gBAAA,CAGD,oDACC,eAAA,CACA,kBAxBQ,CAyBR,uDACC,eAAA\",\"sourcesContent\":[\"\\n$spacing: 30px;\\n\\n.content-unsupported-browser {\\n\\tdisplay: flex;\\n\\tjustify-content: center;\\n\\twidth: 400px;\\n\\tmax-width: calc(90vw - 2 * $spacing);\\n\\tmargin: auto;\\n\\tpadding: $spacing;\\n\\n\\t.empty-content {\\n\\t\\tmargin: 0;\\n\\t\\t&::v-deep .empty-content__icon {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t&__continue {\\n\\t\\tdisplay: block;\\n\\t\\tmargin: $spacing auto;\\n\\t}\\n\\n\\t&__list {\\n\\t\\tmargin-top: 2 * $spacing;\\n\\t\\tmargin-bottom: $spacing;\\n\\t\\tli {\\n\\t\\t\\ttext-align: left;\\n\\t\\t}\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"29.0\": \"122\",\n\t\"30.0\": \"123\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?a)\\k/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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 State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 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], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 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] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","// 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\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\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};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7843;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7843: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(46908)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","module","exports","regexes","regex","family","maxVersion","Infinity","version","minVersion","numbersToRanges","numbers","length","SemverPart","semverify","versionParts","Array","isArray","toString","split","versionPart","semverPart","semver","i","parseInt","isNaN","compareSemvers","a","b","options","major","minor","patch","majorBase","minorBase","patchBase","ignoreMinor","ignorePatch","allowHigherVersions","compareMinor","comparePatch","compareArrays","from","len","clone","value","copy","concat","items","AlternativeNode","expressions","exps","filter","Boolean","type","SimpleCharNode","kind","String","codePoint","NaN","ClassRangeNode","to","CharacterClassNode","CapturingGroupNode","expression","capturing","number","DisjunctionCapturingGroupNode","expr","exprs","disjunction","left","right","pop","reduceRight","DisjunctionNode","DigitPatternNode","NumberPatternNode","quantifier","greedy","numberPattern","RepetitionNode","NumberCharsNode","isNumberPatternNode","node","isCharNode","RegExp","test","isDigitRangeNode","isExpressionNode","parseRegex","replace","classes","visitors","every","reduce","newVisitors","className","visitor","visitorPre","pre","visitorPost","post","nodePath","numberToDigits","num","Number","rayRangeDigitPattern","digit","includes","rangeStart","segmentRangeNumberPattern","zeros","fromNode","toNode","zerosPrefix","segmentToNumberPatterns","digitsInNumber","fromDigits","digitsCount","toDigits","decadeRanges","ranges","decade","push","Math","min","splitToDecadeRanges","parts","map","commonStart","common","currA","currB","diffA","diffB","splitCommonDiff","from1","to1","diffParts","range","middleSegment","_","ri","d","j","patterns","prevNode","merged","exp","unshift","rangeToRegex","digits","other","RangeQuantifierNode","pow","numberPatterns","topNodes","prev","nodes","rayToNumberPatterns","getNumberPatternsPart","numberPatternsCount","regexAst","maxNumbersCount","count","Group","getNumberPatternsCount","numbersCounter","containsNumberPattern","parent","applyVersionsToRegex","versions","finalVersions","maxRequiredPartsCount","max","allowZeroSubversions","shouldRepeatCount","getRequiredSemverPartsCount","numberPatternsPart","versionsPart","rangedVersion","ignoreIndex","prevWasZero","start","createMapper","rangedSemverToRegex","numbersToReplace","slice","shift","replaceNumberPatterns","remove","defaultOptions","getPreUserAgentRegexes","finalOptions","browserRegexes","sourceRegex","matchedVersions","current","Major","Minor","Patch","part","p","versionsListToRanges","applyVersionsToRegexes","browsers","targetRegexes","result","prevFamily","prevRegexIsGlobal","forEach","requestVersions","get","bases","compareOptions","minComparator","ver","maxComparator","comparator","findMatchedVersions","undefined","getRegexesForBrowsers","merge","Map","strVersion","join","set","sort","mergeBrowserVersions","browserslistOptions","browserslist","browser","versionString","versionStringTo","partIndex","i1","v","rangeSemver","getBrowsersList","partsRegexes","body","src","getAST","optimizeRegex","flags","compileRegex","getUserAgentRegex","browserslistConfig","supportedBrowsers","getBuilder","clearOnLogout","persist","build","user","getCurrentUser","getLoggerBuilder","setApp","setUid","uid","browserStorageKey","generateUrl","browserStorage","getItem","name","emits","props","title","fillColor","default","size","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","logger","debug","components","Web","NcButton","NcEmptyContent","computed","isMobile","navigator","userAgent","filteredSupportedBrowsers","isMobileBrowser","formattedBrowsersList","list","id","parseFloat","Object","keys","_agents$id","_agents$id2","agents","t","entry","methods","n","forceBrowsing","setItem","urlParams","URLSearchParams","window","location","search","has","redirectPath","Buffer","getRootUrl","startsWith","toLowerCase","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","scopedSlots","_u","key","fn","proxy","_l","Vue","el","render","h","UnsupportedBrowser","BrowserslistError","noop","loadQueries","getStat","opts","stats","loadConfig","config","loadCountry","loadFeature","currentNode","resolve","context","parseConfig","readConfig","findConfig","clearCaches","oldDataWarning","env","message","Error","captureStackTrace","prototype","jsReleases","jsEOL","path","e2c","parse","ANDROID_EVERGREEN_FIRST","isVersionsMatch","versionA","versionB","indexOf","normalize","normalizeElectron","versionToUse","nameMapper","getMajor","getMajorVersions","released","majorVersions","uniq","minimum","selected","array","filtered","fillUsage","data","generateFilter","sign","parseSimpleInt","x","compare","compareSemver","semverFilterLoose","operator","compareSemverLoose","normalizeVersion","resolved","versionAliases","resolveVersion","filterByYear","since","byName","releaseDate","date","cloneData","aliases","mobileToDesktop","desktopNames","desktop","android","chrome","normalizeAndroidVersions","obj","copyObject","cloned","androidVersions","chromeVersions","iFirstEvergreen","checkName","filterJumps","nVersions","jump","op_mob","isSupported","withPartial","queries","QUERIES","index","not","query","select","call","compose","prepareOpts","prepareQueries","defaults","checkQueries","cache","ignoreUnknownVersions","dangerousExtend","customUsage","cacheKey","JSON","stringify","name1","name2","version1","BROWSERSLIST_DISABLE_CACHE","nodeQuery","matched","nodeVersions","sinceQuery","year","month","day","Date","UTC","coverQuery","coverage","usage","global","place","match","toUpperCase","coveraged","custom","fx","ff","ios","explorer","blackberry","explorermobile","operamini","operamobile","chromeandroid","firefoxandroid","ucandroid","qqandroid","and_chr","and_ff","ie_mob","customStats","dataByBrowser","all","last_major_versions","matches","regexp","last_versions","last_electron_major_versions","last_node_major_versions","last_browser_major_versions","last_electron_versions","last_node_versions","last_browser_versions","unreleased_versions","unreleased_electron_versions","unreleased_browser_versions","last_years","now","years","since_y","since_y_m","since_y_m_d","popularity","popularity_in_my_stats","percentage","popularity_in_config_stats","loadStat","popularity_in_place","cover","cover_in","supports","feature","supportType","features","checkDesktop","electron_range","fromToUse","toToUse","parsed","node_range","browser_range","electron_ray","node_ray","browser_ray","alias","firefox_esr","opera_mini_all","electron_version","node_major_version","node_minor_version","node_patch_version","current_node","maintained_node","end","some","phantomjs_1_9","phantomjs_2_1","browser_version","browserslist_config","extends","dead","unknown","release_date","usage_global","full","interval","release","AND_REGEXP","OR_REGEXP","flatten","matchQuery","matchBlock","string","qs","predicate","substr","find","trim","block","A","J","D","E","F","B","TC","C","K","L","G","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","c","e","f","g","k","l","m","o","w","y","z","H","UC","I","AB","q","r","s","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","AC","BC","CC","DC","VC","WC","XC","YC","EC","ZC","aC","bC","cC","FC","GC","dC","eC","HC","IC","fC","JC","KC","LC","MC","NC","gC","OC","PC","QC","hC","iC","jC","kC","lC","mC","RC","nC","oC","SC","pC","qC","rC","sC","tC","uC","vC","wC","xC","yC","zC","AD","BD","CD","DD","ED","FD","GD","HD","ID","JD","KD","LD","MD","ND","OD","PD","QD","RD","SD","TD","UD","VD","agentsData","unpackBrowserVersions","versionsData","prefix_exceptions","map2","key2","prefix","browserVersions","___CSS_LOADER_EXPORT___","compatTransforms","_transform","transform","transformsWhitelist","arguments","transformToApply","extra","transformName","hasOwnProperty","handler","getExtra","setExtra","_createClass","defineProperties","target","descriptor","enumerable","configurable","writable","defineProperty","Constructor","protoProps","staticProps","RegExpTree","re","_ref","groups","source","instance","TypeError","_classCallCheck","_re","_groups","dotAll","ignoreCase","multiline","sticky","unicode","compile","_toStringResult","exec","group","groupNumber","_hasUFlag","shouldRun","ast","Char","toValue","toSymbol","symbol","_groupNames","init","nameRaw","Backreference","reference","referenceRaw","namedCapturingGroups","xFlag","gen","generator","Alternative","Disjunction","Assertion","assertion","negative","_assertion","CharacterClass","ClassRange","Repetition","Quantifier","escaped","UnicodeProperty","shorthand","binary","generate","_slicedToArray","arr","Symbol","iterator","_arr","_n","_d","_i","next","done","err","sliceIterator","_toConsumableArray","arr2","currentTransitionMap","sameRow","r1","r2","s1","s2","areEquivalent","table","alphabet","_iteratorNormalCompletion8","_didIteratorError8","_iteratorError8","_step8","_iterator8","goToSameSet","return","originalTransitionS1","originalTransitionS2","minimize","dfa","getTransitionTable","allStates","getAlphabet","accepting","getAcceptingStateNumbers","nonAccepting","Set","state","add","previous","_loop","newTransitionMap","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_set","handledStates","_set2","first","rest","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","restSets","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","handledState","assign","newSets","remaped","idx","minimizedTable","minimizedAcceptingStates","updateAcceptingStates","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","entries","_ref2","_idx","_iteratorNormalCompletion6","_didIteratorError6","_iteratorError6","_step6","_iterator6","originalTransition","_iteratorNormalCompletion7","_didIteratorError7","_iteratorError7","_step7","_iterator7","originalState","setTransitionTable","setAcceptingStateNumbers","DFAMinimizer","EPSILON_CLOSURE","DFA","nfa","_nfa","_originalAcceptingStateNumbers","_acceptingStateNumbers","_originalTransitionTable","_transitionTable","stateNumbers","_this","nfaTable","nfaStates","worklist","nfaAcceptingStates","dfaTable","states","nfaAcceptingState","dfaStateLabel","onSymbol","nfaStatesOnSymbol","nfaStateOnSymbol","apply","dfaStatesOnSymbolSet","dfaStatesOnSymbol","dfaOnSymbolStr","_remapStateNumbers","calculatedDFATable","newStatesMap","transitionTable","originalNumber","newNumber","originalRow","row","_originalNumber","NFA","nfaFromRegExp","builders","toNFA","toDFA","NFAState","EPSILON","char","inState","outState","addTransition","altPair","second","out","in","orPair","alt","_len","fragments","_key","or","_len2","_key2","rep","fragment","repExplicit","plusRep","questionRep","parser","_require","captureLocations","State","_State","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","subClass","superClass","create","constructor","setPrototypeOf","_inherits","visited","getTransitionsOnSymbol","symbolTransitions","_this2","_epsilonClosure","epsilonTransitions","closure","nextState","getEpsilonClosure","_alphabet","transitions","_acceptingStates","getAcceptingStates","acceptingState","symbols","visitState","getTransitions","combinedState","_ref$accepting","_transitions","toState","optimizationTransforms","optimize","_ref$whitelist","whitelist","_ref$blacklist","blacklist","TransformResult","prevResultString","transformer","newResult","UPPER_A_CP","codePointAt","UPPER_Z_CP","_AZClassRanges","classRange","lower","isSurrogatePair","_getSurrogatePairFrom","trail","lead","floor","getSurrogatePairFromCodePoint","repeat","code","displaySymbolAsValue","sortCharClass","aValue","getSortValue","bValue","isMeta","isControl","fitsInMetas","metas","hasIUFlags","fitsInMeta","meta","fitsInMetaS","fitsInMetaD","fitsInMetaW","combinesWithPrecedingClassRange","fitsInClassRange","isMetaWCharOrCode","combinesWithFollowingClassRange","charCombinesWithPrecedingChars","nbMergedChars","currentExpression","precedingExpresion","_hasIUFlags","splice","getParent","insertChildAt","sources","childPath","getChild","jsonEncode","_hasIFlag","isFullNumberRange","rewriteNumberRanges","hasIFlag","hasUFlag","numberPath","lowerCasePath","upperCasePath","underscorePath","u017fPath","u212aPath","isMetaChar","isLowerCaseRange","isUpperCaseRange","isUnderscore","isCodePoint","rewriteWordRanges","whitespaceRangeTests","nNode","rewriteWhitespaceRanges","isChar","shouldEscape","previousNode","hasAppropriateSiblings","isAppropriateChar","_node$expressions$","getInverseMeta","LOWER_A_CP","LOWER_Z_CP","DIGIT_0_CP","DIGIT_9_CP","fromCodePoint","newChar","parentType","needsEscape","consumeNumbers","startIndex","rtl","siblingNode","abs","isSimpleChar","_hasXFlag","hasXFlag","nbFollowingNumbers","nextSiblingNode","preservesOpeningCurlyBraceEscape","nbPrecedingNumbers","previousSiblingNode","preservesClosingCurlyBraceEscape","preservesEscape","preservesInCharClass","shouldUnescape","NodePath","increaseQuantifierByOne","combineRepeatingPatternLeft","alternative","child","nbPossibleLengths","ceil","getForNode","hasEqualSource","combineWithPreviousRepetition","previousChild","combineRepetitionWithPrevious","rightLength","disjunctionToList","listToDisjunction","uniqueNodesMap","encoded","handlers","charset","shouldProcess","characterClass","rewriteOpenZero","rewriteOpenOne","parentPath","rewriteExactOne","isGreedyOpenRange","extractFromTo","previousSibling","getPreviousSibling","_extractFromTo","previousSiblingFrom","previousSiblingTo","_extractFromTo2","nodeFrom","nodeTo","yytext","yy","__","__loc","yyloc","startOffset","endOffset","startLine","endLine","startColumn","endColumn","productions","_1","_1loc","_2","_3","_4","_2loc","_3loc","_4loc","Node","checkFlags","loc","_loc","separatorIdx","isShorthand","unicodeProperties","isGeneralCategoryValue","isBinaryProperty","isBinaryPropertyName","isValidName","SyntaxError","isValidValue","canonicalName","getCanonicalName","canonicalValue","getCanonicalValue","text","textLoc","capturingGroupsCount","decodeUnicodeGroupName","namedGroups","charRe","chars","uReStart","ucpReStart","NamedGroupRefOrChars","getRange","allowGroupNameDuplicates","checkClassRange","tokens","stack","tokenizer","lexRules","validateUnicodeGroupName","getCurrentState","popState","pushState","lexRulesByConditions","EOF_TOKEN","initString","_string","_cursor","_states","_tokensQueue","_currentLine","_currentColumn","_currentLineBeginOffset","_tokenStartOffset","_tokenEndOffset","_tokenStartLine","_tokenEndLine","_tokenStartColumn","_tokenEndColumn","getStates","begin","getNextToken","onToken","_toToken","hasMoreTokens","lexRulesForState","lexRuleIndex","lexRule","_match","token","tokensToQueue","isEOF","throwUnexpectedToken","line","column","lineSource","lineData","getCursor","getCurrentLine","getCurrentColumn","_captureLocation","nlRe","nlMatch","tokenType","lexer","yyparse","setOptions","getOptions","parseOptions","globalOptions","onParseBegin","shiftedToken","unexpectedEndOfInput","unexpectedToken","_loc2","onShift","semanticValue","productionNumber","production","hasSemanticAction","semanticValueArgs","locationArgs","rhsLength","stackEntry","reduceStackEntry","semanticActionArgs","symbolToReduceWith","onParseEnd","setTokenizer","customTokenizer","getTokenizer","parsingString","isFinite","lastSlash","lastIndexOf","_value$split$slice2","hex","validFlags","seen","flag","ucpReAnywhere","uidRe","leadSurrogate","trailSurrogate","leadSurrogateOnly","trailSurrogateOnly","nonSurrogate","offset","parseError","regexpTreeParser","generatedParseFn","bind","NON_BINARY_PROP_NAMES_TO_ALIASES","General_Category","Script","Script_Extensions","NON_BINARY_ALIASES_TO_PROP_NAMES","inverseMap","BINARY_PROP_NAMES_TO_ALIASES","ASCII","ASCII_Hex_Digit","Alphabetic","Any","Assigned","Bidi_Control","Bidi_Mirrored","Case_Ignorable","Cased","Changes_When_Casefolded","Changes_When_Casemapped","Changes_When_Lowercased","Changes_When_NFKC_Casefolded","Changes_When_Titlecased","Changes_When_Uppercased","Dash","Default_Ignorable_Code_Point","Deprecated","Diacritic","Emoji","Emoji_Component","Emoji_Modifier","Emoji_Modifier_Base","Emoji_Presentation","Extended_Pictographic","Extender","Grapheme_Base","Grapheme_Extend","Hex_Digit","IDS_Binary_Operator","IDS_Trinary_Operator","ID_Continue","ID_Start","Ideographic","Join_Control","Logical_Order_Exception","Lowercase","Noncharacter_Code_Point","Pattern_Syntax","Pattern_White_Space","Quotation_Mark","Radical","Regional_Indicator","Sentence_Terminal","Soft_Dotted","Terminal_Punctuation","Unified_Ideograph","Uppercase","Variation_Selector","White_Space","XID_Continue","XID_Start","BINARY_ALIASES_TO_PROP_NAMES","GENERAL_CATEGORY_VALUE_TO_ALIASES","Cased_Letter","Close_Punctuation","Connector_Punctuation","Control","Currency_Symbol","Dash_Punctuation","Decimal_Number","Enclosing_Mark","Final_Punctuation","Format","Initial_Punctuation","Letter","Letter_Number","Line_Separator","Lowercase_Letter","Mark","Math_Symbol","Modifier_Letter","Modifier_Symbol","Nonspacing_Mark","Open_Punctuation","Other","Other_Letter","Other_Number","Other_Punctuation","Other_Symbol","Paragraph_Separator","Private_Use","Punctuation","Separator","Space_Separator","Spacing_Mark","Surrogate","Titlecase_Letter","Unassigned","Uppercase_Letter","GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES","SCRIPT_VALUE_TO_ALIASES","Adlam","Ahom","Anatolian_Hieroglyphs","Arabic","Armenian","Avestan","Balinese","Bamum","Bassa_Vah","Batak","Bengali","Bhaiksuki","Bopomofo","Brahmi","Braille","Buginese","Buhid","Canadian_Aboriginal","Carian","Caucasian_Albanian","Chakma","Cham","Cherokee","Common","Coptic","Cuneiform","Cypriot","Cyrillic","Deseret","Devanagari","Dogra","Duployan","Egyptian_Hieroglyphs","Elbasan","Ethiopic","Georgian","Glagolitic","Gothic","Grantha","Greek","Gujarati","Gunjala_Gondi","Gurmukhi","Han","Hangul","Hanifi_Rohingya","Hanunoo","Hatran","Hebrew","Hiragana","Imperial_Aramaic","Inherited","Inscriptional_Pahlavi","Inscriptional_Parthian","Javanese","Kaithi","Kannada","Katakana","Kayah_Li","Kharoshthi","Khmer","Khojki","Khudawadi","Lao","Latin","Lepcha","Limbu","Linear_A","Linear_B","Lisu","Lycian","Lydian","Mahajani","Makasar","Malayalam","Mandaic","Manichaean","Marchen","Medefaidrin","Masaram_Gondi","Meetei_Mayek","Mende_Kikakui","Meroitic_Cursive","Meroitic_Hieroglyphs","Miao","Modi","Mongolian","Mro","Multani","Myanmar","Nabataean","New_Tai_Lue","Newa","Nko","Nushu","Ogham","Ol_Chiki","Old_Hungarian","Old_Italic","Old_North_Arabian","Old_Permic","Old_Persian","Old_Sogdian","Old_South_Arabian","Old_Turkic","Oriya","Osage","Osmanya","Pahawh_Hmong","Palmyrene","Pau_Cin_Hau","Phags_Pa","Phoenician","Psalter_Pahlavi","Rejang","Runic","Samaritan","Saurashtra","Sharada","Shavian","Siddham","SignWriting","Sinhala","Sogdian","Sora_Sompeng","Soyombo","Sundanese","Syloti_Nagri","Syriac","Tagalog","Tagbanwa","Tai_Le","Tai_Tham","Tai_Viet","Takri","Tamil","Tangut","Telugu","Thaana","Thai","Tibetan","Tifinagh","Tirhuta","Ugaritic","Vai","Warang_Citi","Yi","Zanabazar_Square","SCRIPT_VALUE_ALIASES_TO_VALUE","inverse","isScriptCategoryValue","isAlias","isGeneralCategoryName","isScriptCategoryName","compatTranspiler","optimizer","_traverse","fa","regexpTree","traverse","toRegExp","compat","compatTranspile","getSource","getFlags","_ast","_source","_regexp","_extra","asNodes","getPathFor","prop","initRegistry","root","skipProperty","visit","res","_prop","traversingIndexStack","updateTraversingIndex","astTraverse","isRemoved","handlerFuncPre","handlerFuncPost","DEFAULT_COLLECTION_PROP","DEFAULT_SINGLE_PROP","property","_enforceProp","setChild","getTraversingIndex","_rebuildIndex","registry","delete","newNode","nodeProps","jsonSkipLoc","format","useLoc","clear","dx","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","getter","__esModule","definition","Promise","globalThis","Function","toStringTag","nmd","paths","children","document","baseURI","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","nc","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js b/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js deleted file mode 100644 index e1d71865bc8a2..0000000000000 --- a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js +++ /dev/null @@ -1,316 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["core_src_components_LegacyDialogPrompt_vue"],{ - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts": -/*!******************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts ***! - \******************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDialog.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDialog.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcTextField_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcTextField.js */ "./node_modules/@nextcloud/vue/dist/Components/NcTextField.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcPasswordField_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcPasswordField.js */ "./node_modules/@nextcloud/vue/dist/Components/NcPasswordField.mjs"); - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ - name: 'LegacyDialogPrompt', - components: { - NcDialog: _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_1__["default"], - NcTextField: _nextcloud_vue_dist_Components_NcTextField_js__WEBPACK_IMPORTED_MODULE_2__["default"], - NcPasswordField: _nextcloud_vue_dist_Components_NcPasswordField_js__WEBPACK_IMPORTED_MODULE_3__["default"] - }, - props: { - name: { - type: String, - required: true - }, - text: { - type: String, - required: true - }, - isPassword: { - type: Boolean, - required: true - }, - inputName: { - type: String, - default: 'prompt-input' - } - }, - emits: ['close'], - data() { - return { - inputValue: '' - }; - }, - computed: { - buttons() { - return [{ - label: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('core', 'No'), - callback: () => this.$emit('close', false, this.inputValue) - }, { - label: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('core', 'Yes'), - type: 'primary', - callback: () => this.$emit('close', true, this.inputValue) - }]; - } - }, - mounted() { - this.$nextTick(() => { - var _this$$refs$input, _this$$refs$input$foc; - return (_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 || (_this$$refs$input$foc = _this$$refs$input.focus) === null || _this$$refs$input$foc === void 0 ? void 0 : _this$$refs$input$foc.call(_this$$refs$input); - }); - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true": -/*!*******************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true ***! - \*******************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c("NcDialog", { - attrs: { - "dialog-classes": "legacy-prompt__dialog", - buttons: _vm.buttons, - name: _vm.name - }, - on: { - "update:open": function ($event) { - return _vm.$emit("close", false, _vm.inputValue); - } - } - }, [_c("p", { - staticClass: "legacy-prompt__text", - domProps: { - textContent: _vm._s(_vm.text) - } - }), _vm._v(" "), _vm.isPassword ? _c("NcPasswordField", { - ref: "input", - staticClass: "legacy-prompt__input", - attrs: { - autocomplete: "new-password", - label: _vm.name, - name: _vm.inputName, - value: _vm.inputValue - }, - on: { - "update:value": function ($event) { - _vm.inputValue = $event; - } - } - }) : _c("NcTextField", { - ref: "input", - staticClass: "legacy-prompt__input", - attrs: { - label: _vm.name, - name: _vm.inputName, - value: _vm.inputValue - }, - on: { - "update:value": function ($event) { - _vm.inputValue = $event; - } - } - })], 1); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.legacy-prompt__text[data-v-e8e6d9be] { - margin-block: 0 0.75em; -} -.legacy-prompt__input[data-v-e8e6d9be] { - margin-block: 0 1em; -} -[data-v-e8e6d9be] .legacy-prompt__dialog .dialog__actions { - min-width: calc(100% - 12px); - justify-content: space-between; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./core/src/components/LegacyDialogPrompt.vue": -/*!****************************************************!*\ - !*** ./core/src/components/LegacyDialogPrompt.vue ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true */ "./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true"); -/* harmony import */ var _LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./LegacyDialogPrompt.vue?vue&type=script&lang=ts */ "./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts"); -/* harmony import */ var _LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss */ "./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "e8e6d9be", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "core/src/components/LegacyDialogPrompt.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts": -/*!****************************************************************************!*\ - !*** ./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true": -/*!**********************************************************************************************!*\ - !*** ./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true ***! - \**********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_template_id_e8e6d9be_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true"); - - -/***/ }), - -/***/ "./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss": -/*!*************************************************************************************************************!*\ - !*** ./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss ***! - \*************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_LegacyDialogPrompt_vue_vue_type_style_index_0_id_e8e6d9be_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss"); - - -/***/ }) - -}]); -//# sourceMappingURL=core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map?v=0191abdcf4a0f3a53b42 \ No newline at end of file diff --git a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map b/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map deleted file mode 100644 index b938c6643b2e2..0000000000000 --- a/dist/core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"core_src_components_LegacyDialogPrompt_vue-core_src_components_LegacyDialogPrompt_vue.js?v=0191abdcf4a0f3a53b42","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAkBA;AACA;;;;;;;;;;;;;;;ACvCA","sources":["webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue?vue&type=script&lang=ts","webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true","webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?9901","webpack:///nextcloud/core/src/components/LegacyDialogPrompt.vue","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?c3e8","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?4471","webpack://nextcloud/./core/src/components/LegacyDialogPrompt.vue?aa3c"],"sourcesContent":["import { translate as t } from '@nextcloud/l10n';\nimport { defineComponent } from 'vue';\nimport NcDialog from '@nextcloud/vue/dist/Components/NcDialog.js';\nimport NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js';\nimport NcPasswordField from '@nextcloud/vue/dist/Components/NcPasswordField.js';\nexport default defineComponent({\n name: 'LegacyDialogPrompt',\n components: {\n NcDialog,\n NcTextField,\n NcPasswordField\n },\n props: {\n name: {\n type: String,\n required: true\n },\n text: {\n type: String,\n required: true\n },\n isPassword: {\n type: Boolean,\n required: true\n },\n inputName: {\n type: String,\n default: 'prompt-input'\n }\n },\n emits: ['close'],\n data() {\n return {\n inputValue: ''\n };\n },\n computed: {\n buttons() {\n return [{\n label: t('core', 'No'),\n callback: () => this.$emit('close', false, this.inputValue)\n }, {\n label: t('core', 'Yes'),\n type: 'primary',\n callback: () => this.$emit('close', true, this.inputValue)\n }];\n }\n },\n mounted() {\n this.$nextTick(() => {\n var _this$$refs$input, _this$$refs$input$foc;\n return (_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 || (_this$$refs$input$foc = _this$$refs$input.focus) === null || _this$$refs$input$foc === void 0 ? void 0 : _this$$refs$input$foc.call(_this$$refs$input);\n });\n }\n});","var render = function render() {\n var _vm = this,\n _c = _vm._self._c,\n _setup = _vm._self._setupProxy;\n return _c(\"NcDialog\", {\n attrs: {\n \"dialog-classes\": \"legacy-prompt__dialog\",\n buttons: _vm.buttons,\n name: _vm.name\n },\n on: {\n \"update:open\": function ($event) {\n return _vm.$emit(\"close\", false, _vm.inputValue);\n }\n }\n }, [_c(\"p\", {\n staticClass: \"legacy-prompt__text\",\n domProps: {\n textContent: _vm._s(_vm.text)\n }\n }), _vm._v(\" \"), _vm.isPassword ? _c(\"NcPasswordField\", {\n ref: \"input\",\n staticClass: \"legacy-prompt__input\",\n attrs: {\n autocomplete: \"new-password\",\n label: _vm.name,\n name: _vm.inputName,\n value: _vm.inputValue\n },\n on: {\n \"update:value\": function ($event) {\n _vm.inputValue = $event;\n }\n }\n }) : _c(\"NcTextField\", {\n ref: \"input\",\n staticClass: \"legacy-prompt__input\",\n attrs: {\n label: _vm.name,\n name: _vm.inputName,\n value: _vm.inputValue\n },\n on: {\n \"update:value\": function ($event) {\n _vm.inputValue = $event;\n }\n }\n })], 1);\n};\nvar staticRenderFns = [];\nrender._withStripped = true;\nexport { render, staticRenderFns };","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.legacy-prompt__text[data-v-e8e6d9be] {\n margin-block: 0 0.75em;\n}\n.legacy-prompt__input[data-v-e8e6d9be] {\n margin-block: 0 1em;\n}\n[data-v-e8e6d9be] .legacy-prompt__dialog .dialog__actions {\n min-width: calc(100% - 12px);\n justify-content: space-between;\n}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true\"\nimport script from \"./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"\nexport * from \"./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"\nimport style0 from \"./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8e6d9be\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"/home/admin/git/server/node_modules/vue-hot-reload-api/dist/index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!api.isRecorded('e8e6d9be')) {\n api.createRecord('e8e6d9be', component.options)\n } else {\n api.reload('e8e6d9be', component.options)\n }\n module.hot.accept(\"./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true\", function () {\n api.rerender('e8e6d9be', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n })\n }\n}\ncomponent.options.__file = \"core/src/components/LegacyDialogPrompt.vue\"\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=script&lang=ts\"","export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=template&id=e8e6d9be&scoped=true\"","export * from \"-!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LegacyDialogPrompt.vue?vue&type=style&index=0&id=e8e6d9be&scoped=true&lang=scss\""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js b/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js deleted file mode 100644 index 7861c7d8a3e63..0000000000000 --- a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js +++ /dev/null @@ -1,10902 +0,0 @@ -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["core_src_utils_RedirectUnsupportedBrowsers_js"],{ - -/***/ "./node_modules/@nextcloud/browserslist-config/browserlist.config.js": -/*!***************************************************************************!*\ - !*** ./node_modules/@nextcloud/browserslist-config/browserlist.config.js ***! - \***************************************************************************/ -/***/ ((module) => { - -module.exports = [ - '>0.25%', - 'not op_mini all', - 'not dead', - 'Firefox ESR', -]; - - -/***/ }), - -/***/ "./core/src/logger.js": -/*!****************************!*\ - !*** ./core/src/logger.js ***! - \****************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/logger */ "./node_modules/@nextcloud/logger/dist/index.js"); -/** - * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - - - -const getLogger = user => { - if (user === null) { - return (0,_nextcloud_logger__WEBPACK_IMPORTED_MODULE_1__.getLoggerBuilder)().setApp('core').build(); - } - return (0,_nextcloud_logger__WEBPACK_IMPORTED_MODULE_1__.getLoggerBuilder)().setApp('core').setUid(user.uid).build(); -}; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (getLogger((0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_0__.getCurrentUser)())); - -/***/ }), - -/***/ "./core/src/services/BrowserStorageService.js": -/*!****************************************************!*\ - !*** ./core/src/services/BrowserStorageService.js ***! - \****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_browser_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/browser-storage */ "./node_modules/@nextcloud/browser-storage/dist/index.js"); -/** - * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,_nextcloud_browser_storage__WEBPACK_IMPORTED_MODULE_0__.getBuilder)('core').clearOnLogout().persist().build()); - -/***/ }), - -/***/ "./core/src/services/BrowsersListService.js": -/*!**************************************************!*\ - !*** ./core/src/services/BrowsersListService.js ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ supportedBrowsers: () => (/* binding */ supportedBrowsers), -/* harmony export */ supportedBrowsersRegExp: () => (/* binding */ supportedBrowsersRegExp) -/* harmony export */ }); -/* harmony import */ var browserslist_useragent_regexp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! browserslist-useragent-regexp */ "./node_modules/browserslist-useragent-regexp/dist/index.js"); -/* harmony import */ var browserslist__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! browserslist */ "./node_modules/browserslist/index.js"); -/* harmony import */ var browserslist__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(browserslist__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/browserslist-config */ "./node_modules/@nextcloud/browserslist-config/browserlist.config.js"); -/* harmony import */ var _nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2__); -/** - * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - - -// eslint-disable-next-line n/no-extraneous-import - - - -// Generate a regex that matches user agents to detect incompatible browsers -const supportedBrowsersRegExp = (0,browserslist_useragent_regexp__WEBPACK_IMPORTED_MODULE_0__.getUserAgentRegex)({ - allowHigherVersions: true, - browsers: (_nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2___default()) -}); -const supportedBrowsers = browserslist__WEBPACK_IMPORTED_MODULE_1___default()((_nextcloud_browserslist_config__WEBPACK_IMPORTED_MODULE_2___default())); - -/***/ }), - -/***/ "./core/src/utils/RedirectUnsupportedBrowsers.js": -/*!*******************************************************!*\ - !*** ./core/src/utils/RedirectUnsupportedBrowsers.js ***! - \*******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ browserStorageKey: () => (/* binding */ browserStorageKey), -/* harmony export */ testSupportedBrowser: () => (/* binding */ testSupportedBrowser) -/* harmony export */ }); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _services_BrowsersListService_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../services/BrowsersListService.js */ "./core/src/services/BrowsersListService.js"); -/* harmony import */ var _services_BrowserStorageService_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../services/BrowserStorageService.js */ "./core/src/services/BrowserStorageService.js"); -/* harmony import */ var _logger_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../logger.js */ "./core/src/logger.js"); -/* provided dependency */ var Buffer = __webpack_require__(/*! ./node_modules/buffer/index.js */ "./node_modules/buffer/index.js")["Buffer"]; -/** - * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ - - - - - -const browserStorageKey = 'unsupported-browser-ignore'; -const redirectPath = (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_0__.generateUrl)('/unsupported'); -const isBrowserOverridden = _services_BrowserStorageService_js__WEBPACK_IMPORTED_MODULE_2__["default"].getItem(browserStorageKey) === 'true'; - -/** - * Test the current browser user agent against our official browserslist config - * and redirect if unsupported - */ -const testSupportedBrowser = function () { - if (_services_BrowsersListService_js__WEBPACK_IMPORTED_MODULE_1__.supportedBrowsersRegExp.test(navigator.userAgent)) { - _logger_js__WEBPACK_IMPORTED_MODULE_3__["default"].debug('this browser is officially supported ! 🚀'); - return; - } - - // If incompatible BUT ignored, let's keep going - if (isBrowserOverridden) { - _logger_js__WEBPACK_IMPORTED_MODULE_3__["default"].debug('this browser is NOT supported but has been manually overridden ! ⚠️'); - return; - } - - // If incompatible, NOT overridden AND NOT already on the warning page, - // redirect to the unsupported warning page - if (window.location.pathname.indexOf(redirectPath) === -1) { - const redirectUrl = window.location.href.replace(window.location.origin, ''); - const base64Param = Buffer.from(redirectUrl).toString('base64'); - history.pushState(null, null, "".concat(redirectPath, "?redirect_url=").concat(base64Param)); - window.location.reload(); - } -}; - -/***/ }), - -/***/ "./node_modules/browserslist/browser.js": -/*!**********************************************!*\ - !*** ./node_modules/browserslist/browser.js ***! - \**********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var BrowserslistError = __webpack_require__(/*! ./error */ "./node_modules/browserslist/error.js") - -function noop() {} - -module.exports = { - loadQueries: function loadQueries() { - throw new BrowserslistError( - 'Sharable configs are not supported in client-side build of Browserslist' - ) - }, - - getStat: function getStat(opts) { - return opts.stats - }, - - loadConfig: function loadConfig(opts) { - if (opts.config) { - throw new BrowserslistError( - 'Browserslist config are not supported in client-side build' - ) - } - }, - - loadCountry: function loadCountry() { - throw new BrowserslistError( - 'Country statistics are not supported ' + - 'in client-side build of Browserslist' - ) - }, - - loadFeature: function loadFeature() { - throw new BrowserslistError( - 'Supports queries are not available in client-side build of Browserslist' - ) - }, - - currentNode: function currentNode(resolve, context) { - return resolve(['maintained node versions'], context)[0] - }, - - parseConfig: noop, - - readConfig: noop, - - findConfig: noop, - - clearCaches: noop, - - oldDataWarning: noop, - - env: {} -} - - -/***/ }), - -/***/ "./node_modules/browserslist/error.js": -/*!********************************************!*\ - !*** ./node_modules/browserslist/error.js ***! - \********************************************/ -/***/ ((module) => { - -function BrowserslistError(message) { - this.name = 'BrowserslistError' - this.message = message - this.browserslist = true - if (Error.captureStackTrace) { - Error.captureStackTrace(this, BrowserslistError) - } -} - -BrowserslistError.prototype = Error.prototype - -module.exports = BrowserslistError - - -/***/ }), - -/***/ "./node_modules/browserslist/index.js": -/*!********************************************!*\ - !*** ./node_modules/browserslist/index.js ***! - \********************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var jsReleases = __webpack_require__(/*! node-releases/data/processed/envs.json */ "./node_modules/node-releases/data/processed/envs.json") -var agents = (__webpack_require__(/*! caniuse-lite/dist/unpacker/agents */ "./node_modules/caniuse-lite/dist/unpacker/agents.js").agents) -var jsEOL = __webpack_require__(/*! node-releases/data/release-schedule/release-schedule.json */ "./node_modules/node-releases/data/release-schedule/release-schedule.json") -var path = __webpack_require__(/*! path */ "?3465") -var e2c = __webpack_require__(/*! electron-to-chromium/versions */ "./node_modules/electron-to-chromium/versions.js") - -var BrowserslistError = __webpack_require__(/*! ./error */ "./node_modules/browserslist/error.js") -var parse = __webpack_require__(/*! ./parse */ "./node_modules/browserslist/parse.js") -var env = __webpack_require__(/*! ./node */ "./node_modules/browserslist/browser.js") // Will load browser.js in webpack - -var YEAR = 365.259641 * 24 * 60 * 60 * 1000 -var ANDROID_EVERGREEN_FIRST = '37' -var OP_MOB_BLINK_FIRST = 14 - -// Helpers - -function isVersionsMatch(versionA, versionB) { - return (versionA + '.').indexOf(versionB + '.') === 0 -} - -function isEolReleased(name) { - var version = name.slice(1) - return browserslist.nodeVersions.some(function (i) { - return isVersionsMatch(i, version) - }) -} - -function normalize(versions) { - return versions.filter(function (version) { - return typeof version === 'string' - }) -} - -function normalizeElectron(version) { - var versionToUse = version - if (version.split('.').length === 3) { - versionToUse = version.split('.').slice(0, -1).join('.') - } - return versionToUse -} - -function nameMapper(name) { - return function mapName(version) { - return name + ' ' + version - } -} - -function getMajor(version) { - return parseInt(version.split('.')[0]) -} - -function getMajorVersions(released, number) { - if (released.length === 0) return [] - var majorVersions = uniq(released.map(getMajor)) - var minimum = majorVersions[majorVersions.length - number] - if (!minimum) { - return released - } - var selected = [] - for (var i = released.length - 1; i >= 0; i--) { - if (minimum > getMajor(released[i])) break - selected.unshift(released[i]) - } - return selected -} - -function uniq(array) { - var filtered = [] - for (var i = 0; i < array.length; i++) { - if (filtered.indexOf(array[i]) === -1) filtered.push(array[i]) - } - return filtered -} - -function fillUsage(result, name, data) { - for (var i in data) { - result[name + ' ' + i] = data[i] - } -} - -function generateFilter(sign, version) { - version = parseFloat(version) - if (sign === '>') { - return function (v) { - return parseFloat(v) > version - } - } else if (sign === '>=') { - return function (v) { - return parseFloat(v) >= version - } - } else if (sign === '<') { - return function (v) { - return parseFloat(v) < version - } - } else { - return function (v) { - return parseFloat(v) <= version - } - } -} - -function generateSemverFilter(sign, version) { - version = version.split('.').map(parseSimpleInt) - version[1] = version[1] || 0 - version[2] = version[2] || 0 - if (sign === '>') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(v, version) > 0 - } - } else if (sign === '>=') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(v, version) >= 0 - } - } else if (sign === '<') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(version, v) > 0 - } - } else { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(version, v) >= 0 - } - } -} - -function parseSimpleInt(x) { - return parseInt(x) -} - -function compare(a, b) { - if (a < b) return -1 - if (a > b) return +1 - return 0 -} - -function compareSemver(a, b) { - return ( - compare(parseInt(a[0]), parseInt(b[0])) || - compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) || - compare(parseInt(a[2] || '0'), parseInt(b[2] || '0')) - ) -} - -// this follows the npm-like semver behavior -function semverFilterLoose(operator, range) { - range = range.split('.').map(parseSimpleInt) - if (typeof range[1] === 'undefined') { - range[1] = 'x' - } - // ignore any patch version because we only return minor versions - // range[2] = 'x' - switch (operator) { - case '<=': - return function (version) { - version = version.split('.').map(parseSimpleInt) - return compareSemverLoose(version, range) <= 0 - } - case '>=': - default: - return function (version) { - version = version.split('.').map(parseSimpleInt) - return compareSemverLoose(version, range) >= 0 - } - } -} - -// this follows the npm-like semver behavior -function compareSemverLoose(version, range) { - if (version[0] !== range[0]) { - return version[0] < range[0] ? -1 : +1 - } - if (range[1] === 'x') { - return 0 - } - if (version[1] !== range[1]) { - return version[1] < range[1] ? -1 : +1 - } - return 0 -} - -function resolveVersion(data, version) { - if (data.versions.indexOf(version) !== -1) { - return version - } else if (browserslist.versionAliases[data.name][version]) { - return browserslist.versionAliases[data.name][version] - } else { - return false - } -} - -function normalizeVersion(data, version) { - var resolved = resolveVersion(data, version) - if (resolved) { - return resolved - } else if (data.versions.length === 1) { - return data.versions[0] - } else { - return false - } -} - -function filterByYear(since, context) { - since = since / 1000 - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var versions = Object.keys(data.releaseDate).filter(function (v) { - var date = data.releaseDate[v] - return date !== null && date >= since - }) - return selected.concat(versions.map(nameMapper(data.name))) - }, []) -} - -function cloneData(data) { - return { - name: data.name, - versions: data.versions, - released: data.released, - releaseDate: data.releaseDate - } -} - -function byName(name, context) { - name = name.toLowerCase() - name = browserslist.aliases[name] || name - if (context.mobileToDesktop && browserslist.desktopNames[name]) { - var desktop = browserslist.data[browserslist.desktopNames[name]] - if (name === 'android') { - return normalizeAndroidData(cloneData(browserslist.data[name]), desktop) - } else { - var cloned = cloneData(desktop) - cloned.name = name - return cloned - } - } - return browserslist.data[name] -} - -function normalizeAndroidVersions(androidVersions, chromeVersions) { - var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST) - return androidVersions - .filter(function (version) { - return /^(?:[2-4]\.|[34]$)/.test(version) - }) - .concat(chromeVersions.slice(iFirstEvergreen)) -} - -function copyObject(obj) { - var copy = {} - for (var key in obj) { - copy[key] = obj[key] - } - return copy -} - -function normalizeAndroidData(android, chrome) { - android.released = normalizeAndroidVersions(android.released, chrome.released) - android.versions = normalizeAndroidVersions(android.versions, chrome.versions) - android.releaseDate = copyObject(android.releaseDate) - android.released.forEach(function (v) { - if (android.releaseDate[v] === undefined) { - android.releaseDate[v] = chrome.releaseDate[v] - } - }) - return android -} - -function checkName(name, context) { - var data = byName(name, context) - if (!data) throw new BrowserslistError('Unknown browser ' + name) - return data -} - -function unknownQuery(query) { - return new BrowserslistError( - 'Unknown browser query `' + - query + - '`. ' + - 'Maybe you are using old Browserslist or made typo in query.' - ) -} - -// Adjusts last X versions queries for some mobile browsers, -// where caniuse data jumps from a legacy version to the latest -function filterJumps(list, name, nVersions, context) { - var jump = 1 - switch (name) { - case 'android': - if (context.mobileToDesktop) return list - var released = browserslist.data.chrome.released - jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST) - break - case 'op_mob': - var latest = browserslist.data.op_mob.released.slice(-1)[0] - jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1 - break - default: - return list - } - if (nVersions <= jump) { - return list.slice(-1) - } - return list.slice(jump - 1 - nVersions) -} - -function isSupported(flags, withPartial) { - return ( - typeof flags === 'string' && - (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0)) - ) -} - -function resolve(queries, context) { - return parse(QUERIES, queries).reduce(function (result, node, index) { - if (node.not && index === 0) { - throw new BrowserslistError( - 'Write any browsers query (for instance, `defaults`) ' + - 'before `' + - node.query + - '`' - ) - } - var type = QUERIES[node.type] - var array = type.select.call(browserslist, context, node).map(function (j) { - var parts = j.split(' ') - if (parts[1] === '0') { - return parts[0] + ' ' + byName(parts[0], context).versions[0] - } else { - return j - } - }) - - if (node.compose === 'and') { - if (node.not) { - return result.filter(function (j) { - return array.indexOf(j) === -1 - }) - } else { - return result.filter(function (j) { - return array.indexOf(j) !== -1 - }) - } - } else { - if (node.not) { - var filter = {} - array.forEach(function (j) { - filter[j] = true - }) - return result.filter(function (j) { - return !filter[j] - }) - } - return result.concat(array) - } - }, []) -} - -function prepareOpts(opts) { - if (typeof opts === 'undefined') opts = {} - - if (typeof opts.path === 'undefined') { - opts.path = path.resolve ? path.resolve('.') : '.' - } - - return opts -} - -function prepareQueries(queries, opts) { - if (typeof queries === 'undefined' || queries === null) { - var config = browserslist.loadConfig(opts) - if (config) { - queries = config - } else { - queries = browserslist.defaults - } - } - - return queries -} - -function checkQueries(queries) { - if (!(typeof queries === 'string' || Array.isArray(queries))) { - throw new BrowserslistError( - 'Browser queries must be an array or string. Got ' + typeof queries + '.' - ) - } -} - -var cache = {} - -function browserslist(queries, opts) { - opts = prepareOpts(opts) - queries = prepareQueries(queries, opts) - checkQueries(queries) - - var context = { - ignoreUnknownVersions: opts.ignoreUnknownVersions, - dangerousExtend: opts.dangerousExtend, - mobileToDesktop: opts.mobileToDesktop, - path: opts.path, - env: opts.env - } - - env.oldDataWarning(browserslist.data) - var stats = env.getStat(opts, browserslist.data) - if (stats) { - context.customUsage = {} - for (var browser in stats) { - fillUsage(context.customUsage, browser, stats[browser]) - } - } - - var cacheKey = JSON.stringify([queries, context]) - if (cache[cacheKey]) return cache[cacheKey] - - var result = uniq(resolve(queries, context)).sort(function (name1, name2) { - name1 = name1.split(' ') - name2 = name2.split(' ') - if (name1[0] === name2[0]) { - // assumptions on caniuse data - // 1) version ranges never overlaps - // 2) if version is not a range, it never contains `-` - var version1 = name1[1].split('-')[0] - var version2 = name2[1].split('-')[0] - return compareSemver(version2.split('.'), version1.split('.')) - } else { - return compare(name1[0], name2[0]) - } - }) - if (!env.env.BROWSERSLIST_DISABLE_CACHE) { - cache[cacheKey] = result - } - return result -} - -browserslist.parse = function (queries, opts) { - opts = prepareOpts(opts) - queries = prepareQueries(queries, opts) - checkQueries(queries) - return parse(QUERIES, queries) -} - -// Will be filled by Can I Use data below -browserslist.cache = {} -browserslist.data = {} -browserslist.usage = { - global: {}, - custom: null -} - -// Default browsers query -browserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead'] - -// Browser names aliases -browserslist.aliases = { - fx: 'firefox', - ff: 'firefox', - ios: 'ios_saf', - explorer: 'ie', - blackberry: 'bb', - explorermobile: 'ie_mob', - operamini: 'op_mini', - operamobile: 'op_mob', - chromeandroid: 'and_chr', - firefoxandroid: 'and_ff', - ucandroid: 'and_uc', - qqandroid: 'and_qq' -} - -// Can I Use only provides a few versions for some browsers (e.g. and_chr). -// Fallback to a similar browser for unknown versions -// Note op_mob is not included as its chromium versions are not in sync with Opera desktop -browserslist.desktopNames = { - and_chr: 'chrome', - and_ff: 'firefox', - ie_mob: 'ie', - android: 'chrome' // has extra processing logic -} - -// Aliases to work with joined versions like `ios_saf 7.0-7.1` -browserslist.versionAliases = {} - -browserslist.clearCaches = env.clearCaches -browserslist.parseConfig = env.parseConfig -browserslist.readConfig = env.readConfig -browserslist.findConfig = env.findConfig -browserslist.loadConfig = env.loadConfig - -browserslist.coverage = function (browsers, stats) { - var data - if (typeof stats === 'undefined') { - data = browserslist.usage.global - } else if (stats === 'my stats') { - var opts = {} - opts.path = path.resolve ? path.resolve('.') : '.' - var customStats = env.getStat(opts) - if (!customStats) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - data = {} - for (var browser in customStats) { - fillUsage(data, browser, customStats[browser]) - } - } else if (typeof stats === 'string') { - if (stats.length > 2) { - stats = stats.toLowerCase() - } else { - stats = stats.toUpperCase() - } - env.loadCountry(browserslist.usage, stats, browserslist.data) - data = browserslist.usage[stats] - } else { - if ('dataByBrowser' in stats) { - stats = stats.dataByBrowser - } - data = {} - for (var name in stats) { - for (var version in stats[name]) { - data[name + ' ' + version] = stats[name][version] - } - } - } - - return browsers.reduce(function (all, i) { - var usage = data[i] - if (usage === undefined) { - usage = data[i.replace(/ \S+$/, ' 0')] - } - return all + (usage || 0) - }, 0) -} - -function nodeQuery(context, node) { - var matched = browserslist.nodeVersions.filter(function (i) { - return isVersionsMatch(i, node.version) - }) - if (matched.length === 0) { - if (context.ignoreUnknownVersions) { - return [] - } else { - throw new BrowserslistError( - 'Unknown version ' + node.version + ' of Node.js' - ) - } - } - return ['node ' + matched[matched.length - 1]] -} - -function sinceQuery(context, node) { - var year = parseInt(node.year) - var month = parseInt(node.month || '01') - 1 - var day = parseInt(node.day || '01') - return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context) -} - -function coverQuery(context, node) { - var coverage = parseFloat(node.coverage) - var usage = browserslist.usage.global - if (node.place) { - if (node.place.match(/^my\s+stats$/i)) { - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - usage = context.customUsage - } else { - var place - if (node.place.length === 2) { - place = node.place.toUpperCase() - } else { - place = node.place.toLowerCase() - } - env.loadCountry(browserslist.usage, place, browserslist.data) - usage = browserslist.usage[place] - } - } - var versions = Object.keys(usage).sort(function (a, b) { - return usage[b] - usage[a] - }) - var coveraged = 0 - var result = [] - var version - for (var i = 0; i < versions.length; i++) { - version = versions[i] - if (usage[version] === 0) break - coveraged += usage[version] - result.push(version) - if (coveraged >= coverage) break - } - return result -} - -var QUERIES = { - last_major_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+major\s+versions?$/i, - select: function (context, node) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = getMajorVersions(data.released, node.versions) - list = list.map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return selected.concat(list) - }, []) - } - }, - last_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+versions?$/i, - select: function (context, node) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = data.released.slice(-node.versions) - list = list.map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return selected.concat(list) - }, []) - } - }, - last_electron_major_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i, - select: function (context, node) { - var validVersions = getMajorVersions(Object.keys(e2c), node.versions) - return validVersions.map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - last_node_major_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+node\s+major\s+versions?$/i, - select: function (context, node) { - return getMajorVersions(browserslist.nodeVersions, node.versions).map( - function (version) { - return 'node ' + version - } - ) - } - }, - last_browser_major_versions: { - matches: ['versions', 'browser'], - regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - var validVersions = getMajorVersions(data.released, node.versions) - var list = validVersions.map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return list - } - }, - last_electron_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+electron\s+versions?$/i, - select: function (context, node) { - return Object.keys(e2c) - .slice(-node.versions) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - last_node_versions: { - matches: ['versions'], - regexp: /^last\s+(\d+)\s+node\s+versions?$/i, - select: function (context, node) { - return browserslist.nodeVersions - .slice(-node.versions) - .map(function (version) { - return 'node ' + version - }) - } - }, - last_browser_versions: { - matches: ['versions', 'browser'], - regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - var list = data.released.slice(-node.versions).map(nameMapper(data.name)) - list = filterJumps(list, data.name, node.versions, context) - return list - } - }, - unreleased_versions: { - matches: [], - regexp: /^unreleased\s+versions$/i, - select: function (context) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = data.versions.filter(function (v) { - return data.released.indexOf(v) === -1 - }) - list = list.map(nameMapper(data.name)) - return selected.concat(list) - }, []) - } - }, - unreleased_electron_versions: { - matches: [], - regexp: /^unreleased\s+electron\s+versions?$/i, - select: function () { - return [] - } - }, - unreleased_browser_versions: { - matches: ['browser'], - regexp: /^unreleased\s+(\w+)\s+versions?$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - return data.versions - .filter(function (v) { - return data.released.indexOf(v) === -1 - }) - .map(nameMapper(data.name)) - } - }, - last_years: { - matches: ['years'], - regexp: /^last\s+(\d*.?\d+)\s+years?$/i, - select: function (context, node) { - return filterByYear(Date.now() - YEAR * node.years, context) - } - }, - since_y: { - matches: ['year'], - regexp: /^since (\d+)$/i, - select: sinceQuery - }, - since_y_m: { - matches: ['year', 'month'], - regexp: /^since (\d+)-(\d+)$/i, - select: sinceQuery - }, - since_y_m_d: { - matches: ['year', 'month', 'day'], - regexp: /^since (\d+)-(\d+)-(\d+)$/i, - select: sinceQuery - }, - popularity: { - matches: ['sign', 'popularity'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - var usage = browserslist.usage.global - return Object.keys(usage).reduce(function (result, version) { - if (node.sign === '>') { - if (usage[version] > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (usage[version] < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (usage[version] <= popularity) { - result.push(version) - } - } else if (usage[version] >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - popularity_in_my_stats: { - matches: ['sign', 'popularity'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - var usage = context.customUsage - return Object.keys(usage).reduce(function (result, version) { - var percentage = usage[version] - if (percentage == null) { - return result - } - - if (node.sign === '>') { - if (percentage > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (percentage < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (percentage <= popularity) { - result.push(version) - } - } else if (percentage >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - popularity_in_config_stats: { - matches: ['sign', 'popularity', 'config'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - var stats = env.loadStat(context, node.config, browserslist.data) - if (stats) { - context.customUsage = {} - for (var browser in stats) { - fillUsage(context.customUsage, browser, stats[browser]) - } - } - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - var usage = context.customUsage - return Object.keys(usage).reduce(function (result, version) { - var percentage = usage[version] - if (percentage == null) { - return result - } - - if (node.sign === '>') { - if (percentage > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (percentage < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (percentage <= popularity) { - result.push(version) - } - } else if (percentage >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - popularity_in_place: { - matches: ['sign', 'popularity', 'place'], - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/, - select: function (context, node) { - var popularity = parseFloat(node.popularity) - var place = node.place - if (place.length === 2) { - place = place.toUpperCase() - } else { - place = place.toLowerCase() - } - env.loadCountry(browserslist.usage, place, browserslist.data) - var usage = browserslist.usage[place] - return Object.keys(usage).reduce(function (result, version) { - var percentage = usage[version] - if (percentage == null) { - return result - } - - if (node.sign === '>') { - if (percentage > popularity) { - result.push(version) - } - } else if (node.sign === '<') { - if (percentage < popularity) { - result.push(version) - } - } else if (node.sign === '<=') { - if (percentage <= popularity) { - result.push(version) - } - } else if (percentage >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - cover: { - matches: ['coverage'], - regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/i, - select: coverQuery - }, - cover_in: { - matches: ['coverage', 'place'], - regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/i, - select: coverQuery - }, - supports: { - matches: ['supportType', 'feature'], - regexp: /^(?:(fully|partially)\s+)?supports\s+([\w-]+)$/, - select: function (context, node) { - env.loadFeature(browserslist.cache, node.feature) - var withPartial = node.supportType !== 'fully' - var features = browserslist.cache[node.feature] - var result = [] - for (var name in features) { - var data = byName(name, context) - // Only check desktop when latest released mobile has support - var checkDesktop = - context.mobileToDesktop && - name in browserslist.desktopNames && - isSupported(features[name][data.released.slice(-1)[0]], withPartial) - data.versions.forEach(function (version) { - var flags = features[name][version] - if (flags === undefined && checkDesktop) { - flags = features[browserslist.desktopNames[name]][version] - } - if (isSupported(flags, withPartial)) { - result.push(name + ' ' + version) - } - }) - } - return result - } - }, - electron_range: { - matches: ['from', 'to'], - regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, node) { - var fromToUse = normalizeElectron(node.from) - var toToUse = normalizeElectron(node.to) - var from = parseFloat(node.from) - var to = parseFloat(node.to) - if (!e2c[fromToUse]) { - throw new BrowserslistError('Unknown version ' + from + ' of electron') - } - if (!e2c[toToUse]) { - throw new BrowserslistError('Unknown version ' + to + ' of electron') - } - return Object.keys(e2c) - .filter(function (i) { - var parsed = parseFloat(i) - return parsed >= from && parsed <= to - }) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - node_range: { - matches: ['from', 'to'], - regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, node) { - return browserslist.nodeVersions - .filter(semverFilterLoose('>=', node.from)) - .filter(semverFilterLoose('<=', node.to)) - .map(function (v) { - return 'node ' + v - }) - } - }, - browser_range: { - matches: ['browser', 'from', 'to'], - regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, node) { - var data = checkName(node.browser, context) - var from = parseFloat(normalizeVersion(data, node.from) || node.from) - var to = parseFloat(normalizeVersion(data, node.to) || node.to) - function filter(v) { - var parsed = parseFloat(v) - return parsed >= from && parsed <= to - } - return data.released.filter(filter).map(nameMapper(data.name)) - } - }, - electron_ray: { - matches: ['sign', 'version'], - regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i, - select: function (context, node) { - var versionToUse = normalizeElectron(node.version) - return Object.keys(e2c) - .filter(generateFilter(node.sign, versionToUse)) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - node_ray: { - matches: ['sign', 'version'], - regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i, - select: function (context, node) { - return browserslist.nodeVersions - .filter(generateSemverFilter(node.sign, node.version)) - .map(function (v) { - return 'node ' + v - }) - } - }, - browser_ray: { - matches: ['browser', 'sign', 'version'], - regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/, - select: function (context, node) { - var version = node.version - var data = checkName(node.browser, context) - var alias = browserslist.versionAliases[data.name][version] - if (alias) version = alias - return data.released - .filter(generateFilter(node.sign, version)) - .map(function (v) { - return data.name + ' ' + v - }) - } - }, - firefox_esr: { - matches: [], - regexp: /^(firefox|ff|fx)\s+esr$/i, - select: function () { - return ['firefox 115'] - } - }, - opera_mini_all: { - matches: [], - regexp: /(operamini|op_mini)\s+all/i, - select: function () { - return ['op_mini all'] - } - }, - electron_version: { - matches: ['version'], - regexp: /^electron\s+([\d.]+)$/i, - select: function (context, node) { - var versionToUse = normalizeElectron(node.version) - var chrome = e2c[versionToUse] - if (!chrome) { - throw new BrowserslistError( - 'Unknown version ' + node.version + ' of electron' - ) - } - return ['chrome ' + chrome] - } - }, - node_major_version: { - matches: ['version'], - regexp: /^node\s+(\d+)$/i, - select: nodeQuery - }, - node_minor_version: { - matches: ['version'], - regexp: /^node\s+(\d+\.\d+)$/i, - select: nodeQuery - }, - node_patch_version: { - matches: ['version'], - regexp: /^node\s+(\d+\.\d+\.\d+)$/i, - select: nodeQuery - }, - current_node: { - matches: [], - regexp: /^current\s+node$/i, - select: function (context) { - return [env.currentNode(resolve, context)] - } - }, - maintained_node: { - matches: [], - regexp: /^maintained\s+node\s+versions$/i, - select: function (context) { - var now = Date.now() - var queries = Object.keys(jsEOL) - .filter(function (key) { - return ( - now < Date.parse(jsEOL[key].end) && - now > Date.parse(jsEOL[key].start) && - isEolReleased(key) - ) - }) - .map(function (key) { - return 'node ' + key.slice(1) - }) - return resolve(queries, context) - } - }, - phantomjs_1_9: { - matches: [], - regexp: /^phantomjs\s+1.9$/i, - select: function () { - return ['safari 5'] - } - }, - phantomjs_2_1: { - matches: [], - regexp: /^phantomjs\s+2.1$/i, - select: function () { - return ['safari 6'] - } - }, - browser_version: { - matches: ['browser', 'version'], - regexp: /^(\w+)\s+(tp|[\d.]+)$/i, - select: function (context, node) { - var version = node.version - if (/^tp$/i.test(version)) version = 'TP' - var data = checkName(node.browser, context) - var alias = normalizeVersion(data, version) - if (alias) { - version = alias - } else { - if (version.indexOf('.') === -1) { - alias = version + '.0' - } else { - alias = version.replace(/\.0$/, '') - } - alias = normalizeVersion(data, alias) - if (alias) { - version = alias - } else if (context.ignoreUnknownVersions) { - return [] - } else { - throw new BrowserslistError( - 'Unknown version ' + version + ' of ' + node.browser - ) - } - } - return [data.name + ' ' + version] - } - }, - browserslist_config: { - matches: [], - regexp: /^browserslist config$/i, - select: function (context) { - return browserslist(undefined, context) - } - }, - extends: { - matches: ['config'], - regexp: /^extends (.+)$/i, - select: function (context, node) { - return resolve(env.loadQueries(context, node.config), context) - } - }, - defaults: { - matches: [], - regexp: /^defaults$/i, - select: function (context) { - return resolve(browserslist.defaults, context) - } - }, - dead: { - matches: [], - regexp: /^dead$/i, - select: function (context) { - var dead = [ - 'Baidu >= 0', - 'ie <= 11', - 'ie_mob <= 11', - 'bb <= 10', - 'op_mob <= 12.1', - 'samsung 4' - ] - return resolve(dead, context) - } - }, - unknown: { - matches: [], - regexp: /^(\w+)$/i, - select: function (context, node) { - if (byName(node.query, context)) { - throw new BrowserslistError( - 'Specify versions in Browserslist query for browser ' + node.query - ) - } else { - throw unknownQuery(node.query) - } - } - } -} - -// Get and convert Can I Use data - -;(function () { - for (var name in agents) { - var browser = agents[name] - browserslist.data[name] = { - name: name, - versions: normalize(agents[name].versions), - released: normalize(agents[name].versions.slice(0, -3)), - releaseDate: agents[name].release_date - } - fillUsage(browserslist.usage.global, name, browser.usage_global) - - browserslist.versionAliases[name] = {} - for (var i = 0; i < browser.versions.length; i++) { - var full = browser.versions[i] - if (!full) continue - - if (full.indexOf('-') !== -1) { - var interval = full.split('-') - for (var j = 0; j < interval.length; j++) { - browserslist.versionAliases[name][interval[j]] = full - } - } - } - } - - browserslist.nodeVersions = jsReleases.map(function (release) { - return release.version - }) -})() - -module.exports = browserslist - - -/***/ }), - -/***/ "./node_modules/browserslist/parse.js": -/*!********************************************!*\ - !*** ./node_modules/browserslist/parse.js ***! - \********************************************/ -/***/ ((module) => { - -var AND_REGEXP = /^\s+and\s+(.*)/i -var OR_REGEXP = /^(?:,\s*|\s+or\s+)(.*)/i - -function flatten(array) { - if (!Array.isArray(array)) return [array] - return array.reduce(function (a, b) { - return a.concat(flatten(b)) - }, []) -} - -function find(string, predicate) { - for (var n = 1, max = string.length; n <= max; n++) { - var parsed = string.substr(-n, n) - if (predicate(parsed, n, max)) { - return string.slice(0, -n) - } - } - return '' -} - -function matchQuery(all, query) { - var node = { query: query } - if (query.indexOf('not ') === 0) { - node.not = true - query = query.slice(4) - } - - for (var name in all) { - var type = all[name] - var match = query.match(type.regexp) - if (match) { - node.type = name - for (var i = 0; i < type.matches.length; i++) { - node[type.matches[i]] = match[i + 1] - } - return node - } - } - - node.type = 'unknown' - return node -} - -function matchBlock(all, string, qs) { - var node - return find(string, function (parsed, n, max) { - if (AND_REGEXP.test(parsed)) { - node = matchQuery(all, parsed.match(AND_REGEXP)[1]) - node.compose = 'and' - qs.unshift(node) - return true - } else if (OR_REGEXP.test(parsed)) { - node = matchQuery(all, parsed.match(OR_REGEXP)[1]) - node.compose = 'or' - qs.unshift(node) - return true - } else if (n === max) { - node = matchQuery(all, parsed.trim()) - node.compose = 'or' - qs.unshift(node) - return true - } - return false - }) -} - -module.exports = function parse(all, queries) { - if (!Array.isArray(queries)) queries = [queries] - return flatten( - queries.map(function (block) { - var qs = [] - do { - block = matchBlock(all, block, qs) - } while (block) - return qs - }) - ) -} - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/data/agents.js": -/*!**************************************************!*\ - !*** ./node_modules/caniuse-lite/data/agents.js ***! - \**************************************************/ -/***/ ((module) => { - -module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","TC","J","D","E","F","A","B","","",""],E:"IE",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{"0":0.007984,"1":0.015968,"2":0.015968,"3":0.011976,"4":0.015968,"5":0.015968,"6":0.035928,"7":0.267464,"8":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","G","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","v","w","x","y","z","0","1","2","3","4","5","6","7","8","H","","",""],E:"Edge",F:{"0":1680825600,"1":1683158400,"2":1685664000,"3":1689897600,"4":1692576000,"5":1694649600,"6":1697155200,"7":1698969600,"8":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:"ms",K:"ms",L:"ms",G:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0.003992,"1":0.007984,"2":0.011976,"3":0.467064,"4":0.003992,"5":0.007984,"6":0.087824,"7":0.227544,"8":0.231536,"9":0,UC:0,"7B":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,"8B":0.003992,kB:0,"9B":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,"0B":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,"1B":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:"moz",C:["UC","7B","WC","XC","I","9","J","D","E","F","A","B","C","K","L","G","M","N","O","AB","q","r","s","t","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","8B","kB","9B","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","0B","P","Q","R","AC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","v","w","x","y","z","0","1","2","3","4","5","6","7","8","H","1B","BC","CC","DC","VC"],E:"Firefox",F:{"0":1681171200,"1":1683590400,"2":1686009600,"3":1688428800,"4":1690848000,"5":1693267200,"6":1695686400,"7":1698105600,"8":1700524800,"9":1308614400,UC:1161648000,"7B":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,"8B":1520985600,kB:1525824000,"9B":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,"0B":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,"1B":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{"0":0.075848,"1":0.15968,"2":0.115768,"3":0.07984,"4":0.263472,"5":0.195608,"6":0.467064,"7":2.4471,"8":15.8562,"9":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,"8B":0,kB:0.015968,"9B":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,"0B":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,"1B":0.015968,BC:0,CC:0,DC:0},B:"webkit",C:["","","","","","","I","9","J","D","E","F","A","B","C","K","L","G","M","N","O","AB","q","r","s","t","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","8B","kB","9B","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","0B","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","v","w","x","y","z","0","1","2","3","4","5","6","7","8","H","1B","BC","CC","DC"],E:"Chrome",F:{"0":1680566400,"1":1682985600,"2":1685404800,"3":1689724800,"4":1692057600,"5":1694476800,"6":1696896000,"7":1698710400,"8":1701993600,"9":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,"8B":1496707200,kB:1500940800,"9B":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,"0B":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,"1B":1708387200,BC:null,CC:null,DC:null}},E:{A:{"9":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,"2B":0.015968,"3B":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,"4B":0.043912,fC:0.2994,"5B":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,"6B":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","YC","EC","I","9","ZC","J","aC","D","bC","E","F","cC","A","FC","B","2B","C","3B","K","GC","L","dC","G","eC","HC","IC","4B","fC","5B","JC","KC","LC","MC","NC","gC","6B","OC","PC","QC","hC","iC",""],E:"Safari",F:{"9":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,"2B":1522281600,C:1537142400,"3B":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,"4B":1652745600,fC:1658275200,"5B":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,"6B":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,"0B":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,"2B":0,RC:0,nC:0,"3B":0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","F","jC","kC","lC","mC","B","2B","RC","nC","C","3B","G","M","N","O","AB","q","r","s","t","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","aB","bB","cB","dB","eB","fB","gB","hB","iB","jB","kB","lB","mB","nB","oB","pB","qB","rB","sB","tB","uB","vB","u","wB","xB","yB","zB","0B","P","Q","R","AC","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","","",""],E:"Opera",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,"2B":1302566400,RC:1309219200,nC:1323129600,C:1323129600,"3B":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,"0B":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:"o",B:"o",C:"o",jC:"o",kC:"o",lC:"o",mC:"o","2B":"o",RC:"o",nC:"o","3B":"o"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,"0C":0.267828,"1C":0.00451396,"2C":0.0496536,"3C":0.0135419,"4C":0.0601861,"5C":0.105326,"6C":0.160998,"7C":0.0692141,HC:0.0797466,IC:0.0932885,"4B":0.123382,"8C":0.961474,"5B":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,"9C":2.01925,"6B":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","EC","oC","SC","pC","qC","rC","E","sC","tC","uC","vC","wC","xC","yC","zC","0C","1C","2C","3C","4C","5C","6C","7C","HC","IC","4B","8C","5B","JC","KC","LC","MC","NC","9C","6B","OC","PC","QC","","",""],E:"Safari on iOS",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,"0C":1553472000,"1C":1568851200,"2C":1572220800,"3C":1580169600,"4C":1585008000,"5C":1600214400,"6C":1619395200,"7C":1632096000,HC:1639353600,IC:1647216000,"4B":1652659200,"8C":1658275200,"5B":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,"9C":1690156800,"6B":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","AD","","",""],E:"Opera Mini",F:{AD:1426464000}},I:{A:{"7B":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","BD","CD","DD","7B","I","ED","SC","FD","GD","H","","",""],E:"Android Browser",F:{BD:1256515200,CD:1274313600,DD:1291593600,"7B":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","D","A","","",""],E:"Blackberry Browser",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,"2B":0,RC:0,"3B":0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","2B","RC","C","3B","u","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,"2B":1314835200,RC:1318291200,C:1330300800,"3B":1349740800,u:1673827200},D:{u:"webkit"}},L:{A:{H:40.5268},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","H","","",""],E:"Chrome for Android",F:{H:1705968000}},M:{A:{"1B":0.30045},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","1B","","",""],E:"Firefox for Android",F:{"1B":1705968000}},N:{A:{A:0,B:0},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{"4B":0.811215},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","4B","","",""],E:"UC Browser for Android",F:{"4B":1687132800},D:{"4B":"webkit"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,"5B":0.0107426,"6B":0.0322279,RD:0.0214852,SD:0.0322279},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","HD","ID","JD","KD","LD","FC","MD","ND","OD","PD","QD","5B","6B","RD","SD","q","r","s","t","","",""],E:"Samsung Internet",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,"5B":1640736000,"6B":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","GC","","",""],E:"QQ Browser",F:{GC:1663718400}},R:{A:{TD:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","TD","","",""],E:"Baidu Browser",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","UD","VD","","",""],E:"KaiOS Browser",F:{UD:1527811200,VD:1631664000}}}; - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/data/browserVersions.js": -/*!***********************************************************!*\ - !*** ./node_modules/caniuse-lite/data/browserVersions.js ***! - \***********************************************************/ -/***/ ((module) => { - -module.exports={"0":"112","1":"113","2":"114","3":"115","4":"116","5":"117","6":"118","7":"119","8":"120","9":"5",A:"10",B:"11",C:"12",D:"7",E:"8",F:"9",G:"15",H:"121",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"79",Q:"80",R:"81",S:"83",T:"84",U:"85",V:"86",W:"87",X:"88",Y:"89",Z:"90",a:"91",b:"92",c:"93",d:"94",e:"95",f:"96",g:"97",h:"98",i:"99",j:"100",k:"101",l:"102",m:"103",n:"104",o:"105",p:"106",q:"20",r:"21",s:"22",t:"23",u:"73",v:"107",w:"108",x:"109",y:"110",z:"111",AB:"19",BB:"24",CB:"25",DB:"26",EB:"27",FB:"28",GB:"29",HB:"30",IB:"31",JB:"32",KB:"33",LB:"34",MB:"35",NB:"36",OB:"37",PB:"38",QB:"39",RB:"40",SB:"41",TB:"42",UB:"43",VB:"44",WB:"45",XB:"46",YB:"47",ZB:"48",aB:"49",bB:"50",cB:"51",dB:"52",eB:"53",fB:"54",gB:"55",hB:"56",iB:"57",jB:"58",kB:"60",lB:"62",mB:"63",nB:"64",oB:"65",pB:"66",qB:"67",rB:"68",sB:"69",tB:"70",uB:"71",vB:"72",wB:"74",xB:"75",yB:"76",zB:"77","0B":"78","1B":"122","2B":"11.1","3B":"12.1","4B":"15.5","5B":"16.0","6B":"17.0","7B":"3","8B":"59","9B":"61",AC:"82",BC:"123",CC:"124",DC:"125",EC:"3.2",FC:"10.1",GC:"13.1",HC:"15.2-15.3",IC:"15.4",JC:"16.1",KC:"16.2",LC:"16.3",MC:"16.4",NC:"16.5",OC:"17.1",PC:"17.2",QC:"17.3",RC:"11.5",SC:"4.2-4.3",TC:"5.5",UC:"2",VC:"126",WC:"3.5",XC:"3.6",YC:"3.1",ZC:"5.1",aC:"6.1",bC:"7.1",cC:"9.1",dC:"14.1",eC:"15.1",fC:"15.6",gC:"16.6",hC:"17.4",iC:"TP",jC:"9.5-9.6",kC:"10.0-10.1",lC:"10.5",mC:"10.6",nC:"11.6",oC:"4.0-4.1",pC:"5.0-5.1",qC:"6.0-6.1",rC:"7.0-7.1",sC:"8.1-8.4",tC:"9.0-9.2",uC:"9.3",vC:"10.0-10.2",wC:"10.3",xC:"11.0-11.2",yC:"11.3-11.4",zC:"12.0-12.1","0C":"12.2-12.5","1C":"13.0-13.1","2C":"13.2","3C":"13.3","4C":"13.4-13.7","5C":"14.0-14.4","6C":"14.5-14.8","7C":"15.0-15.1","8C":"15.6-15.8","9C":"16.6-16.7",AD:"all",BD:"2.1",CD:"2.2",DD:"2.3",ED:"4.1",FD:"4.4",GD:"4.4.3-4.4.4",HD:"5.0-5.4",ID:"6.2-6.4",JD:"7.2-7.4",KD:"8.2",LD:"9.2",MD:"11.1-11.2",ND:"12.0",OD:"13.0",PD:"14.0",QD:"15.0",RD:"18.0",SD:"19.0",TD:"13.18",UD:"2.5",VD:"3.0-3.1"}; - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/data/browsers.js": -/*!****************************************************!*\ - !*** ./node_modules/caniuse-lite/data/browsers.js ***! - \****************************************************/ -/***/ ((module) => { - -module.exports={A:"ie",B:"edge",C:"firefox",D:"chrome",E:"safari",F:"opera",G:"ios_saf",H:"op_mini",I:"android",J:"bb",K:"op_mob",L:"and_chr",M:"and_ff",N:"ie_mob",O:"and_uc",P:"samsung",Q:"and_qq",R:"baidu",S:"kaios"}; - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/dist/unpacker/agents.js": -/*!***********************************************************!*\ - !*** ./node_modules/caniuse-lite/dist/unpacker/agents.js ***! - \***********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -const browsers = (__webpack_require__(/*! ./browsers */ "./node_modules/caniuse-lite/dist/unpacker/browsers.js").browsers) -const versions = (__webpack_require__(/*! ./browserVersions */ "./node_modules/caniuse-lite/dist/unpacker/browserVersions.js").browserVersions) -const agentsData = __webpack_require__(/*! ../../data/agents */ "./node_modules/caniuse-lite/data/agents.js") - -function unpackBrowserVersions(versionsData) { - return Object.keys(versionsData).reduce((usage, version) => { - usage[versions[version]] = versionsData[version] - return usage - }, {}) -} - -module.exports.agents = Object.keys(agentsData).reduce((map, key) => { - let versionsData = agentsData[key] - map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => { - if (entry === 'A') { - data.usage_global = unpackBrowserVersions(versionsData[entry]) - } else if (entry === 'C') { - data.versions = versionsData[entry].reduce((list, version) => { - if (version === '') { - list.push(null) - } else { - list.push(versions[version]) - } - return list - }, []) - } else if (entry === 'D') { - data.prefix_exceptions = unpackBrowserVersions(versionsData[entry]) - } else if (entry === 'E') { - data.browser = versionsData[entry] - } else if (entry === 'F') { - data.release_date = Object.keys(versionsData[entry]).reduce( - (map2, key2) => { - map2[versions[key2]] = versionsData[entry][key2] - return map2 - }, - {} - ) - } else { - // entry is B - data.prefix = versionsData[entry] - } - return data - }, {}) - return map -}, {}) - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/dist/unpacker/browserVersions.js": -/*!********************************************************************!*\ - !*** ./node_modules/caniuse-lite/dist/unpacker/browserVersions.js ***! - \********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -module.exports.browserVersions = __webpack_require__(/*! ../../data/browserVersions */ "./node_modules/caniuse-lite/data/browserVersions.js") - - -/***/ }), - -/***/ "./node_modules/caniuse-lite/dist/unpacker/browsers.js": -/*!*************************************************************!*\ - !*** ./node_modules/caniuse-lite/dist/unpacker/browsers.js ***! - \*************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -module.exports.browsers = __webpack_require__(/*! ../../data/browsers */ "./node_modules/caniuse-lite/data/browsers.js") - - -/***/ }), - -/***/ "./node_modules/electron-to-chromium/versions.js": -/*!*******************************************************!*\ - !*** ./node_modules/electron-to-chromium/versions.js ***! - \*******************************************************/ -/***/ ((module) => { - -module.exports = { - "0.20": "39", - "0.21": "41", - "0.22": "41", - "0.23": "41", - "0.24": "41", - "0.25": "42", - "0.26": "42", - "0.27": "43", - "0.28": "43", - "0.29": "43", - "0.30": "44", - "0.31": "45", - "0.32": "45", - "0.33": "45", - "0.34": "45", - "0.35": "45", - "0.36": "47", - "0.37": "49", - "1.0": "49", - "1.1": "50", - "1.2": "51", - "1.3": "52", - "1.4": "53", - "1.5": "54", - "1.6": "56", - "1.7": "58", - "1.8": "59", - "2.0": "61", - "2.1": "61", - "3.0": "66", - "3.1": "66", - "4.0": "69", - "4.1": "69", - "4.2": "69", - "5.0": "73", - "6.0": "76", - "6.1": "76", - "7.0": "78", - "7.1": "78", - "7.2": "78", - "7.3": "78", - "8.0": "80", - "8.1": "80", - "8.2": "80", - "8.3": "80", - "8.4": "80", - "8.5": "80", - "9.0": "83", - "9.1": "83", - "9.2": "83", - "9.3": "83", - "9.4": "83", - "10.0": "85", - "10.1": "85", - "10.2": "85", - "10.3": "85", - "10.4": "85", - "11.0": "87", - "11.1": "87", - "11.2": "87", - "11.3": "87", - "11.4": "87", - "11.5": "87", - "12.0": "89", - "12.1": "89", - "12.2": "89", - "13.0": "91", - "13.1": "91", - "13.2": "91", - "13.3": "91", - "13.4": "91", - "13.5": "91", - "13.6": "91", - "14.0": "93", - "14.1": "93", - "14.2": "93", - "15.0": "94", - "15.1": "94", - "15.2": "94", - "15.3": "94", - "15.4": "94", - "15.5": "94", - "16.0": "96", - "16.1": "96", - "16.2": "96", - "17.0": "98", - "17.1": "98", - "17.2": "98", - "17.3": "98", - "17.4": "98", - "18.0": "100", - "18.1": "100", - "18.2": "100", - "18.3": "100", - "19.0": "102", - "19.1": "102", - "20.0": "104", - "20.1": "104", - "20.2": "104", - "20.3": "104", - "21.0": "106", - "21.1": "106", - "21.2": "106", - "21.3": "106", - "21.4": "106", - "22.0": "108", - "22.1": "108", - "22.2": "108", - "22.3": "108", - "23.0": "110", - "23.1": "110", - "23.2": "110", - "23.3": "110", - "24.0": "112", - "24.1": "112", - "24.2": "112", - "24.3": "112", - "24.4": "112", - "24.5": "112", - "24.6": "112", - "24.7": "112", - "24.8": "112", - "25.0": "114", - "25.1": "114", - "25.2": "114", - "25.3": "114", - "25.4": "114", - "25.5": "114", - "25.6": "114", - "25.7": "114", - "25.8": "114", - "25.9": "114", - "26.0": "116", - "26.1": "116", - "26.2": "116", - "26.3": "116", - "26.4": "116", - "26.5": "116", - "26.6": "116", - "27.0": "118", - "27.1": "118", - "27.2": "118", - "27.3": "118", - "28.0": "120", - "28.1": "120", - "28.2": "120", - "29.0": "122", - "30.0": "123" -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/index.js": -/*!******************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/index.js ***! - \******************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var compatTransforms = __webpack_require__(/*! ./transforms */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js"); -var _transform = __webpack_require__(/*! ../transform */ "./node_modules/regexp-tree/dist/transform/index.js"); - -module.exports = { - /** - * Translates a regexp in new syntax to equivalent regexp in old syntax. - * - * @param string|RegExp|AST - regexp - * @param Array transformsWhitelist - names of the transforms to apply - */ - transform: function transform(regexp) { - var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : []; - - var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms); - - var result = void 0; - - // Collect extra data per transform. - var extra = {}; - - transformToApply.forEach(function (transformName) { - - if (!compatTransforms.hasOwnProperty(transformName)) { - throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', ')); - } - - var handler = compatTransforms[transformName]; - - result = _transform.transform(regexp, handler); - regexp = result.getAST(); - - // Collect `extra` transform result. - if (typeof handler.getExtra === 'function') { - extra[transformName] = handler.getExtra(); - } - }); - - // Set the final extras for all transforms. - result.setExtra(extra); - - return result; - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js": -/*!**************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js ***! - \**************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * The `RegExpTree` class provides runtime support for `compat-transpiler` - * module from `regexp-tree`. - * - * E.g. it tracks names of the capturing groups, in order to access the - * names on the matched result. - * - * It's a thin-wrapper on top of original regexp. - */ - -var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var RegExpTree = function () { - /** - * Initializes a `RegExpTree` instance. - * - * @param RegExp - a regular expression - * - * @param Object state: - * - * An extra state which may store any related to transformation - * data, for example, names of the groups. - * - * - flags - original flags - * - groups - names of the groups, and their indices - * - source - original source - */ - function RegExpTree(re, _ref) { - var flags = _ref.flags, - groups = _ref.groups, - source = _ref.source; - - _classCallCheck(this, RegExpTree); - - this._re = re; - this._groups = groups; - - // Original props. - this.flags = flags; - this.source = source || re.source; - this.dotAll = flags.includes('s'); - - // Inherited directly from `re`. - this.global = re.global; - this.ignoreCase = re.ignoreCase; - this.multiline = re.multiline; - this.sticky = re.sticky; - this.unicode = re.unicode; - } - - /** - * Facade wrapper for RegExp `test` method. - */ - - - _createClass(RegExpTree, [{ - key: 'test', - value: function test(string) { - return this._re.test(string); - } - - /** - * Facade wrapper for RegExp `compile` method. - */ - - }, { - key: 'compile', - value: function compile(string) { - return this._re.compile(string); - } - - /** - * Facade wrapper for RegExp `toString` method. - */ - - }, { - key: 'toString', - value: function toString() { - if (!this._toStringResult) { - this._toStringResult = '/' + this.source + '/' + this.flags; - } - return this._toStringResult; - } - - /** - * Facade wrapper for RegExp `exec` method. - */ - - }, { - key: 'exec', - value: function exec(string) { - var result = this._re.exec(string); - - if (!this._groups || !result) { - return result; - } - - result.groups = {}; - - for (var group in this._groups) { - var groupNumber = this._groups[group]; - result.groups[group] = result[groupNumber]; - } - - return result; - } - }]); - - return RegExpTree; -}(); - -module.exports = { - RegExpTree: RegExpTree -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js": -/*!*************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js ***! - \*************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to translate `/./s` to `/[\0-\uFFFF]/`. - */ - -module.exports = { - - // Whether `u` flag present. In which case we transform to - // \u{10FFFF} instead of \uFFFF. - _hasUFlag: false, - - // Only run this plugin if we have `s` flag. - shouldRun: function shouldRun(ast) { - var shouldRun = ast.flags.includes('s'); - - if (!shouldRun) { - return false; - } - - // Strip the `s` flag. - ast.flags = ast.flags.replace('s', ''); - - // Whether we have also `u`. - this._hasUFlag = ast.flags.includes('u'); - - return true; - }, - Char: function Char(path) { - var node = path.node; - - - if (node.kind !== 'meta' || node.value !== '.') { - return; - } - - var toValue = '\\uFFFF'; - var toSymbol = '\uFFFF'; - - if (this._hasUFlag) { - toValue = '\\u{10FFFF}'; - toSymbol = '\uDBFF\uDFFF'; - } - - path.replace({ - type: 'CharacterClass', - expressions: [{ - type: 'ClassRange', - from: { - type: 'Char', - value: '\\0', - kind: 'decimal', - symbol: '\0' - }, - to: { - type: 'Char', - value: toValue, - kind: 'unicode', - symbol: toSymbol - } - }] - }); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js": -/*!***************************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js ***! - \***************************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to translate `/(?a)\k/` to `/(a)\1/`. - */ - -module.exports = { - // To track the names of the groups, and return them - // in the transform result state. - // - // A map from name to number: {foo: 2, bar: 4} - _groupNames: {}, - - /** - * Initialises the trasnform. - */ - init: function init() { - this._groupNames = {}; - }, - - - /** - * Returns extra state, which eventually is returned to - */ - getExtra: function getExtra() { - return this._groupNames; - }, - Group: function Group(path) { - var node = path.node; - - - if (!node.name) { - return; - } - - // Record group name. - this._groupNames[node.name] = node.number; - - delete node.name; - delete node.nameRaw; - }, - Backreference: function Backreference(path) { - var node = path.node; - - - if (node.kind !== 'name') { - return; - } - - node.kind = 'number'; - node.reference = node.number; - delete node.referenceRaw; - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js": -/*!***********************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js ***! - \***********************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`. - * - * Note: other features of `x` flags (whitespace, comments) are - * already removed at parsing stage. - */ - -module.exports = { - RegExp: function RegExp(_ref) { - var node = _ref.node; - - if (node.flags.includes('x')) { - node.flags = node.flags.replace('x', ''); - } - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js ***! - \*****************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -module.exports = { - // "dotAll" `s` flag - dotAll: __webpack_require__(/*! ./compat-dotall-s-transform */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js"), - - // Named capturing groups. - namedCapturingGroups: __webpack_require__(/*! ./compat-named-capturing-groups-transform */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js"), - - // `x` flag - xFlag: __webpack_require__(/*! ./compat-x-flag-transform */ "./node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js") -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/generator/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/generator/index.js ***! - \**********************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * Helper `gen` function calls node type handler. - */ - -function gen(node) { - return node ? generator[node.type](node) : ''; -} - -/** - * AST handler. - */ -var generator = { - RegExp: function RegExp(node) { - return '/' + gen(node.body) + '/' + node.flags; - }, - Alternative: function Alternative(node) { - return (node.expressions || []).map(gen).join(''); - }, - Disjunction: function Disjunction(node) { - return gen(node.left) + '|' + gen(node.right); - }, - Group: function Group(node) { - var expression = gen(node.expression); - - if (node.capturing) { - // A named group. - if (node.name) { - return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')'; - } - - return '(' + expression + ')'; - } - - return '(?:' + expression + ')'; - }, - Backreference: function Backreference(node) { - switch (node.kind) { - case 'number': - return '\\' + node.reference; - case 'name': - return '\\k<' + (node.referenceRaw || node.reference) + '>'; - default: - throw new TypeError('Unknown Backreference kind: ' + node.kind); - } - }, - Assertion: function Assertion(node) { - switch (node.kind) { - case '^': - case '$': - case '\\b': - case '\\B': - return node.kind; - - case 'Lookahead': - { - var assertion = gen(node.assertion); - - if (node.negative) { - return '(?!' + assertion + ')'; - } - - return '(?=' + assertion + ')'; - } - - case 'Lookbehind': - { - var _assertion = gen(node.assertion); - - if (node.negative) { - return '(? { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -// DFA minization. - -/** - * Map from state to current set it goes. - */ - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -function _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); } - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -var currentTransitionMap = null; - -/** - * Takes a DFA, and returns a minimized version of it - * compressing some states to groups (using standard, 0-, 1-, - * 2-, ... N-equivalence algorithm). - */ -function minimize(dfa) { - var table = dfa.getTransitionTable(); - var allStates = Object.keys(table); - var alphabet = dfa.getAlphabet(); - var accepting = dfa.getAcceptingStateNumbers(); - - currentTransitionMap = {}; - - var nonAccepting = new Set(); - - allStates.forEach(function (state) { - state = Number(state); - var isAccepting = accepting.has(state); - - if (isAccepting) { - currentTransitionMap[state] = accepting; - } else { - nonAccepting.add(state); - currentTransitionMap[state] = nonAccepting; - } - }); - - // --------------------------------------------------------------------------- - // Step 1: build equivalent sets. - - // All [1..N] equivalent sets. - var all = [ - // 0-equivalent sets. - [nonAccepting, accepting].filter(function (set) { - return set.size > 0; - })]; - - var current = void 0; - var previous = void 0; - - // Top of the stack is the current list of sets to analyze. - current = all[all.length - 1]; - - // Previous set (to check whether we need to stop). - previous = all[all.length - 2]; - - // Until we'll not have the same N and N-1 equivalent rows. - - var _loop = function _loop() { - var newTransitionMap = {}; - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _set = _step3.value; - - // Handled states for this set. - var handledStates = {}; - - var _set2 = _toArray(_set), - first = _set2[0], - rest = _set2.slice(1); - - handledStates[first] = new Set([first]); - - // Have to compare each from the rest states with - // the already handled states, and see if they are equivalent. - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var state = _step4.value; - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var handledState = _step5.value; - - // This and some previously handled state are equivalent -- - // just append this state to the same set. - if (areEquivalent(state, handledState, table, alphabet)) { - handledStates[handledState].add(state); - handledStates[state] = handledStates[handledState]; - continue restSets; - } - } - // Else, this state is not equivalent to any of the - // handled states -- allocate a new set for it. - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5.return) { - _iterator5.return(); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - - handledStates[state] = new Set([state]); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - - // Add these handled states to all states map. - - - Object.assign(newTransitionMap, handledStates); - } - - // Update current transition map for the handled row. - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - currentTransitionMap = newTransitionMap; - - var newSets = new Set(Object.keys(newTransitionMap).map(function (state) { - return newTransitionMap[state]; - })); - - all.push([].concat(_toConsumableArray(newSets))); - - // Top of the stack is the current. - current = all[all.length - 1]; - - // Previous set. - previous = all[all.length - 2]; - }; - - while (!sameRow(current, previous)) { - _loop(); - } - - // --------------------------------------------------------------------------- - // Step 2: build minimized table from the equivalent sets. - - // Remap state numbers from sets to index-based. - var remaped = new Map(); - var idx = 1; - current.forEach(function (set) { - return remaped.set(set, idx++); - }); - - // Build the minimized table from the calculated equivalent sets. - var minimizedTable = {}; - - var minimizedAcceptingStates = new Set(); - - var updateAcceptingStates = function updateAcceptingStates(set, idx) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var state = _step.value; - - if (accepting.has(state)) { - minimizedAcceptingStates.add(idx); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - }; - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref = _step2.value; - - var _ref2 = _slicedToArray(_ref, 2); - - var set = _ref2[0]; - var _idx = _ref2[1]; - - minimizedTable[_idx] = {}; - var _iteratorNormalCompletion6 = true; - var _didIteratorError6 = false; - var _iteratorError6 = undefined; - - try { - for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var symbol = _step6.value; - - updateAcceptingStates(set, _idx); - - // Determine original transition for this symbol from the set. - var originalTransition = void 0; - var _iteratorNormalCompletion7 = true; - var _didIteratorError7 = false; - var _iteratorError7 = undefined; - - try { - for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { - var originalState = _step7.value; - - originalTransition = table[originalState][symbol]; - if (originalTransition) { - break; - } - } - } catch (err) { - _didIteratorError7 = true; - _iteratorError7 = err; - } finally { - try { - if (!_iteratorNormalCompletion7 && _iterator7.return) { - _iterator7.return(); - } - } finally { - if (_didIteratorError7) { - throw _iteratorError7; - } - } - } - - if (originalTransition) { - minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]); - } - } - } catch (err) { - _didIteratorError6 = true; - _iteratorError6 = err; - } finally { - try { - if (!_iteratorNormalCompletion6 && _iterator6.return) { - _iterator6.return(); - } - } finally { - if (_didIteratorError6) { - throw _iteratorError6; - } - } - } - } - - // Update the table, and accepting states on the original DFA. - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - dfa.setTransitionTable(minimizedTable); - dfa.setAcceptingStateNumbers(minimizedAcceptingStates); - - return dfa; -} - -function sameRow(r1, r2) { - if (!r2) { - return false; - } - - if (r1.length !== r2.length) { - return false; - } - - for (var i = 0; i < r1.length; i++) { - var s1 = r1[i]; - var s2 = r2[i]; - - if (s1.size !== s2.size) { - return false; - } - - if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) { - return false; - } - } - - return true; -} - -/** - * Checks whether two states are N-equivalent, i.e. whether they go - * to the same set on a symbol. - */ -function areEquivalent(s1, s2, table, alphabet) { - var _iteratorNormalCompletion8 = true; - var _didIteratorError8 = false; - var _iteratorError8 = undefined; - - try { - for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { - var symbol = _step8.value; - - if (!goToSameSet(s1, s2, table, symbol)) { - return false; - } - } - } catch (err) { - _didIteratorError8 = true; - _iteratorError8 = err; - } finally { - try { - if (!_iteratorNormalCompletion8 && _iterator8.return) { - _iterator8.return(); - } - } finally { - if (_didIteratorError8) { - throw _iteratorError8; - } - } - } - - return true; -} - -/** - * Checks whether states go to the same set. - */ -function goToSameSet(s1, s2, table, symbol) { - if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) { - return false; - } - - var originalTransitionS1 = table[s1][symbol]; - var originalTransitionS2 = table[s2][symbol]; - - // If no actual transition on this symbol, treat it as positive. - if (!originalTransitionS1 && !originalTransitionS2) { - return true; - } - - // Otherwise, check if they are in the same sets. - return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2); -} - -module.exports = { - minimize: minimize -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js ***! - \*******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var DFAMinimizer = __webpack_require__(/*! ./dfa-minimizer */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js"); - -var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), - EPSILON_CLOSURE = _require.EPSILON_CLOSURE; - -/** - * DFA is build by converting from NFA (subset construction). - */ - - -var DFA = function () { - function DFA(nfa) { - _classCallCheck(this, DFA); - - this._nfa = nfa; - } - - /** - * Minimizes DFA. - */ - - - _createClass(DFA, [{ - key: 'minimize', - value: function minimize() { - this.getTransitionTable(); - - this._originalAcceptingStateNumbers = this._acceptingStateNumbers; - this._originalTransitionTable = this._transitionTable; - - DFAMinimizer.minimize(this); - } - - /** - * Returns alphabet for this DFA. - */ - - }, { - key: 'getAlphabet', - value: function getAlphabet() { - return this._nfa.getAlphabet(); - } - - /** - * Returns accepting states. - */ - - }, { - key: 'getAcceptingStateNumbers', - value: function getAcceptingStateNumbers() { - if (!this._acceptingStateNumbers) { - // Accepting states are determined during table construction. - this.getTransitionTable(); - } - - return this._acceptingStateNumbers; - } - - /** - * Returns original accepting states. - */ - - }, { - key: 'getOriginaAcceptingStateNumbers', - value: function getOriginaAcceptingStateNumbers() { - if (!this._originalAcceptingStateNumbers) { - // Accepting states are determined during table construction. - this.getTransitionTable(); - } - - return this._originalAcceptingStateNumbers; - } - - /** - * Sets transition table. - */ - - }, { - key: 'setTransitionTable', - value: function setTransitionTable(table) { - this._transitionTable = table; - } - - /** - * Sets accepting states. - */ - - }, { - key: 'setAcceptingStateNumbers', - value: function setAcceptingStateNumbers(stateNumbers) { - this._acceptingStateNumbers = stateNumbers; - } - - /** - * DFA transition table is built from NFA table. - */ - - }, { - key: 'getTransitionTable', - value: function getTransitionTable() { - var _this = this; - - if (this._transitionTable) { - return this._transitionTable; - } - - // Calculate from NFA transition table. - var nfaTable = this._nfa.getTransitionTable(); - var nfaStates = Object.keys(nfaTable); - - this._acceptingStateNumbers = new Set(); - - // Start state of DFA is E(S[nfa]) - var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE]; - - // Init the worklist (states which should be in the DFA). - var worklist = [startState]; - - var alphabet = this.getAlphabet(); - var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers(); - - var dfaTable = {}; - - // Determine whether the combined DFA state is accepting. - var updateAcceptingStates = function updateAcceptingStates(states) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var nfaAcceptingState = _step.value; - - // If any of the states from NFA is accepting, DFA's - // state is accepting as well. - if (states.indexOf(nfaAcceptingState) !== -1) { - _this._acceptingStateNumbers.add(states.join(',')); - break; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - }; - - while (worklist.length > 0) { - var states = worklist.shift(); - var dfaStateLabel = states.join(','); - dfaTable[dfaStateLabel] = {}; - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var symbol = _step2.value; - - var onSymbol = []; - - // Determine whether the combined state is accepting. - updateAcceptingStates(states); - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var state = _step3.value; - - var nfaStatesOnSymbol = nfaTable[state][symbol]; - if (!nfaStatesOnSymbol) { - continue; - } - - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var nfaStateOnSymbol = _step4.value; - - if (!nfaTable[nfaStateOnSymbol]) { - continue; - } - onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE])); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - var dfaStatesOnSymbolSet = new Set(onSymbol); - var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet)); - - if (dfaStatesOnSymbol.length > 0) { - var dfaOnSymbolStr = dfaStatesOnSymbol.join(','); - - dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr; - - if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) { - worklist.unshift(dfaStatesOnSymbol); - } - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - } - - return this._transitionTable = this._remapStateNumbers(dfaTable); - } - - /** - * Remaps state numbers in the resulting table: - * combined states '1,2,3' -> 1, '3,4' -> 2, etc. - */ - - }, { - key: '_remapStateNumbers', - value: function _remapStateNumbers(calculatedDFATable) { - var newStatesMap = {}; - - this._originalTransitionTable = calculatedDFATable; - var transitionTable = {}; - - Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) { - newStatesMap[originalNumber] = newNumber + 1; - }); - - for (var originalNumber in calculatedDFATable) { - var originalRow = calculatedDFATable[originalNumber]; - var row = {}; - - for (var symbol in originalRow) { - row[symbol] = newStatesMap[originalRow[symbol]]; - } - - transitionTable[newStatesMap[originalNumber]] = row; - } - - // Remap accepting states. - this._originalAcceptingStateNumbers = this._acceptingStateNumbers; - this._acceptingStateNumbers = new Set(); - - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var _originalNumber = _step5.value; - - this._acceptingStateNumbers.add(newStatesMap[_originalNumber]); - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5.return) { - _iterator5.return(); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - - return transitionTable; - } - - /** - * Returns original DFA table, where state numbers - * are combined numbers from NFA. - */ - - }, { - key: 'getOriginalTransitionTable', - value: function getOriginalTransitionTable() { - if (!this._originalTransitionTable) { - // Original table is determined during table construction. - this.getTransitionTable(); - } - return this._originalTransitionTable; - } - - /** - * Checks whether this DFA accepts a string. - */ - - }, { - key: 'matches', - value: function matches(string) { - var state = 1; - var i = 0; - var table = this.getTransitionTable(); - - while (string[i]) { - state = table[state][string[i++]]; - if (!state) { - return false; - } - } - - if (!this.getAcceptingStateNumbers().has(state)) { - return false; - } - - return true; - } - }]); - - return DFA; -}(); - -module.exports = DFA; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js ***! - \*****************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var NFA = __webpack_require__(/*! ./nfa/nfa */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js"); -var DFA = __webpack_require__(/*! ./dfa/dfa */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js"); - -var nfaFromRegExp = __webpack_require__(/*! ./nfa/nfa-from-regexp */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js"); -var builders = __webpack_require__(/*! ./nfa/builders */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js"); - -module.exports = { - - /** - * Export NFA and DFA classes. - */ - NFA: NFA, - DFA: DFA, - - /** - * Expose builders. - */ - builders: builders, - - /** - * Builds an NFA for the passed regexp. - * - * @param string | AST | RegExp: - * - * a regular expression in different representations: a string, - * a RegExp object, or an AST. - */ - toNFA: function toNFA(regexp) { - return nfaFromRegExp.build(regexp); - }, - - - /** - * Builds DFA for the passed regexp. - * - * @param string | AST | RegExp: - * - * a regular expression in different representations: a string, - * a RegExp object, or an AST. - */ - toDFA: function toDFA(regexp) { - return new DFA(this.toNFA(regexp)); - }, - - - /** - * Returns true if regexp accepts the string. - */ - test: function test(regexp, string) { - return this.toDFA(regexp).matches(string); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js": -/*!************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js ***! - \************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var NFA = __webpack_require__(/*! ./nfa */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js"); -var NFAState = __webpack_require__(/*! ./nfa-state */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js"); - -var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), - EPSILON = _require.EPSILON; - -// ----------------------------------------------------------------------------- -// Char NFA fragment: `c` - -/** - * Char factory. - * - * Creates an NFA fragment for a single char. - * - * [in] --c--> [out] - */ - - -function char(c) { - var inState = new NFAState(); - var outState = new NFAState({ - accepting: true - }); - - return new NFA(inState.addTransition(c, outState), outState); -} - -// ----------------------------------------------------------------------------- -// Epsilon NFA fragment - -/** - * Epsilon factory. - * - * Creates an NFA fragment for ε (recognizes an empty string). - * - * [in] --ε--> [out] - */ -function e() { - return char(EPSILON); -} - -// ----------------------------------------------------------------------------- -// Alteration NFA fragment: `abc` - -/** - * Creates a connection between two NFA fragments on epsilon transition. - * - * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b] - */ -function altPair(first, second) { - first.out.accepting = false; - second.out.accepting = true; - - first.out.addTransition(EPSILON, second.in); - - return new NFA(first.in, second.out); -} - -/** - * Alteration factory. - * - * Creates a alteration NFA for (at least) two NFA-fragments. - */ -function alt(first) { - for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - fragments[_key - 1] = arguments[_key]; - } - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var fragment = _step.value; - - first = altPair(first, fragment); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return first; -} - -// ----------------------------------------------------------------------------- -// Disjunction NFA fragment: `a|b` - -/** - * Creates a disjunction choice between two fragments. - */ -function orPair(first, second) { - var inState = new NFAState(); - var outState = new NFAState(); - - inState.addTransition(EPSILON, first.in); - inState.addTransition(EPSILON, second.in); - - outState.accepting = true; - first.out.accepting = false; - second.out.accepting = false; - - first.out.addTransition(EPSILON, outState); - second.out.addTransition(EPSILON, outState); - - return new NFA(inState, outState); -} - -/** - * Disjunction factory. - * - * Creates a disjunction NFA for (at least) two NFA-fragments. - */ -function or(first) { - for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - fragments[_key2 - 1] = arguments[_key2]; - } - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var fragment = _step2.value; - - first = orPair(first, fragment); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - return first; -} - -// ----------------------------------------------------------------------------- -// Kleene-closure - -/** - * Kleene star/closure. - * - * a* - */ -function repExplicit(fragment) { - var inState = new NFAState(); - var outState = new NFAState({ - accepting: true - }); - - // 0 or more. - inState.addTransition(EPSILON, fragment.in); - inState.addTransition(EPSILON, outState); - - fragment.out.accepting = false; - fragment.out.addTransition(EPSILON, outState); - outState.addTransition(EPSILON, fragment.in); - - return new NFA(inState, outState); -} - -/** - * Optimized Kleene-star: just adds ε-transitions from - * input to the output, and back. - */ -function rep(fragment) { - fragment.in.addTransition(EPSILON, fragment.out); - fragment.out.addTransition(EPSILON, fragment.in); - return fragment; -} - -/** - * Optimized Plus: just adds ε-transitions from - * the output to the input. - */ -function plusRep(fragment) { - fragment.out.addTransition(EPSILON, fragment.in); - return fragment; -} - -/** - * Optimized ? repetition: just adds ε-transitions from - * the input to the output. - */ -function questionRep(fragment) { - fragment.in.addTransition(EPSILON, fragment.out); - return fragment; -} - -module.exports = { - alt: alt, - char: char, - e: e, - or: or, - rep: rep, - repExplicit: repExplicit, - plusRep: plusRep, - questionRep: questionRep -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -var parser = __webpack_require__(/*! ../../../parser */ "./node_modules/regexp-tree/dist/parser/index.js"); - -var _require = __webpack_require__(/*! ./builders */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js"), - alt = _require.alt, - char = _require.char, - or = _require.or, - rep = _require.rep, - plusRep = _require.plusRep, - questionRep = _require.questionRep; - -/** - * Helper `gen` function calls node type handler. - */ - - -function gen(node) { - if (node && !generator[node.type]) { - throw new Error(node.type + ' is not supported in NFA/DFA interpreter.'); - } - - return node ? generator[node.type](node) : ''; -} - -/** - * AST handler. - */ -var generator = { - RegExp: function RegExp(node) { - if (node.flags !== '') { - throw new Error('NFA/DFA: Flags are not supported yet.'); - } - - return gen(node.body); - }, - Alternative: function Alternative(node) { - var fragments = (node.expressions || []).map(gen); - return alt.apply(undefined, _toConsumableArray(fragments)); - }, - Disjunction: function Disjunction(node) { - return or(gen(node.left), gen(node.right)); - }, - Repetition: function Repetition(node) { - switch (node.quantifier.kind) { - case '*': - return rep(gen(node.expression)); - case '+': - return plusRep(gen(node.expression)); - case '?': - return questionRep(gen(node.expression)); - default: - throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.'); - } - }, - Char: function Char(node) { - if (node.kind !== 'simple') { - throw new Error('NFA/DFA: Only simple chars are supported yet.'); - } - - return char(node.value); - }, - Group: function Group(node) { - return gen(node.expression); - } -}; - -module.exports = { - /** - * Builds an NFA from the passed regexp. - */ - build: function build(regexp) { - var ast = regexp; - - if (regexp instanceof RegExp) { - regexp = '' + regexp; - } - - if (typeof regexp === 'string') { - ast = parser.parse(regexp, { - captureLocations: true - }); - } - - return gen(ast); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js": -/*!*************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js ***! - \*************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _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; } - -function _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; } - -var State = __webpack_require__(/*! ../state */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js"); - -var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), - EPSILON = _require.EPSILON; - -/** - * NFA state. - * - * Allows nondeterministic transitions to several states on the - * same symbol, and also epsilon-transitions. - */ - - -var NFAState = function (_State) { - _inherits(NFAState, _State); - - function NFAState() { - _classCallCheck(this, NFAState); - - return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments)); - } - - _createClass(NFAState, [{ - key: 'matches', - - - /** - * Whether this state matches a string. - * - * We maintain set of visited epsilon-states to avoid infinite loops - * when an epsilon-transition goes eventually to itself. - * - * NOTE: this function is rather "educational", since we use DFA for strings - * matching. DFA is built on top of NFA, and uses fast transition table. - */ - value: function matches(string) { - var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set(); - - // An epsilon-state has been visited, stop to avoid infinite loop. - if (visited.has(this)) { - return false; - } - - visited.add(this); - - // No symbols left.. - if (string.length === 0) { - // .. and we're in the accepting state. - if (this.accepting) { - return true; - } - - // Check if we can reach any accepting state from - // on the epsilon transitions. - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var nextState = _step.value; - - if (nextState.matches('', visited)) { - return true; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return false; - } - - // Else, we get some symbols. - var symbol = string[0]; - var rest = string.slice(1); - - var symbolTransitions = this.getTransitionsOnSymbol(symbol); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _nextState = _step2.value; - - if (_nextState.matches(rest)) { - return true; - } - } - - // If we couldn't match on symbol, check still epsilon-transitions - // without consuming the symbol (i.e. continue from `string`, not `rest`). - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _nextState2 = _step3.value; - - if (_nextState2.matches(string, visited)) { - return true; - } - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - return false; - } - - /** - * Returns an ε-closure for this state: - * self + all states following ε-transitions. - */ - - }, { - key: 'getEpsilonClosure', - value: function getEpsilonClosure() { - var _this2 = this; - - if (!this._epsilonClosure) { - (function () { - var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON); - var closure = _this2._epsilonClosure = new Set(); - closure.add(_this2); - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var nextState = _step4.value; - - if (!closure.has(nextState)) { - closure.add(nextState); - var nextClosure = nextState.getEpsilonClosure(); - nextClosure.forEach(function (state) { - return closure.add(state); - }); - } - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - })(); - } - - return this._epsilonClosure; - } - }]); - - return NFAState; -}(State); - -module.exports = NFAState; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js": -/*!*******************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js ***! - \*******************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var _require = __webpack_require__(/*! ../special-symbols */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js"), - EPSILON = _require.EPSILON, - EPSILON_CLOSURE = _require.EPSILON_CLOSURE; - -/** - * NFA fragment. - * - * NFA sub-fragments can be combined to a larger NFAs building - * the resulting machine. Combining the fragments is done by patching - * edges of the in- and out-states. - * - * 2-states implementation, `in`, and `out`. Eventually all transitions - * go to the same `out`, which can further be connected via ε-transition - * with other fragment. - */ - - -var NFA = function () { - function NFA(inState, outState) { - _classCallCheck(this, NFA); - - this.in = inState; - this.out = outState; - } - - /** - * Tries to recognize a string based on this NFA fragment. - */ - - - _createClass(NFA, [{ - key: 'matches', - value: function matches(string) { - return this.in.matches(string); - } - - /** - * Returns an alphabet for this NFA. - */ - - }, { - key: 'getAlphabet', - value: function getAlphabet() { - if (!this._alphabet) { - this._alphabet = new Set(); - var table = this.getTransitionTable(); - for (var state in table) { - var transitions = table[state]; - for (var symbol in transitions) { - if (symbol !== EPSILON_CLOSURE) { - this._alphabet.add(symbol); - } - } - } - } - return this._alphabet; - } - - /** - * Returns set of accepting states. - */ - - }, { - key: 'getAcceptingStates', - value: function getAcceptingStates() { - if (!this._acceptingStates) { - // States are determined during table construction. - this.getTransitionTable(); - } - return this._acceptingStates; - } - - /** - * Returns accepting state numbers. - */ - - }, { - key: 'getAcceptingStateNumbers', - value: function getAcceptingStateNumbers() { - if (!this._acceptingStateNumbers) { - this._acceptingStateNumbers = new Set(); - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var acceptingState = _step.value; - - this._acceptingStateNumbers.add(acceptingState.number); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - } - return this._acceptingStateNumbers; - } - - /** - * Builds and returns transition table. - */ - - }, { - key: 'getTransitionTable', - value: function getTransitionTable() { - var _this = this; - - if (!this._transitionTable) { - this._transitionTable = {}; - this._acceptingStates = new Set(); - - var visited = new Set(); - var symbols = new Set(); - - var visitState = function visitState(state) { - if (visited.has(state)) { - return; - } - - visited.add(state); - state.number = visited.size; - _this._transitionTable[state.number] = {}; - - if (state.accepting) { - _this._acceptingStates.add(state); - } - - var transitions = state.getTransitions(); - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref = _step2.value; - - var _ref2 = _slicedToArray(_ref, 2); - - var symbol = _ref2[0]; - var symbolTransitions = _ref2[1]; - - var combinedState = []; - symbols.add(symbol); - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var nextState = _step3.value; - - visitState(nextState); - combinedState.push(nextState.number); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - _this._transitionTable[state.number][symbol] = combinedState; - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - }; - - // Traverse the graph starting from the `in`. - visitState(this.in); - - // Append epsilon-closure column. - visited.forEach(function (state) { - delete _this._transitionTable[state.number][EPSILON]; - _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) { - return s.number; - }); - }); - } - - return this._transitionTable; - } - }]); - - return NFA; -}(); - -module.exports = NFA; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js": -/*!***************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js ***! - \***************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * Epsilon, the empty string. - */ - -var EPSILON = 'ε'; - -/** - * Epsilon-closure. - */ -var EPSILON_CLOSURE = EPSILON + '*'; - -module.exports = { - EPSILON: EPSILON, - EPSILON_CLOSURE: EPSILON_CLOSURE -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js": -/*!*****************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js ***! - \*****************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A generic FA State class (base for NFA and DFA). - * - * Maintains the transition map, and the flag whether - * the state is accepting. - */ - -var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var State = function () { - function State() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$accepting = _ref.accepting, - accepting = _ref$accepting === undefined ? false : _ref$accepting; - - _classCallCheck(this, State); - - /** - * Outgoing transitions to other states. - */ - this._transitions = new Map(); - - /** - * Whether the state is accepting. - */ - this.accepting = accepting; - } - - /** - * Returns transitions for this state. - */ - - - _createClass(State, [{ - key: 'getTransitions', - value: function getTransitions() { - return this._transitions; - } - - /** - * Creates a transition on symbol. - */ - - }, { - key: 'addTransition', - value: function addTransition(symbol, toState) { - this.getTransitionsOnSymbol(symbol).add(toState); - return this; - } - - /** - * Returns transitions set on symbol. - */ - - }, { - key: 'getTransitionsOnSymbol', - value: function getTransitionsOnSymbol(symbol) { - var transitions = this._transitions.get(symbol); - - if (!transitions) { - transitions = new Set(); - this._transitions.set(symbol, transitions); - } - - return transitions; - } - }]); - - return State; -}(); - -module.exports = State; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/index.js ***! - \**********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var clone = __webpack_require__(/*! ../utils/clone */ "./node_modules/regexp-tree/dist/utils/clone.js"); -var parser = __webpack_require__(/*! ../parser */ "./node_modules/regexp-tree/dist/parser/index.js"); -var transform = __webpack_require__(/*! ../transform */ "./node_modules/regexp-tree/dist/transform/index.js"); -var optimizationTransforms = __webpack_require__(/*! ./transforms */ "./node_modules/regexp-tree/dist/optimizer/transforms/index.js"); - -module.exports = { - /** - * Optimizer transforms a regular expression into an optimized version, - * replacing some sub-expressions with their idiomatic patterns. - * - * @param string | RegExp | AST - a regexp to optimize. - * - * @return TransformResult - an optimized regexp. - * - * Example: - * - * /[a-zA-Z_0-9][a-zA-Z_0-9]*\e{1,}/ - * - * Optimized to: - * - * /\w+e+/ - */ - optimize: function optimize(regexp) { - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - _ref$whitelist = _ref.whitelist, - whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist, - _ref$blacklist = _ref.blacklist, - blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist; - - var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys()); - - var transformToApply = transformsRaw.filter(function (transform) { - return !blacklist.includes(transform); - }); - - var ast = regexp; - if (regexp instanceof RegExp) { - regexp = '' + regexp; - } - - if (typeof regexp === 'string') { - ast = parser.parse(regexp); - } - - var result = new transform.TransformResult(ast); - var prevResultString = void 0; - - do { - // Get a copy of the current state here so - // we can compare it with the state at the - // end of the loop. - prevResultString = result.toString(); - ast = clone(result.getAST()); - - transformToApply.forEach(function (transformName) { - if (!optimizationTransforms.has(transformName)) { - throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', ')); - } - - var transformer = optimizationTransforms.get(transformName); - - // Don't override result just yet since we - // might want to rollback the transform - var newResult = transform.transform(ast, transformer); - - if (newResult.toString() !== result.toString()) { - if (newResult.toString().length <= result.toString().length) { - result = newResult; - } else { - // Result has changed but is not shorter: - // restore ast to its previous state. - - ast = clone(result.getAST()); - } - } - }); - - // Keep running the optimizer until it stops - // making any change to the regexp. - } while (result.toString() !== prevResultString); - - return result; - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js": -/*!*********************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js ***! - \*********************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var UPPER_A_CP = 'A'.codePointAt(0); -var UPPER_Z_CP = 'Z'.codePointAt(0); -/** - * Transforms case-insensitive regexp to lowercase - * - * /AaBbÏ/i -> /aabbï/i - */ -module.exports = { - _AZClassRanges: null, - _hasUFlag: false, - init: function init(ast) { - this._AZClassRanges = new Set(); - this._hasUFlag = ast.flags.includes('u'); - }, - shouldRun: function shouldRun(ast) { - return ast.flags.includes('i'); - }, - Char: function Char(path) { - var node = path.node, - parent = path.parent; - - if (isNaN(node.codePoint)) { - return; - } - - // Engine support for case-insensitive matching without the u flag - // for characters above \u1000 does not seem reliable. - if (!this._hasUFlag && node.codePoint >= 0x1000) { - return; - } - - if (parent.type === 'ClassRange') { - // The only class ranges we handle must be inside A-Z. - // After the `from` char is processed, the isAZClassRange test - // will be false, so we use a Set to keep track of parents and - // process the `to` char. - if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) { - return; - } - this._AZClassRanges.add(parent); - } - - var lower = node.symbol.toLowerCase(); - if (lower !== node.symbol) { - node.value = displaySymbolAsValue(lower, node); - node.symbol = lower; - node.codePoint = lower.codePointAt(0); - } - } -}; - -function isAZClassRange(classRange) { - var from = classRange.from, - to = classRange.to; - // A-Z - - return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP; -} - -function displaySymbolAsValue(symbol, node) { - var codePoint = symbol.codePointAt(0); - if (node.kind === 'decimal') { - return '\\' + codePoint; - } - if (node.kind === 'oct') { - return '\\0' + codePoint.toString(8); - } - if (node.kind === 'hex') { - return '\\x' + codePoint.toString(16); - } - if (node.kind === 'unicode') { - if (node.isSurrogatePair) { - var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint), - lead = _getSurrogatePairFrom.lead, - trail = _getSurrogatePairFrom.trail; - - return '\\u' + '0'.repeat(4 - lead.length) + lead + '\\u' + '0'.repeat(4 - trail.length) + trail; - } else if (node.value.includes('{')) { - return '\\u{' + codePoint.toString(16) + '}'; - } else { - var code = codePoint.toString(16); - return '\\u' + '0'.repeat(4 - code.length) + code; - } - } - // simple - return symbol; -} - -/** - * Converts a code point to a surrogate pair. - * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7 - * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf) - * @param {number} codePoint - Between 0x10000 and 0x10ffff - * @returns {{lead: string, trail: string}} - */ -function getSurrogatePairFromCodePoint(codePoint) { - var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800; - var trail = (codePoint - 0x10000) % 0x400 + 0xdc00; - return { - lead: lead.toString(16), - trail: trail.toString(16) - }; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js ***! - \******************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to merge class ranges. - * - * [a-ec] -> [a-e] - * [a-ec-e] -> [a-e] - * [\w\da-f] -> [\w] - * [abcdef] -> [a-f] - */ - -module.exports = { - _hasIUFlags: false, - init: function init(ast) { - this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u'); - }, - CharacterClass: function CharacterClass(path) { - var node = path.node; - - var expressions = node.expressions; - - var metas = []; - // Extract metas - expressions.forEach(function (expression) { - if (isMeta(expression)) { - metas.push(expression.value); - } - }); - - expressions.sort(sortCharClass); - - for (var i = 0; i < expressions.length; i++) { - var expression = expressions[i]; - if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) { - expressions.splice(i, 1); - i--; - } else { - var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions); - expressions.splice(i - nbMergedChars + 1, nbMergedChars); - i -= nbMergedChars; - } - } - } -}; - -/** - * Sorts expressions in char class in the following order: - * - meta chars, ordered alphabetically by value - * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges) - * - if ambiguous, class range comes before char - * - if ambiguous between two class ranges, orders alphabetically by `to` char - * - control chars, ordered alphabetically by value - * @param {Object} a - Left Char or ClassRange node - * @param {Object} b - Right Char or ClassRange node - * @returns {number} - */ -function sortCharClass(a, b) { - var aValue = getSortValue(a); - var bValue = getSortValue(b); - - if (aValue === bValue) { - // We want ClassRange before Char - // [bb-d] -> [b-db] - if (a.type === 'ClassRange' && b.type !== 'ClassRange') { - return -1; - } - if (b.type === 'ClassRange' && a.type !== 'ClassRange') { - return 1; - } - if (a.type === 'ClassRange' && b.type === 'ClassRange') { - return getSortValue(a.to) - getSortValue(b.to); - } - if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) { - return a.value < b.value ? -1 : 1; - } - } - return aValue - bValue; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @returns {number} - */ -function getSortValue(expression) { - if (expression.type === 'Char') { - if (expression.value === '-') { - return Infinity; - } - if (expression.kind === 'control') { - return Infinity; - } - if (expression.kind === 'meta' && isNaN(expression.codePoint)) { - return -1; - } - return expression.codePoint; - } - // ClassRange - return expression.from.codePoint; -} - -/** - * Checks if a node is a meta char from the set \d\w\s\D\W\S - * @param {Object} expression - Char or ClassRange node - * @param {?string} value - * @returns {boolean} - */ -function isMeta(expression) { - var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\[dws]$/i.test(expression.value)); -} - -/** - * @param {Object} expression - Char or ClassRange node - * @returns {boolean} - */ -function isControl(expression) { - return expression.type === 'Char' && expression.kind === 'control'; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {string[]} metas - Array of meta chars, e.g. ["\\w", "\\s"] - * @param {boolean} hasIUFlags - * @returns {boolean} - */ -function fitsInMetas(expression, metas, hasIUFlags) { - for (var i = 0; i < metas.length; i++) { - if (fitsInMeta(expression, metas[i], hasIUFlags)) { - return true; - } - } - return false; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {string} meta - e.g. "\\w" - * @param {boolean} hasIUFlags - * @returns {boolean} - */ -function fitsInMeta(expression, meta, hasIUFlags) { - if (expression.type === 'ClassRange') { - return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags); - } - - // Special cases: - // \S contains \w and \d - if (meta === '\\S' && (isMeta(expression, '\\w') || isMeta(expression, '\\d'))) { - return true; - } - // \D contains \W and \s - if (meta === '\\D' && (isMeta(expression, '\\W') || isMeta(expression, '\\s'))) { - return true; - } - // \w contains \d - if (meta === '\\w' && isMeta(expression, '\\d')) { - return true; - } - // \W contains \s - if (meta === '\\W' && isMeta(expression, '\\s')) { - return true; - } - - if (expression.type !== 'Char' || isNaN(expression.codePoint)) { - return false; - } - - if (meta === '\\s') { - return fitsInMetaS(expression); - } - if (meta === '\\S') { - return !fitsInMetaS(expression); - } - if (meta === '\\d') { - return fitsInMetaD(expression); - } - if (meta === '\\D') { - return !fitsInMetaD(expression); - } - if (meta === '\\w') { - return fitsInMetaW(expression, hasIUFlags); - } - if (meta === '\\W') { - return !fitsInMetaW(expression, hasIUFlags); - } - return false; -} - -/** - * @param {Object} expression - Char node with codePoint - * @returns {boolean} - */ -function fitsInMetaS(expression) { - return expression.codePoint === 0x0009 || // \t - expression.codePoint === 0x000a || // \n - expression.codePoint === 0x000b || // \v - expression.codePoint === 0x000c || // \f - expression.codePoint === 0x000d || // \r - expression.codePoint === 0x0020 || // space - expression.codePoint === 0x00a0 || // nbsp - expression.codePoint === 0x1680 || // part of Zs - expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs - expression.codePoint === 0x2028 || // line separator - expression.codePoint === 0x2029 || // paragraph separator - expression.codePoint === 0x202f || // part of Zs - expression.codePoint === 0x205f || // part of Zs - expression.codePoint === 0x3000 || // part of Zs - expression.codePoint === 0xfeff; // zwnbsp -} - -/** - * @param {Object} expression - Char node with codePoint - * @returns {boolean} - */ -function fitsInMetaD(expression) { - return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9 -} - -/** - * @param {Object} expression - Char node with codePoint - * @param {boolean} hasIUFlags - * @returns {boolean} - */ -function fitsInMetaW(expression, hasIUFlags) { - return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z - expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z - expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a); -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {Object} classRange - Char or ClassRange node - * @returns {boolean} - */ -function combinesWithPrecedingClassRange(expression, classRange) { - if (classRange && classRange.type === 'ClassRange') { - if (fitsInClassRange(expression, classRange)) { - // [a-gc] -> [a-g] - // [a-gc-e] -> [a-g] - return true; - } else if ( - // We only want \w chars or char codes to keep readability - isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) { - // [a-de] -> [a-e] - classRange.to = expression; - return true; - } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) { - // [a-db-f] -> [a-f] - // [b-fa-d] -> [a-f] - // [a-cd-f] -> [a-f] - if (expression.from.codePoint < classRange.from.codePoint) { - classRange.from = expression.from; - } - if (expression.to.codePoint > classRange.to.codePoint) { - classRange.to = expression.to; - } - return true; - } - } - return false; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {Object} classRange - Char or ClassRange node - * @returns {boolean} - */ -function combinesWithFollowingClassRange(expression, classRange) { - if (classRange && classRange.type === 'ClassRange') { - // Considering the elements were ordered alphabetically, - // there is only one case to handle - // [ab-e] -> [a-e] - if ( - // We only want \w chars or char codes to keep readability - isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) { - classRange.from = expression; - return true; - } - } - - return false; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {Object} classRange - ClassRange node - * @returns {boolean} - */ -function fitsInClassRange(expression, classRange) { - if (expression.type === 'Char' && isNaN(expression.codePoint)) { - return false; - } - if (expression.type === 'ClassRange') { - return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange); - } - return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint; -} - -/** - * @param {Object} expression - Char or ClassRange node - * @param {Number} index - * @param {Object[]} expressions - expressions in CharClass - * @returns {number} - Number of characters combined with expression - */ -function charCombinesWithPrecedingChars(expression, index, expressions) { - // We only want \w chars or char codes to keep readability - if (!isMetaWCharOrCode(expression)) { - return 0; - } - var nbMergedChars = 0; - while (index > 0) { - var currentExpression = expressions[index]; - var precedingExpresion = expressions[index - 1]; - if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) { - nbMergedChars++; - index--; - } else { - break; - } - } - - if (nbMergedChars > 1) { - expressions[index] = { - type: 'ClassRange', - from: expressions[index], - to: expression - }; - return nbMergedChars; - } - return 0; -} - -function isMetaWCharOrCode(expression) { - return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal'); -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js": -/*!*********************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js ***! - \*********************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to simplify character classes - * spanning only one or two chars. - * - * [a-a] -> [a] - * [a-b] -> [ab] - */ - -module.exports = { - ClassRange: function ClassRange(path) { - var node = path.node; - - - if (node.from.codePoint === node.to.codePoint) { - - path.replace(node.from); - } else if (node.from.codePoint === node.to.codePoint - 1) { - - path.getParent().insertChildAt(node.to, path.index + 1); - path.replace(node.from); - } - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js": -/*!******************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js ***! - \******************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove duplicates from character classes. - */ - -module.exports = { - CharacterClass: function CharacterClass(path) { - var node = path.node; - - var sources = {}; - - for (var i = 0; i < node.expressions.length; i++) { - var childPath = path.getChild(i); - var source = childPath.jsonEncode(); - - if (sources.hasOwnProperty(source)) { - childPath.remove(); - - // Since we remove the current node. - // TODO: make it simpler for users with a method. - i--; - } - - sources[source] = true; - } - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js ***! - \********************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to replace standard character classes with - * their meta symbols equivalents. - */ - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -module.exports = { - _hasIFlag: false, - _hasUFlag: false, - init: function init(ast) { - this._hasIFlag = ast.flags.includes('i'); - this._hasUFlag = ast.flags.includes('u'); - }, - CharacterClass: function CharacterClass(path) { - // [0-9] -> \d - rewriteNumberRanges(path); - - // [a-zA-Z_0-9] -> \w - rewriteWordRanges(path, this._hasIFlag, this._hasUFlag); - - // [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] -> \s - rewriteWhitespaceRanges(path); - } -}; - -/** - * Rewrites number ranges: [0-9] -> \d - */ -function rewriteNumberRanges(path) { - var node = path.node; - - - node.expressions.forEach(function (expression, i) { - if (isFullNumberRange(expression)) { - path.getChild(i).replace({ - type: 'Char', - value: '\\d', - kind: 'meta' - }); - } - }); -} - -/** - * Rewrites word ranges: [a-zA-Z_0-9] -> \w - * Thus, the ranges may go in any order, and other symbols/ranges - * are kept untouched, e.g. [a-z_\dA-Z$] -> [\w$] - */ -function rewriteWordRanges(path, hasIFlag, hasUFlag) { - var node = path.node; - - - var numberPath = null; - var lowerCasePath = null; - var upperCasePath = null; - var underscorePath = null; - var u017fPath = null; - var u212aPath = null; - - node.expressions.forEach(function (expression, i) { - // \d - if (isMetaChar(expression, '\\d')) { - numberPath = path.getChild(i); - } - - // a-z - else if (isLowerCaseRange(expression)) { - lowerCasePath = path.getChild(i); - } - - // A-Z - else if (isUpperCaseRange(expression)) { - upperCasePath = path.getChild(i); - } - - // _ - else if (isUnderscore(expression)) { - underscorePath = path.getChild(i); - } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) { - u017fPath = path.getChild(i); - } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) { - u212aPath = path.getChild(i); - } - }); - - // If we found the whole pattern, replace it. - if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) { - // Put \w in place of \d. - numberPath.replace({ - type: 'Char', - value: '\\w', - kind: 'meta' - }); - - // Other paths are removed. - if (lowerCasePath) { - lowerCasePath.remove(); - } - if (upperCasePath) { - upperCasePath.remove(); - } - underscorePath.remove(); - if (u017fPath) { - u017fPath.remove(); - } - if (u212aPath) { - u212aPath.remove(); - } - } -} - -/** - * Rewrites whitespace ranges: [ \f\n\r\t\v\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff] -> \s. - */ -var whitespaceRangeTests = [function (node) { - return isChar(node, ' '); -}].concat(_toConsumableArray(['\\f', '\\n', '\\r', '\\t', '\\v'].map(function (char) { - return function (node) { - return isMetaChar(node, char); - }; -})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) { - return function (node) { - return isCodePoint(node, codePoint); - }; -})), [function (node) { - return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a); -}]); - -function rewriteWhitespaceRanges(path) { - var node = path.node; - - - if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) { - return node.expressions.some(function (expression) { - return test(expression); - }); - })) { - return; - } - - // If we found the whole pattern, replace it. - - // Put \s in place of \n. - var nNode = node.expressions.find(function (expression) { - return isMetaChar(expression, '\\n'); - }); - nNode.value = '\\s'; - nNode.symbol = undefined; - nNode.codePoint = NaN; - - // Other paths are removed. - node.expressions.map(function (expression, i) { - return whitespaceRangeTests.some(function (test) { - return test(expression); - }) ? path.getChild(i) : undefined; - }).filter(Boolean).forEach(function (path) { - return path.remove(); - }); -} - -function isFullNumberRange(node) { - return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9'; -} - -function isChar(node, value) { - var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple'; - - return node.type === 'Char' && node.value === value && node.kind === kind; -} - -function isMetaChar(node, value) { - return isChar(node, value, 'meta'); -} - -function isLowerCaseRange(node) { - return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z'; -} - -function isUpperCaseRange(node) { - return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z'; -} - -function isUnderscore(node) { - return node.type === 'Char' && node.value === '_' && node.kind === 'simple'; -} - -function isCodePoint(node, codePoint) { - return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js": -/*!***************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js ***! - \***************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to replace single char character classes with - * just that character. - * - * [\d] -> \d, [^\w] -> \W - */ - -module.exports = { - CharacterClass: function CharacterClass(path) { - var node = path.node; - - - if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) { - return; - } - - var _node$expressions$ = node.expressions[0], - value = _node$expressions$.value, - kind = _node$expressions$.kind, - escaped = _node$expressions$.escaped; - - - if (node.negative) { - // For negative can extract only meta chars like [^\w] -> \W - // cannot do for [^a] -> a (wrong). - if (!isMeta(value)) { - return; - } - - value = getInverseMeta(value); - } - - path.replace({ - type: 'Char', - value: value, - kind: kind, - escaped: escaped || shouldEscape(value) - }); - } -}; - -function isAppropriateChar(node) { - return node.type === 'Char' && - // We don't extract [\b] (backspace) since \b has different - // semantics (word boundary). - node.value !== '\\b'; -} - -function isMeta(value) { - return (/^\\[dwsDWS]$/.test(value) - ); -} - -function getInverseMeta(value) { - return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase() - ); -} - -function hasAppropriateSiblings(path) { - var parent = path.parent, - index = path.index; - - - if (parent.type !== 'Alternative') { - return true; - } - - var previousNode = parent.expressions[index - 1]; - if (previousNode == null) { - return true; - } - - // Don't optimized \1[0] to \10 - if (previousNode.type === 'Backreference' && previousNode.kind === 'number') { - return false; - } - - // Don't optimized \2[0] to \20 - if (previousNode.type === 'Char' && previousNode.kind === 'decimal') { - return false; - } - - return true; -} - -// Note: \{ and \} are always preserved to avoid `a[{]2[}]` turning -// into `a{2}`. -function shouldEscape(value) { - return (/[*[()+?$./{}|]/.test(value) - ); -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js": -/*!**************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js ***! - \**************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var UPPER_A_CP = 'A'.codePointAt(0); -var UPPER_Z_CP = 'Z'.codePointAt(0); -var LOWER_A_CP = 'a'.codePointAt(0); -var LOWER_Z_CP = 'z'.codePointAt(0); -var DIGIT_0_CP = '0'.codePointAt(0); -var DIGIT_9_CP = '9'.codePointAt(0); - -/** - * A regexp-tree plugin to transform coded chars into simple chars. - * - * \u0061 -> a - */ -module.exports = { - Char: function Char(path) { - var node = path.node, - parent = path.parent; - - if (isNaN(node.codePoint) || node.kind === 'simple') { - return; - } - - if (parent.type === 'ClassRange') { - if (!isSimpleRange(parent)) { - return; - } - } - - if (!isPrintableASCIIChar(node.codePoint)) { - return; - } - - var symbol = String.fromCodePoint(node.codePoint); - var newChar = { - type: 'Char', - kind: 'simple', - value: symbol, - symbol: symbol, - codePoint: node.codePoint - }; - if (needsEscape(symbol, parent.type)) { - newChar.escaped = true; - } - path.replace(newChar); - } -}; - -/** - * Checks if a range is included either in 0-9, a-z or A-Z - * @param classRange - * @returns {boolean} - */ -function isSimpleRange(classRange) { - var from = classRange.from, - to = classRange.to; - - return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP; -} - -/** - * Checks if a code point in the range of printable ASCII chars - * (DEL char excluded) - * @param codePoint - * @returns {boolean} - */ -function isPrintableASCIIChar(codePoint) { - return codePoint >= 0x20 && codePoint <= 0x7e; -} - -function needsEscape(symbol, parentType) { - if (parentType === 'ClassRange' || parentType === 'CharacterClass') { - return (/[\]\\^-]/.test(symbol) - ); - } - - return (/[*[()+?^$./\\|{}]/.test(symbol) - ); -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js": -/*!**********************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js ***! - \**********************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove unnecessary escape. - * - * \e -> e - * - * [\(] -> [(] - */ - -module.exports = { - _hasXFlag: false, - init: function init(ast) { - this._hasXFlag = ast.flags.includes('x'); - }, - Char: function Char(path) { - var node = path.node; - - - if (!node.escaped) { - return; - } - - if (shouldUnescape(path, this._hasXFlag)) { - delete node.escaped; - } - } -}; - -function shouldUnescape(path, hasXFlag) { - var value = path.node.value, - index = path.index, - parent = path.parent; - - // In char class (, etc are allowed. - - if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') { - return !preservesEscape(value, index, parent, hasXFlag); - } - - return !preservesInCharClass(value, index, parent); -} - -/** - * \], \\, \^, \- - */ -function preservesInCharClass(value, index, parent) { - if (value === '^') { - // Avoid [\^a] turning into [^a] - return index === 0 && !parent.negative; - } - if (value === '-') { - // Avoid [a\-z] turning into [a-z] - return true; - } - return (/[\]\\]/.test(value) - ); -} - -function preservesEscape(value, index, parent, hasXFlag) { - if (value === '{') { - return preservesOpeningCurlyBraceEscape(index, parent); - } - - if (value === '}') { - return preservesClosingCurlyBraceEscape(index, parent); - } - - if (hasXFlag && /[ #]/.test(value)) { - return true; - } - - return (/[*[()+?^$./\\|]/.test(value) - ); -} - -function consumeNumbers(startIndex, parent, rtl) { - var i = startIndex; - var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i]; - - while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\d/.test(siblingNode.value)) { - rtl ? i-- : i++; - siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i]; - } - - return Math.abs(startIndex - i); -} - -function isSimpleChar(node, value) { - return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value; -} - -function preservesOpeningCurlyBraceEscape(index, parent) { - // (?:\{) -> (?:{) - if (index == null) { - return false; - } - - var nbFollowingNumbers = consumeNumbers(index + 1, parent); - var i = index + nbFollowingNumbers + 1; - var nextSiblingNode = i < parent.expressions.length && parent.expressions[i]; - - if (nbFollowingNumbers) { - // Avoid \{3} turning into {3} - if (isSimpleChar(nextSiblingNode, '}')) { - return true; - } - - if (isSimpleChar(nextSiblingNode, ',')) { - nbFollowingNumbers = consumeNumbers(i + 1, parent); - i = i + nbFollowingNumbers + 1; - nextSiblingNode = i < parent.expressions.length && parent.expressions[i]; - - // Avoid \{3,} turning into {3,} - return isSimpleChar(nextSiblingNode, '}'); - } - } - return false; -} - -function preservesClosingCurlyBraceEscape(index, parent) { - // (?:\{) -> (?:{) - if (index == null) { - return false; - } - - var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true); - var i = index - nbPrecedingNumbers - 1; - var previousSiblingNode = i >= 0 && parent.expressions[i]; - - // Avoid {3\} turning into {3} - if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) { - return true; - } - - if (isSimpleChar(previousSiblingNode, ',')) { - nbPrecedingNumbers = consumeNumbers(i - 1, parent, true); - i = i - nbPrecedingNumbers - 1; - previousSiblingNode = i < parent.expressions.length && parent.expressions[i]; - - // Avoid {3,\} turning into {3,} - return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{'); - } - return false; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js": -/*!***************************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js ***! - \***************************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to transform surrogate pairs into single unicode code point - * - * \ud83d\ude80 -> \u{1f680} - */ - -module.exports = { - shouldRun: function shouldRun(ast) { - return ast.flags.includes('u'); - }, - Char: function Char(path) { - var node = path.node; - - if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) { - return; - } - node.value = '\\u{' + node.codePoint.toString(16) + '}'; - delete node.isSurrogatePair; - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js ***! - \****************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -var NodePath = __webpack_require__(/*! ../../traverse/node-path */ "./node_modules/regexp-tree/dist/traverse/node-path.js"); - -var _require = __webpack_require__(/*! ../../transform/utils */ "./node_modules/regexp-tree/dist/transform/utils.js"), - increaseQuantifierByOne = _require.increaseQuantifierByOne; - -/** - * A regexp-tree plugin to combine repeating patterns. - * - * /^abcabcabc/ -> /^abc{3}/ - * /^(?:abc){2}abc/ -> /^(?:abc){3}/ - * /^abc(?:abc){2}/ -> /^(?:abc){3}/ - */ - -module.exports = { - Alternative: function Alternative(path) { - var node = path.node; - - // We can skip the first child - - var index = 1; - while (index < node.expressions.length) { - var child = path.getChild(index); - index = Math.max(1, combineRepeatingPatternLeft(path, child, index)); - - if (index >= node.expressions.length) { - break; - } - - child = path.getChild(index); - index = Math.max(1, combineWithPreviousRepetition(path, child, index)); - - if (index >= node.expressions.length) { - break; - } - - child = path.getChild(index); - index = Math.max(1, combineRepetitionWithPrevious(path, child, index)); - - index++; - } - } -}; - -// abcabc -> (?:abc){2} -function combineRepeatingPatternLeft(alternative, child, index) { - var node = alternative.node; - - - var nbPossibleLengths = Math.ceil(index / 2); - var i = 0; - - while (i < nbPossibleLengths) { - var startIndex = index - 2 * i - 1; - var right = void 0, - left = void 0; - - if (i === 0) { - right = child; - left = alternative.getChild(startIndex); - } else { - right = NodePath.getForNode({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node]) - }); - - left = NodePath.getForNode({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i))) - }); - } - - if (right.hasEqualSource(left)) { - for (var j = 0; j < 2 * i + 1; j++) { - alternative.getChild(startIndex).remove(); - } - - child.replace({ - type: 'Repetition', - expression: i === 0 && right.node.type !== 'Repetition' ? right.node : { - type: 'Group', - capturing: false, - expression: right.node - }, - quantifier: { - type: 'Quantifier', - kind: 'Range', - from: 2, - to: 2, - greedy: true - } - }); - return startIndex; - } - - i++; - } - - return index; -} - -// (?:abc){2}abc -> (?:abc){3} -function combineWithPreviousRepetition(alternative, child, index) { - var node = alternative.node; - - - var i = 0; - while (i < index) { - var previousChild = alternative.getChild(i); - - if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) { - var left = previousChild.getChild(); - var right = void 0; - - if (left.node.type === 'Group' && !left.node.capturing) { - left = left.getChild(); - } - - if (i + 1 === index) { - right = child; - if (right.node.type === 'Group' && !right.node.capturing) { - right = right.getChild(); - } - } else { - right = NodePath.getForNode({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1))) - }); - } - - if (left.hasEqualSource(right)) { - for (var j = i; j < index; j++) { - alternative.getChild(i + 1).remove(); - } - - increaseQuantifierByOne(previousChild.node.quantifier); - - return i; - } - } - - i++; - } - return index; -} - -// abc(?:abc){2} -> (?:abc){3} -function combineRepetitionWithPrevious(alternative, child, index) { - var node = alternative.node; - - - if (child.node.type === 'Repetition' && child.node.quantifier.greedy) { - var right = child.getChild(); - var left = void 0; - - if (right.node.type === 'Group' && !right.node.capturing) { - right = right.getChild(); - } - - var rightLength = void 0; - if (right.node.type === 'Alternative') { - rightLength = right.node.expressions.length; - left = NodePath.getForNode({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index))) - }); - } else { - rightLength = 1; - left = alternative.getChild(index - 1); - if (left.node.type === 'Group' && !left.node.capturing) { - left = left.getChild(); - } - } - - if (left.hasEqualSource(right)) { - for (var j = index - rightLength; j < index; j++) { - alternative.getChild(index - rightLength).remove(); - } - - increaseQuantifierByOne(child.node.quantifier); - - return index - rightLength; - } - } - return index; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js": -/*!*******************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js ***! - \*******************************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var NodePath = __webpack_require__(/*! ../../traverse/node-path */ "./node_modules/regexp-tree/dist/traverse/node-path.js"); - -var _require = __webpack_require__(/*! ../../transform/utils */ "./node_modules/regexp-tree/dist/transform/utils.js"), - disjunctionToList = _require.disjunctionToList, - listToDisjunction = _require.listToDisjunction; - -/** - * Removes duplicates from a disjunction sequence: - * - * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/ - */ - - -module.exports = { - Disjunction: function Disjunction(path) { - var node = path.node; - - // Make unique nodes. - - var uniqueNodesMap = {}; - - var parts = disjunctionToList(node).filter(function (part) { - var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null'; - - // Already recorded this part, filter out. - if (uniqueNodesMap.hasOwnProperty(encoded)) { - return false; - } - - uniqueNodesMap[encoded] = part; - return true; - }); - - // Replace with the optimized disjunction. - path.replace(listToDisjunction(parts)); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js": -/*!************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js ***! - \************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to replace single char group disjunction to char group - * - * a|b|c -> [abc] - * [12]|3|4 -> [1234] - * (a|b|c) -> ([abc]) - * (?:a|b|c) -> [abc] - */ - -module.exports = { - Disjunction: function Disjunction(path) { - var node = path.node, - parent = path.parent; - - - if (!handlers[parent.type]) { - return; - } - - var charset = new Map(); - - if (!shouldProcess(node, charset) || !charset.size) { - return; - } - - var characterClass = { - type: 'CharacterClass', - expressions: Array.from(charset.keys()).sort().map(function (key) { - return charset.get(key); - }) - }; - - handlers[parent.type](path.getParent(), characterClass); - } -}; - -var handlers = { - RegExp: function RegExp(path, characterClass) { - var node = path.node; - - - node.body = characterClass; - }, - Group: function Group(path, characterClass) { - var node = path.node; - - - if (node.capturing) { - node.expression = characterClass; - } else { - path.replace(characterClass); - } - } -}; - -function shouldProcess(expression, charset) { - if (!expression) { - // Abort on empty disjunction part - return false; - } - - var type = expression.type; - - - if (type === 'Disjunction') { - var left = expression.left, - right = expression.right; - - - return shouldProcess(left, charset) && shouldProcess(right, charset); - } else if (type === 'Char') { - if (expression.kind === 'meta' && expression.symbol === '.') { - return false; - } - - var value = expression.value; - - - charset.set(value, expression); - - return true; - } else if (type === 'CharacterClass' && !expression.negative) { - return expression.expressions.every(function (expression) { - return shouldProcess(expression, charset); - }); - } - - return false; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/index.js": -/*!*********************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/index.js ***! - \*********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -module.exports = new Map([ -// \ud83d\ude80 -> \u{1f680} -['charSurrogatePairToSingleUnicode', __webpack_require__(/*! ./char-surrogate-pair-to-single-unicode-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js")], - -// \u0061 -> a -['charCodeToSimpleChar', __webpack_require__(/*! ./char-code-to-simple-char-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js")], - -// /Aa/i -> /aa/i -['charCaseInsensitiveLowerCaseTransform', __webpack_require__(/*! ./char-case-insensitive-lowercase-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js")], - -// [\d\d] -> [\d] -['charClassRemoveDuplicates', __webpack_require__(/*! ./char-class-remove-duplicates-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js")], - -// a{1,2}a{2,3} -> a{3,5} -['quantifiersMerge', __webpack_require__(/*! ./quantifiers-merge-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js")], - -// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a -['quantifierRangeToSymbol', __webpack_require__(/*! ./quantifier-range-to-symbol-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js")], - -// [a-a] -> [a], [a-b] -> [ab] -['charClassClassrangesToChars', __webpack_require__(/*! ./char-class-classranges-to-chars-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js")], - -// [0-9] -> [\d] -['charClassToMeta', __webpack_require__(/*! ./char-class-to-meta-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js")], - -// [\d] -> \d, [^\w] -> \W -['charClassToSingleChar', __webpack_require__(/*! ./char-class-to-single-char-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js")], - -// \e -> e -['charEscapeUnescape', __webpack_require__(/*! ./char-escape-unescape-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js")], - -// [a-de-f] -> [a-f] -['charClassClassrangesMerge', __webpack_require__(/*! ./char-class-classranges-merge-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js")], - -// (ab|ab) -> (ab) -['disjunctionRemoveDuplicates', __webpack_require__(/*! ./disjunction-remove-duplicates-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js")], - -// (a|b|c) -> [abc] -['groupSingleCharsToCharClass', __webpack_require__(/*! ./group-single-chars-to-char-class */ "./node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js")], - -// (?:)a -> a -['removeEmptyGroup', __webpack_require__(/*! ./remove-empty-group-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js")], - -// (?:a) -> a -['ungroup', __webpack_require__(/*! ./ungroup-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js")], - -// abcabcabc -> (?:abc){3} -['combineRepeatingPatterns', __webpack_require__(/*! ./combine-repeating-patterns-transform */ "./node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js")]]); - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js": -/*!****************************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js ***! - \****************************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to replace different range-based quantifiers - * with their symbol equivalents. - * - * a{0,} -> a* - * a{1,} -> a+ - * a{1} -> a - * - * NOTE: the following is automatically handled in the generator: - * - * a{3,3} -> a{3} - */ - -module.exports = { - Quantifier: function Quantifier(path) { - var node = path.node; - - - if (node.kind !== 'Range') { - return; - } - - // a{0,} -> a* - rewriteOpenZero(path); - - // a{1,} -> a+ - rewriteOpenOne(path); - - // a{1} -> a - rewriteExactOne(path); - } -}; - -function rewriteOpenZero(path) { - var node = path.node; - - - if (node.from !== 0 || node.to) { - return; - } - - node.kind = '*'; - delete node.from; -} - -function rewriteOpenOne(path) { - var node = path.node; - - - if (node.from !== 1 || node.to) { - return; - } - - node.kind = '+'; - delete node.from; -} - -function rewriteExactOne(path) { - var node = path.node; - - - if (node.from !== 1 || node.to !== 1) { - return; - } - - path.parentPath.replace(path.parentPath.node.expression); -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js": -/*!*******************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js ***! - \*******************************************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _require = __webpack_require__(/*! ../../transform/utils */ "./node_modules/regexp-tree/dist/transform/utils.js"), - increaseQuantifierByOne = _require.increaseQuantifierByOne; - -/** - * A regexp-tree plugin to merge quantifiers - * - * a+a+ -> a{2,} - * a{2}a{3} -> a{5} - * a{1,2}a{2,3} -> a{3,5} - */ - - -module.exports = { - Repetition: function Repetition(path) { - var node = path.node, - parent = path.parent; - - - if (parent.type !== 'Alternative' || !path.index) { - return; - } - - var previousSibling = path.getPreviousSibling(); - - if (!previousSibling) { - return; - } - - if (previousSibling.node.type === 'Repetition') { - if (!previousSibling.getChild().hasEqualSource(path.getChild())) { - return; - } - - var _extractFromTo = extractFromTo(previousSibling.node.quantifier), - previousSiblingFrom = _extractFromTo.from, - previousSiblingTo = _extractFromTo.to; - - var _extractFromTo2 = extractFromTo(node.quantifier), - nodeFrom = _extractFromTo2.from, - nodeTo = _extractFromTo2.to; - - // It's does not seem reliable to merge quantifiers with different greediness - // when none of both is a greedy open range - - - if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) { - return; - } - - // a*a* -> a* - // a*a+ -> a+ - // a+a+ -> a{2,} - // a{2}a{4} -> a{6} - // a{1,2}a{2,3} -> a{3,5} - // a{1,}a{2,} -> a{3,} - // a+a{2,} -> a{3,} - - // a??a{2,} -> a{2,} - // a*?a{2,} -> a{2,} - // a+?a{2,} -> a{3,} - - node.quantifier.kind = 'Range'; - node.quantifier.from = previousSiblingFrom + nodeFrom; - if (previousSiblingTo && nodeTo) { - node.quantifier.to = previousSiblingTo + nodeTo; - } else { - delete node.quantifier.to; - } - if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) { - node.quantifier.greedy = true; - } - - previousSibling.remove(); - } else { - if (!previousSibling.hasEqualSource(path.getChild())) { - return; - } - - increaseQuantifierByOne(node.quantifier); - previousSibling.remove(); - } - } -}; - -function isGreedyOpenRange(quantifier) { - return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to); -} - -function extractFromTo(quantifier) { - var from = void 0, - to = void 0; - if (quantifier.kind === '*') { - from = 0; - } else if (quantifier.kind === '+') { - from = 1; - } else if (quantifier.kind === '?') { - from = 0; - to = 1; - } else { - from = quantifier.from; - if (quantifier.to) { - to = quantifier.to; - } - } - return { from: from, to: to }; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js": -/*!********************************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js ***! - \********************************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove non-capturing empty groups. - * - * /(?:)a/ -> /a/ - * /a|(?:)/ -> /a|/ - */ - -module.exports = { - Group: function Group(path) { - var node = path.node, - parent = path.parent; - - var childPath = path.getChild(); - - if (node.capturing || childPath) { - return; - } - - if (parent.type === 'Repetition') { - - path.getParent().replace(node); - } else if (parent.type !== 'RegExp') { - - path.remove(); - } - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js": -/*!*********************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js ***! - \*********************************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * A regexp-tree plugin to remove unnecessary groups. - * - * /(?:a)/ -> /a/ - */ - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -module.exports = { - Group: function Group(path) { - var node = path.node, - parent = path.parent; - - var childPath = path.getChild(); - - if (node.capturing || !childPath) { - return; - } - - // Don't optimize \1(?:0) to \10 - if (!hasAppropriateSiblings(path)) { - return; - } - - // Don't optimize /a(?:b|c)/ to /ab|c/ - // but /(?:b|c)/ to /b|c/ is ok - if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') { - return; - } - - // Don't optimize /(?:ab)+/ to /ab+/ - // but /(?:a)+/ to /a+/ is ok - // and /(?:[a-d])+/ to /[a-d]+/ is ok too - if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') { - return; - } - - if (childPath.node.type === 'Alternative') { - var parentPath = path.getParent(); - if (parentPath.node.type === 'Alternative') { - // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative - - parentPath.replace({ - type: 'Alternative', - expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1))) - }); - } - } else { - path.replace(childPath.node); - } - } -}; - -function hasAppropriateSiblings(path) { - var parent = path.parent, - index = path.index; - - - if (parent.type !== 'Alternative') { - return true; - } - - var previousNode = parent.expressions[index - 1]; - if (previousNode == null) { - return true; - } - - // Don't optimized \1(?:0) to \10 - if (previousNode.type === 'Backreference' && previousNode.kind === 'number') { - return false; - } - - // Don't optimized \2(?:0) to \20 - if (previousNode.type === 'Char' && previousNode.kind === 'decimal') { - return false; - } - - return true; -} - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/parser/generated/regexp-tree.js": -/*!***********************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/parser/generated/regexp-tree.js ***! - \***********************************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * LR parser generated by the Syntax tool. - * - * https://www.npmjs.com/package/syntax-cli - * - * npm install -g syntax-cli - * - * syntax-cli --help - * - * To regenerate run: - * - * syntax-cli \ - * --grammar ~/path-to-grammar-file \ - * --mode \ - * --output ~/path-to-output-parser-file.js - */ - - - -/** - * Matched token text. - */ - -var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -var yytext = void 0; - -/** - * Length of the matched token text. - */ -var yyleng = void 0; - -/** - * Storage object. - */ -var yy = {}; - -/** - * Result of semantic action. - */ -var __ = void 0; - -/** - * Result location object. - */ -var __loc = void 0; - -function yyloc(start, end) { - if (!yy.options.captureLocations) { - return null; - } - - // Epsilon doesn't produce location. - if (!start || !end) { - return start || end; - } - - return { - startOffset: start.startOffset, - endOffset: end.endOffset, - startLine: start.startLine, - endLine: end.endLine, - startColumn: start.startColumn, - endColumn: end.endColumn - }; -} - -var EOF = '$'; - -/** - * List of productions (generated by Syntax tool). - */ -var productions = [[-1, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) { - __loc = yyloc(_1loc, _4loc); - __ = Node({ - type: 'RegExp', - body: _2, - flags: checkFlags(_4) - }, loc(_1loc, _4loc || _3loc)); -}], [1, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [1, 0, function () { - __loc = null;__ = ''; -}], [2, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [2, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc);__ = _1 + _2; -}], [3, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [4, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - // Location for empty disjunction: /|/ - var _loc = null; - - if (_2loc) { - _loc = loc(_1loc || _2loc, _3loc || _2loc); - }; - - __ = Node({ - type: 'Disjunction', - left: _1, - right: _3 - }, _loc); -}], [5, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - if (_1.length === 0) { - __ = null; - return; - } - - if (_1.length === 1) { - __ = Node(_1[0], __loc); - } else { - __ = Node({ - type: 'Alternative', - expressions: _1 - }, __loc); - } -}], [6, 0, function () { - __loc = null;__ = []; -}], [6, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2); -}], [7, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc); -}], [7, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc); - __ = _1; - - if (_2) { - __ = Node({ - type: 'Repetition', - expression: _1, - quantifier: _2 - }, __loc); - } -}], [8, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = { kind: '^' }; -}], [8, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = { kind: '$' }; -}], [8, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = { kind: '\\b' }; -}], [8, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = { kind: '\\B' }; -}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = { - kind: 'Lookahead', - assertion: _2 - }; -}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = { - kind: 'Lookahead', - negative: true, - assertion: _2 - }; -}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = { - kind: 'Lookbehind', - assertion: _2 - }; -}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = { - kind: 'Lookbehind', - negative: true, - assertion: _2 - }; -}], [9, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [9, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [9, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true; -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true; -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc); -}], [10, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc); -}], [11, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [11, 0], [12, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [12, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc); - _1.greedy = false; - __ = _1; -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - __ = Node({ - type: 'Quantifier', - kind: _1, - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - __ = Node({ - type: 'Quantifier', - kind: _1, - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - __ = Node({ - type: 'Quantifier', - kind: _1, - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - var range = getRange(_1); - __ = Node({ - type: 'Quantifier', - kind: 'Range', - from: range[0], - to: range[0], - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - __ = Node({ - type: 'Quantifier', - kind: 'Range', - from: getRange(_1)[0], - greedy: true - }, __loc); -}], [13, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc); - var range = getRange(_1); - __ = Node({ - type: 'Quantifier', - kind: 'Range', - from: range[0], - to: range[1], - greedy: true - }, __loc); -}], [14, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [14, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - var nameRaw = String(_1); - var name = decodeUnicodeGroupName(nameRaw); - if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) { - throw new SyntaxError('Duplicate of the named group "' + name + '".'); - } - - namedGroups[name] = _1.groupNumber; - - __ = Node({ - type: 'Group', - capturing: true, - name: name, - nameRaw: nameRaw, - number: _1.groupNumber, - expression: _2 - }, __loc); -}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = Node({ - type: 'Group', - capturing: true, - number: _1.groupNumber, - expression: _2 - }, __loc); -}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = Node({ - type: 'Group', - capturing: false, - expression: _2 - }, __loc); -}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = Node({ - type: 'CharacterClass', - negative: true, - expressions: _2 - }, __loc); -}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) { - __loc = yyloc(_1loc, _3loc); - __ = Node({ - type: 'CharacterClass', - expressions: _2 - }, __loc); -}], [18, 0, function () { - __loc = null;__ = []; -}], [18, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [19, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = [_1]; -}], [19, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2); -}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) { - __loc = yyloc(_1loc, _4loc); - checkClassRange(_1, _3); - - __ = [Node({ - type: 'ClassRange', - from: _1, - to: _3 - }, loc(_1loc, _3loc))]; - - if (_4) { - __ = __.concat(_4); - } -}], [20, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [20, 2, function (_1, _2, _1loc, _2loc) { - __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2); -}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) { - __loc = yyloc(_1loc, _4loc); - checkClassRange(_1, _3); - - __ = [Node({ - type: 'ClassRange', - from: _1, - to: _3 - }, loc(_1loc, _3loc))]; - - if (_4) { - __ = __.concat(_4); - } -}], [21, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc); -}], [21, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [22, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = _1; -}], [22, 1, function (_1, _1loc) { - __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc); -}]]; - -/** - * Encoded tokens map. - */ -var tokens = { "SLASH": "23", "CHAR": "24", "BAR": "25", "BOS": "26", "EOS": "27", "ESC_b": "28", "ESC_B": "29", "POS_LA_ASSERT": "30", "R_PAREN": "31", "NEG_LA_ASSERT": "32", "POS_LB_ASSERT": "33", "NEG_LB_ASSERT": "34", "ESC_CHAR": "35", "U_CODE_SURROGATE": "36", "U_CODE": "37", "U_PROP_VALUE_EXP": "38", "CTRL_CH": "39", "HEX_CODE": "40", "OCT_CODE": "41", "DEC_CODE": "42", "META_CHAR": "43", "ANY": "44", "NAMED_GROUP_REF": "45", "Q_MARK": "46", "STAR": "47", "PLUS": "48", "RANGE_EXACT": "49", "RANGE_OPEN": "50", "RANGE_CLOSED": "51", "NAMED_CAPTURE_GROUP": "52", "L_PAREN": "53", "NON_CAPTURE_GROUP": "54", "NEG_CLASS": "55", "R_BRACKET": "56", "L_BRACKET": "57", "DASH": "58", "$": "59" }; - -/** - * Parsing table (generated by Syntax tool). - */ -var table = [{ "0": 1, "23": "s2" }, { "59": "acc" }, { "3": 3, "4": 4, "5": 5, "6": 6, "23": "r10", "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "s7" }, { "23": "r6", "25": "s12" }, { "23": "r7", "25": "r7", "31": "r7" }, { "7": 14, "8": 15, "9": 16, "10": 25, "14": 27, "15": 42, "16": 43, "17": 26, "23": "r9", "24": "s28", "25": "r9", "26": "s17", "27": "s18", "28": "s19", "29": "s20", "30": "s21", "31": "r9", "32": "s22", "33": "s23", "34": "s24", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "52": "s44", "53": "s45", "54": "s46", "55": "s40", "57": "s41" }, { "1": 8, "2": 9, "24": "s10", "59": "r3" }, { "59": "r1" }, { "24": "s11", "59": "r2" }, { "24": "r4", "59": "r4" }, { "24": "r5", "59": "r5" }, { "5": 13, "6": 6, "23": "r10", "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r8", "25": "r8", "31": "r8" }, { "23": "r11", "24": "r11", "25": "r11", "26": "r11", "27": "r11", "28": "r11", "29": "r11", "30": "r11", "31": "r11", "32": "r11", "33": "r11", "34": "r11", "35": "r11", "36": "r11", "37": "r11", "38": "r11", "39": "r11", "40": "r11", "41": "r11", "42": "r11", "43": "r11", "44": "r11", "45": "r11", "52": "r11", "53": "r11", "54": "r11", "55": "r11", "57": "r11" }, { "23": "r12", "24": "r12", "25": "r12", "26": "r12", "27": "r12", "28": "r12", "29": "r12", "30": "r12", "31": "r12", "32": "r12", "33": "r12", "34": "r12", "35": "r12", "36": "r12", "37": "r12", "38": "r12", "39": "r12", "40": "r12", "41": "r12", "42": "r12", "43": "r12", "44": "r12", "45": "r12", "52": "r12", "53": "r12", "54": "r12", "55": "r12", "57": "r12" }, { "11": 47, "12": 48, "13": 49, "23": "r38", "24": "r38", "25": "r38", "26": "r38", "27": "r38", "28": "r38", "29": "r38", "30": "r38", "31": "r38", "32": "r38", "33": "r38", "34": "r38", "35": "r38", "36": "r38", "37": "r38", "38": "r38", "39": "r38", "40": "r38", "41": "r38", "42": "r38", "43": "r38", "44": "r38", "45": "r38", "46": "s52", "47": "s50", "48": "s51", "49": "s53", "50": "s54", "51": "s55", "52": "r38", "53": "r38", "54": "r38", "55": "r38", "57": "r38" }, { "23": "r14", "24": "r14", "25": "r14", "26": "r14", "27": "r14", "28": "r14", "29": "r14", "30": "r14", "31": "r14", "32": "r14", "33": "r14", "34": "r14", "35": "r14", "36": "r14", "37": "r14", "38": "r14", "39": "r14", "40": "r14", "41": "r14", "42": "r14", "43": "r14", "44": "r14", "45": "r14", "52": "r14", "53": "r14", "54": "r14", "55": "r14", "57": "r14" }, { "23": "r15", "24": "r15", "25": "r15", "26": "r15", "27": "r15", "28": "r15", "29": "r15", "30": "r15", "31": "r15", "32": "r15", "33": "r15", "34": "r15", "35": "r15", "36": "r15", "37": "r15", "38": "r15", "39": "r15", "40": "r15", "41": "r15", "42": "r15", "43": "r15", "44": "r15", "45": "r15", "52": "r15", "53": "r15", "54": "r15", "55": "r15", "57": "r15" }, { "23": "r16", "24": "r16", "25": "r16", "26": "r16", "27": "r16", "28": "r16", "29": "r16", "30": "r16", "31": "r16", "32": "r16", "33": "r16", "34": "r16", "35": "r16", "36": "r16", "37": "r16", "38": "r16", "39": "r16", "40": "r16", "41": "r16", "42": "r16", "43": "r16", "44": "r16", "45": "r16", "52": "r16", "53": "r16", "54": "r16", "55": "r16", "57": "r16" }, { "23": "r17", "24": "r17", "25": "r17", "26": "r17", "27": "r17", "28": "r17", "29": "r17", "30": "r17", "31": "r17", "32": "r17", "33": "r17", "34": "r17", "35": "r17", "36": "r17", "37": "r17", "38": "r17", "39": "r17", "40": "r17", "41": "r17", "42": "r17", "43": "r17", "44": "r17", "45": "r17", "52": "r17", "53": "r17", "54": "r17", "55": "r17", "57": "r17" }, { "4": 57, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 59, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 61, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 63, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r22", "24": "r22", "25": "r22", "26": "r22", "27": "r22", "28": "r22", "29": "r22", "30": "r22", "31": "r22", "32": "r22", "33": "r22", "34": "r22", "35": "r22", "36": "r22", "37": "r22", "38": "r22", "39": "r22", "40": "r22", "41": "r22", "42": "r22", "43": "r22", "44": "r22", "45": "r22", "46": "r22", "47": "r22", "48": "r22", "49": "r22", "50": "r22", "51": "r22", "52": "r22", "53": "r22", "54": "r22", "55": "r22", "57": "r22" }, { "23": "r23", "24": "r23", "25": "r23", "26": "r23", "27": "r23", "28": "r23", "29": "r23", "30": "r23", "31": "r23", "32": "r23", "33": "r23", "34": "r23", "35": "r23", "36": "r23", "37": "r23", "38": "r23", "39": "r23", "40": "r23", "41": "r23", "42": "r23", "43": "r23", "44": "r23", "45": "r23", "46": "r23", "47": "r23", "48": "r23", "49": "r23", "50": "r23", "51": "r23", "52": "r23", "53": "r23", "54": "r23", "55": "r23", "57": "r23" }, { "23": "r24", "24": "r24", "25": "r24", "26": "r24", "27": "r24", "28": "r24", "29": "r24", "30": "r24", "31": "r24", "32": "r24", "33": "r24", "34": "r24", "35": "r24", "36": "r24", "37": "r24", "38": "r24", "39": "r24", "40": "r24", "41": "r24", "42": "r24", "43": "r24", "44": "r24", "45": "r24", "46": "r24", "47": "r24", "48": "r24", "49": "r24", "50": "r24", "51": "r24", "52": "r24", "53": "r24", "54": "r24", "55": "r24", "57": "r24" }, { "23": "r25", "24": "r25", "25": "r25", "26": "r25", "27": "r25", "28": "r25", "29": "r25", "30": "r25", "31": "r25", "32": "r25", "33": "r25", "34": "r25", "35": "r25", "36": "r25", "37": "r25", "38": "r25", "39": "r25", "40": "r25", "41": "r25", "42": "r25", "43": "r25", "44": "r25", "45": "r25", "46": "r25", "47": "r25", "48": "r25", "49": "r25", "50": "r25", "51": "r25", "52": "r25", "53": "r25", "54": "r25", "55": "r25", "56": "r25", "57": "r25", "58": "r25" }, { "23": "r26", "24": "r26", "25": "r26", "26": "r26", "27": "r26", "28": "r26", "29": "r26", "30": "r26", "31": "r26", "32": "r26", "33": "r26", "34": "r26", "35": "r26", "36": "r26", "37": "r26", "38": "r26", "39": "r26", "40": "r26", "41": "r26", "42": "r26", "43": "r26", "44": "r26", "45": "r26", "46": "r26", "47": "r26", "48": "r26", "49": "r26", "50": "r26", "51": "r26", "52": "r26", "53": "r26", "54": "r26", "55": "r26", "56": "r26", "57": "r26", "58": "r26" }, { "23": "r27", "24": "r27", "25": "r27", "26": "r27", "27": "r27", "28": "r27", "29": "r27", "30": "r27", "31": "r27", "32": "r27", "33": "r27", "34": "r27", "35": "r27", "36": "r27", "37": "r27", "38": "r27", "39": "r27", "40": "r27", "41": "r27", "42": "r27", "43": "r27", "44": "r27", "45": "r27", "46": "r27", "47": "r27", "48": "r27", "49": "r27", "50": "r27", "51": "r27", "52": "r27", "53": "r27", "54": "r27", "55": "r27", "56": "r27", "57": "r27", "58": "r27" }, { "23": "r28", "24": "r28", "25": "r28", "26": "r28", "27": "r28", "28": "r28", "29": "r28", "30": "r28", "31": "r28", "32": "r28", "33": "r28", "34": "r28", "35": "r28", "36": "r28", "37": "r28", "38": "r28", "39": "r28", "40": "r28", "41": "r28", "42": "r28", "43": "r28", "44": "r28", "45": "r28", "46": "r28", "47": "r28", "48": "r28", "49": "r28", "50": "r28", "51": "r28", "52": "r28", "53": "r28", "54": "r28", "55": "r28", "56": "r28", "57": "r28", "58": "r28" }, { "23": "r29", "24": "r29", "25": "r29", "26": "r29", "27": "r29", "28": "r29", "29": "r29", "30": "r29", "31": "r29", "32": "r29", "33": "r29", "34": "r29", "35": "r29", "36": "r29", "37": "r29", "38": "r29", "39": "r29", "40": "r29", "41": "r29", "42": "r29", "43": "r29", "44": "r29", "45": "r29", "46": "r29", "47": "r29", "48": "r29", "49": "r29", "50": "r29", "51": "r29", "52": "r29", "53": "r29", "54": "r29", "55": "r29", "56": "r29", "57": "r29", "58": "r29" }, { "23": "r30", "24": "r30", "25": "r30", "26": "r30", "27": "r30", "28": "r30", "29": "r30", "30": "r30", "31": "r30", "32": "r30", "33": "r30", "34": "r30", "35": "r30", "36": "r30", "37": "r30", "38": "r30", "39": "r30", "40": "r30", "41": "r30", "42": "r30", "43": "r30", "44": "r30", "45": "r30", "46": "r30", "47": "r30", "48": "r30", "49": "r30", "50": "r30", "51": "r30", "52": "r30", "53": "r30", "54": "r30", "55": "r30", "56": "r30", "57": "r30", "58": "r30" }, { "23": "r31", "24": "r31", "25": "r31", "26": "r31", "27": "r31", "28": "r31", "29": "r31", "30": "r31", "31": "r31", "32": "r31", "33": "r31", "34": "r31", "35": "r31", "36": "r31", "37": "r31", "38": "r31", "39": "r31", "40": "r31", "41": "r31", "42": "r31", "43": "r31", "44": "r31", "45": "r31", "46": "r31", "47": "r31", "48": "r31", "49": "r31", "50": "r31", "51": "r31", "52": "r31", "53": "r31", "54": "r31", "55": "r31", "56": "r31", "57": "r31", "58": "r31" }, { "23": "r32", "24": "r32", "25": "r32", "26": "r32", "27": "r32", "28": "r32", "29": "r32", "30": "r32", "31": "r32", "32": "r32", "33": "r32", "34": "r32", "35": "r32", "36": "r32", "37": "r32", "38": "r32", "39": "r32", "40": "r32", "41": "r32", "42": "r32", "43": "r32", "44": "r32", "45": "r32", "46": "r32", "47": "r32", "48": "r32", "49": "r32", "50": "r32", "51": "r32", "52": "r32", "53": "r32", "54": "r32", "55": "r32", "56": "r32", "57": "r32", "58": "r32" }, { "23": "r33", "24": "r33", "25": "r33", "26": "r33", "27": "r33", "28": "r33", "29": "r33", "30": "r33", "31": "r33", "32": "r33", "33": "r33", "34": "r33", "35": "r33", "36": "r33", "37": "r33", "38": "r33", "39": "r33", "40": "r33", "41": "r33", "42": "r33", "43": "r33", "44": "r33", "45": "r33", "46": "r33", "47": "r33", "48": "r33", "49": "r33", "50": "r33", "51": "r33", "52": "r33", "53": "r33", "54": "r33", "55": "r33", "56": "r33", "57": "r33", "58": "r33" }, { "23": "r34", "24": "r34", "25": "r34", "26": "r34", "27": "r34", "28": "r34", "29": "r34", "30": "r34", "31": "r34", "32": "r34", "33": "r34", "34": "r34", "35": "r34", "36": "r34", "37": "r34", "38": "r34", "39": "r34", "40": "r34", "41": "r34", "42": "r34", "43": "r34", "44": "r34", "45": "r34", "46": "r34", "47": "r34", "48": "r34", "49": "r34", "50": "r34", "51": "r34", "52": "r34", "53": "r34", "54": "r34", "55": "r34", "56": "r34", "57": "r34", "58": "r34" }, { "23": "r35", "24": "r35", "25": "r35", "26": "r35", "27": "r35", "28": "r35", "29": "r35", "30": "r35", "31": "r35", "32": "r35", "33": "r35", "34": "r35", "35": "r35", "36": "r35", "37": "r35", "38": "r35", "39": "r35", "40": "r35", "41": "r35", "42": "r35", "43": "r35", "44": "r35", "45": "r35", "46": "r35", "47": "r35", "48": "r35", "49": "r35", "50": "r35", "51": "r35", "52": "r35", "53": "r35", "54": "r35", "55": "r35", "56": "r35", "57": "r35", "58": "r35" }, { "23": "r36", "24": "r36", "25": "r36", "26": "r36", "27": "r36", "28": "r36", "29": "r36", "30": "r36", "31": "r36", "32": "r36", "33": "r36", "34": "r36", "35": "r36", "36": "r36", "37": "r36", "38": "r36", "39": "r36", "40": "r36", "41": "r36", "42": "r36", "43": "r36", "44": "r36", "45": "r36", "46": "r36", "47": "r36", "48": "r36", "49": "r36", "50": "r36", "51": "r36", "52": "r36", "53": "r36", "54": "r36", "55": "r36", "56": "r36", "57": "r36", "58": "r36" }, { "10": 70, "18": 65, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "10": 70, "18": 83, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "23": "r47", "24": "r47", "25": "r47", "26": "r47", "27": "r47", "28": "r47", "29": "r47", "30": "r47", "31": "r47", "32": "r47", "33": "r47", "34": "r47", "35": "r47", "36": "r47", "37": "r47", "38": "r47", "39": "r47", "40": "r47", "41": "r47", "42": "r47", "43": "r47", "44": "r47", "45": "r47", "46": "r47", "47": "r47", "48": "r47", "49": "r47", "50": "r47", "51": "r47", "52": "r47", "53": "r47", "54": "r47", "55": "r47", "57": "r47" }, { "23": "r48", "24": "r48", "25": "r48", "26": "r48", "27": "r48", "28": "r48", "29": "r48", "30": "r48", "31": "r48", "32": "r48", "33": "r48", "34": "r48", "35": "r48", "36": "r48", "37": "r48", "38": "r48", "39": "r48", "40": "r48", "41": "r48", "42": "r48", "43": "r48", "44": "r48", "45": "r48", "46": "r48", "47": "r48", "48": "r48", "49": "r48", "50": "r48", "51": "r48", "52": "r48", "53": "r48", "54": "r48", "55": "r48", "57": "r48" }, { "4": 85, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 87, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "4": 89, "5": 5, "6": 6, "24": "r10", "25": "r10", "26": "r10", "27": "r10", "28": "r10", "29": "r10", "30": "r10", "31": "r10", "32": "r10", "33": "r10", "34": "r10", "35": "r10", "36": "r10", "37": "r10", "38": "r10", "39": "r10", "40": "r10", "41": "r10", "42": "r10", "43": "r10", "44": "r10", "45": "r10", "52": "r10", "53": "r10", "54": "r10", "55": "r10", "57": "r10" }, { "23": "r13", "24": "r13", "25": "r13", "26": "r13", "27": "r13", "28": "r13", "29": "r13", "30": "r13", "31": "r13", "32": "r13", "33": "r13", "34": "r13", "35": "r13", "36": "r13", "37": "r13", "38": "r13", "39": "r13", "40": "r13", "41": "r13", "42": "r13", "43": "r13", "44": "r13", "45": "r13", "52": "r13", "53": "r13", "54": "r13", "55": "r13", "57": "r13" }, { "23": "r37", "24": "r37", "25": "r37", "26": "r37", "27": "r37", "28": "r37", "29": "r37", "30": "r37", "31": "r37", "32": "r37", "33": "r37", "34": "r37", "35": "r37", "36": "r37", "37": "r37", "38": "r37", "39": "r37", "40": "r37", "41": "r37", "42": "r37", "43": "r37", "44": "r37", "45": "r37", "52": "r37", "53": "r37", "54": "r37", "55": "r37", "57": "r37" }, { "23": "r39", "24": "r39", "25": "r39", "26": "r39", "27": "r39", "28": "r39", "29": "r39", "30": "r39", "31": "r39", "32": "r39", "33": "r39", "34": "r39", "35": "r39", "36": "r39", "37": "r39", "38": "r39", "39": "r39", "40": "r39", "41": "r39", "42": "r39", "43": "r39", "44": "r39", "45": "r39", "46": "s56", "52": "r39", "53": "r39", "54": "r39", "55": "r39", "57": "r39" }, { "23": "r41", "24": "r41", "25": "r41", "26": "r41", "27": "r41", "28": "r41", "29": "r41", "30": "r41", "31": "r41", "32": "r41", "33": "r41", "34": "r41", "35": "r41", "36": "r41", "37": "r41", "38": "r41", "39": "r41", "40": "r41", "41": "r41", "42": "r41", "43": "r41", "44": "r41", "45": "r41", "46": "r41", "52": "r41", "53": "r41", "54": "r41", "55": "r41", "57": "r41" }, { "23": "r42", "24": "r42", "25": "r42", "26": "r42", "27": "r42", "28": "r42", "29": "r42", "30": "r42", "31": "r42", "32": "r42", "33": "r42", "34": "r42", "35": "r42", "36": "r42", "37": "r42", "38": "r42", "39": "r42", "40": "r42", "41": "r42", "42": "r42", "43": "r42", "44": "r42", "45": "r42", "46": "r42", "52": "r42", "53": "r42", "54": "r42", "55": "r42", "57": "r42" }, { "23": "r43", "24": "r43", "25": "r43", "26": "r43", "27": "r43", "28": "r43", "29": "r43", "30": "r43", "31": "r43", "32": "r43", "33": "r43", "34": "r43", "35": "r43", "36": "r43", "37": "r43", "38": "r43", "39": "r43", "40": "r43", "41": "r43", "42": "r43", "43": "r43", "44": "r43", "45": "r43", "46": "r43", "52": "r43", "53": "r43", "54": "r43", "55": "r43", "57": "r43" }, { "23": "r44", "24": "r44", "25": "r44", "26": "r44", "27": "r44", "28": "r44", "29": "r44", "30": "r44", "31": "r44", "32": "r44", "33": "r44", "34": "r44", "35": "r44", "36": "r44", "37": "r44", "38": "r44", "39": "r44", "40": "r44", "41": "r44", "42": "r44", "43": "r44", "44": "r44", "45": "r44", "46": "r44", "52": "r44", "53": "r44", "54": "r44", "55": "r44", "57": "r44" }, { "23": "r45", "24": "r45", "25": "r45", "26": "r45", "27": "r45", "28": "r45", "29": "r45", "30": "r45", "31": "r45", "32": "r45", "33": "r45", "34": "r45", "35": "r45", "36": "r45", "37": "r45", "38": "r45", "39": "r45", "40": "r45", "41": "r45", "42": "r45", "43": "r45", "44": "r45", "45": "r45", "46": "r45", "52": "r45", "53": "r45", "54": "r45", "55": "r45", "57": "r45" }, { "23": "r46", "24": "r46", "25": "r46", "26": "r46", "27": "r46", "28": "r46", "29": "r46", "30": "r46", "31": "r46", "32": "r46", "33": "r46", "34": "r46", "35": "r46", "36": "r46", "37": "r46", "38": "r46", "39": "r46", "40": "r46", "41": "r46", "42": "r46", "43": "r46", "44": "r46", "45": "r46", "46": "r46", "52": "r46", "53": "r46", "54": "r46", "55": "r46", "57": "r46" }, { "23": "r40", "24": "r40", "25": "r40", "26": "r40", "27": "r40", "28": "r40", "29": "r40", "30": "r40", "31": "r40", "32": "r40", "33": "r40", "34": "r40", "35": "r40", "36": "r40", "37": "r40", "38": "r40", "39": "r40", "40": "r40", "41": "r40", "42": "r40", "43": "r40", "44": "r40", "45": "r40", "52": "r40", "53": "r40", "54": "r40", "55": "r40", "57": "r40" }, { "25": "s12", "31": "s58" }, { "23": "r18", "24": "r18", "25": "r18", "26": "r18", "27": "r18", "28": "r18", "29": "r18", "30": "r18", "31": "r18", "32": "r18", "33": "r18", "34": "r18", "35": "r18", "36": "r18", "37": "r18", "38": "r18", "39": "r18", "40": "r18", "41": "r18", "42": "r18", "43": "r18", "44": "r18", "45": "r18", "52": "r18", "53": "r18", "54": "r18", "55": "r18", "57": "r18" }, { "25": "s12", "31": "s60" }, { "23": "r19", "24": "r19", "25": "r19", "26": "r19", "27": "r19", "28": "r19", "29": "r19", "30": "r19", "31": "r19", "32": "r19", "33": "r19", "34": "r19", "35": "r19", "36": "r19", "37": "r19", "38": "r19", "39": "r19", "40": "r19", "41": "r19", "42": "r19", "43": "r19", "44": "r19", "45": "r19", "52": "r19", "53": "r19", "54": "r19", "55": "r19", "57": "r19" }, { "25": "s12", "31": "s62" }, { "23": "r20", "24": "r20", "25": "r20", "26": "r20", "27": "r20", "28": "r20", "29": "r20", "30": "r20", "31": "r20", "32": "r20", "33": "r20", "34": "r20", "35": "r20", "36": "r20", "37": "r20", "38": "r20", "39": "r20", "40": "r20", "41": "r20", "42": "r20", "43": "r20", "44": "r20", "45": "r20", "52": "r20", "53": "r20", "54": "r20", "55": "r20", "57": "r20" }, { "25": "s12", "31": "s64" }, { "23": "r21", "24": "r21", "25": "r21", "26": "r21", "27": "r21", "28": "r21", "29": "r21", "30": "r21", "31": "r21", "32": "r21", "33": "r21", "34": "r21", "35": "r21", "36": "r21", "37": "r21", "38": "r21", "39": "r21", "40": "r21", "41": "r21", "42": "r21", "43": "r21", "44": "r21", "45": "r21", "52": "r21", "53": "r21", "54": "r21", "55": "r21", "57": "r21" }, { "56": "s72" }, { "56": "r55" }, { "10": 70, "20": 73, "21": 75, "22": 76, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r56", "58": "s74" }, { "24": "r62", "28": "r62", "35": "r62", "36": "r62", "37": "r62", "38": "r62", "39": "r62", "40": "r62", "41": "r62", "42": "r62", "43": "r62", "44": "r62", "45": "r62", "56": "r62", "58": "r62" }, { "24": "r63", "28": "r63", "35": "r63", "36": "r63", "37": "r63", "38": "r63", "39": "r63", "40": "r63", "41": "r63", "42": "r63", "43": "r63", "44": "r63", "45": "r63", "56": "r63", "58": "r63" }, { "24": "r64", "28": "r64", "35": "r64", "36": "r64", "37": "r64", "38": "r64", "39": "r64", "40": "r64", "41": "r64", "42": "r64", "43": "r64", "44": "r64", "45": "r64", "56": "r64", "58": "r64" }, { "24": "r65", "28": "r65", "35": "r65", "36": "r65", "37": "r65", "38": "r65", "39": "r65", "40": "r65", "41": "r65", "42": "r65", "43": "r65", "44": "r65", "45": "r65", "56": "r65", "58": "r65" }, { "23": "r52", "24": "r52", "25": "r52", "26": "r52", "27": "r52", "28": "r52", "29": "r52", "30": "r52", "31": "r52", "32": "r52", "33": "r52", "34": "r52", "35": "r52", "36": "r52", "37": "r52", "38": "r52", "39": "r52", "40": "r52", "41": "r52", "42": "r52", "43": "r52", "44": "r52", "45": "r52", "46": "r52", "47": "r52", "48": "r52", "49": "r52", "50": "r52", "51": "r52", "52": "r52", "53": "r52", "54": "r52", "55": "r52", "57": "r52" }, { "56": "r57" }, { "10": 70, "21": 77, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r62", "58": "s68" }, { "56": "r59" }, { "10": 70, "20": 79, "21": 75, "22": 76, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r63", "58": "s80" }, { "10": 70, "18": 78, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "56": "r58" }, { "56": "r60" }, { "10": 70, "21": 81, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r62", "58": "s68" }, { "10": 70, "18": 82, "19": 66, "21": 67, "22": 69, "24": "s28", "28": "s71", "35": "s29", "36": "s30", "37": "s31", "38": "s32", "39": "s33", "40": "s34", "41": "s35", "42": "s36", "43": "s37", "44": "s38", "45": "s39", "56": "r54", "58": "s68" }, { "56": "r61" }, { "56": "s84" }, { "23": "r53", "24": "r53", "25": "r53", "26": "r53", "27": "r53", "28": "r53", "29": "r53", "30": "r53", "31": "r53", "32": "r53", "33": "r53", "34": "r53", "35": "r53", "36": "r53", "37": "r53", "38": "r53", "39": "r53", "40": "r53", "41": "r53", "42": "r53", "43": "r53", "44": "r53", "45": "r53", "46": "r53", "47": "r53", "48": "r53", "49": "r53", "50": "r53", "51": "r53", "52": "r53", "53": "r53", "54": "r53", "55": "r53", "57": "r53" }, { "25": "s12", "31": "s86" }, { "23": "r49", "24": "r49", "25": "r49", "26": "r49", "27": "r49", "28": "r49", "29": "r49", "30": "r49", "31": "r49", "32": "r49", "33": "r49", "34": "r49", "35": "r49", "36": "r49", "37": "r49", "38": "r49", "39": "r49", "40": "r49", "41": "r49", "42": "r49", "43": "r49", "44": "r49", "45": "r49", "46": "r49", "47": "r49", "48": "r49", "49": "r49", "50": "r49", "51": "r49", "52": "r49", "53": "r49", "54": "r49", "55": "r49", "57": "r49" }, { "25": "s12", "31": "s88" }, { "23": "r50", "24": "r50", "25": "r50", "26": "r50", "27": "r50", "28": "r50", "29": "r50", "30": "r50", "31": "r50", "32": "r50", "33": "r50", "34": "r50", "35": "r50", "36": "r50", "37": "r50", "38": "r50", "39": "r50", "40": "r50", "41": "r50", "42": "r50", "43": "r50", "44": "r50", "45": "r50", "46": "r50", "47": "r50", "48": "r50", "49": "r50", "50": "r50", "51": "r50", "52": "r50", "53": "r50", "54": "r50", "55": "r50", "57": "r50" }, { "25": "s12", "31": "s90" }, { "23": "r51", "24": "r51", "25": "r51", "26": "r51", "27": "r51", "28": "r51", "29": "r51", "30": "r51", "31": "r51", "32": "r51", "33": "r51", "34": "r51", "35": "r51", "36": "r51", "37": "r51", "38": "r51", "39": "r51", "40": "r51", "41": "r51", "42": "r51", "43": "r51", "44": "r51", "45": "r51", "46": "r51", "47": "r51", "48": "r51", "49": "r51", "50": "r51", "51": "r51", "52": "r51", "53": "r51", "54": "r51", "55": "r51", "57": "r51" }]; - -/** - * Parsing stack. - */ -var stack = []; - -/** - * Tokenizer instance. - */ -var tokenizer = void 0; -/** - * Generic tokenizer used by the parser in the Syntax tool. - * - * https://www.npmjs.com/package/syntax-cli - * - * See `--custom-tokinzer` to skip this generation, and use a custom one. - */ - -var lexRules = [[/^#[^\n]+/, function () {/* skip comments */}], [/^\s+/, function () {/* skip whitespace */}], [/^-/, function () { - return 'DASH'; -}], [/^\//, function () { - return 'CHAR'; -}], [/^#/, function () { - return 'CHAR'; -}], [/^\|/, function () { - return 'CHAR'; -}], [/^\./, function () { - return 'CHAR'; -}], [/^\{/, function () { - return 'CHAR'; -}], [/^\{\d+\}/, function () { - return 'RANGE_EXACT'; -}], [/^\{\d+,\}/, function () { - return 'RANGE_OPEN'; -}], [/^\{\d+,\d+\}/, function () { - return 'RANGE_CLOSED'; -}], [/^\\k<(([\u0041-\u005a\u0061-\u007a\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e-\u066f\u0671-\u06d3\u06d5\u06e5-\u06e6\u06ee-\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4-\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc-\u09dd\u09df-\u09e1\u09f0-\u09f1\u09fc\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0-\u0ae1\u0af9\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3d\u0b5c-\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60-\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0-\u0ce1\u0cf1-\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32-\u0e33\u0e40-\u0e46\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2-\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065-\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae-\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5-\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a-\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd-\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5-\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude35\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd23\udf00-\udf1c\udf27\udf30-\udf45\udfe0-\udff6]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd44\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc5f\udc80-\udcaf\udcc4-\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udeb8\udf00-\udf1a]|\ud806[\udc00-\udc2b\udca0-\udcdf\udcff\udda0-\udda7\uddaa-\uddd0\udde1\udde3\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude89\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08-\udd09\udd0b-\udd30\udd46\udd60-\udd65\udd67-\udd68\udd6a-\udd89\udd98\udee0-\udef2]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf50\udf93-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udd00-\udd2c\udd37-\udd3d\udd4e\udec0-\udeeb]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd4b]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\}))(([\u0030-\u0039\u0041-\u005a\u005f\u0061-\u007a\u00aa\u00b5\u00b7\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0300-\u0374\u0376-\u0377\u037a-\u037d\u037f\u0386-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u0483-\u0487\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u0591-\u05bd\u05bf\u05c1-\u05c2\u05c4-\u05c5\u05c7\u05d0-\u05ea\u05ef-\u05f2\u0610-\u061a\u0620-\u0669\u066e-\u06d3\u06d5-\u06dc\u06df-\u06e8\u06ea-\u06fc\u06ff\u0710-\u074a\u074d-\u07b1\u07c0-\u07f5\u07fa\u07fd\u0800-\u082d\u0840-\u085b\u0860-\u086a\u08a0-\u08b4\u08b6-\u08bd\u08d3-\u08e1\u08e3-\u0963\u0966-\u096f\u0971-\u0983\u0985-\u098c\u098f-\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bc-\u09c4\u09c7-\u09c8\u09cb-\u09ce\u09d7\u09dc-\u09dd\u09df-\u09e3\u09e6-\u09f1\u09fc\u09fe\u0a01-\u0a03\u0a05-\u0a0a\u0a0f-\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32-\u0a33\u0a35-\u0a36\u0a38-\u0a39\u0a3c\u0a3e-\u0a42\u0a47-\u0a48\u0a4b-\u0a4d\u0a51\u0a59-\u0a5c\u0a5e\u0a66-\u0a75\u0a81-\u0a83\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2-\u0ab3\u0ab5-\u0ab9\u0abc-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ad0\u0ae0-\u0ae3\u0ae6-\u0aef\u0af9-\u0aff\u0b01-\u0b03\u0b05-\u0b0c\u0b0f-\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32-\u0b33\u0b35-\u0b39\u0b3c-\u0b44\u0b47-\u0b48\u0b4b-\u0b4d\u0b56-\u0b57\u0b5c-\u0b5d\u0b5f-\u0b63\u0b66-\u0b6f\u0b71\u0b82-\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99-\u0b9a\u0b9c\u0b9e-\u0b9f\u0ba3-\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd0\u0bd7\u0be6-\u0bef\u0c00-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55-\u0c56\u0c58-\u0c5a\u0c60-\u0c63\u0c66-\u0c6f\u0c80-\u0c83\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbc-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5-\u0cd6\u0cde\u0ce0-\u0ce3\u0ce6-\u0cef\u0cf1-\u0cf2\u0d00-\u0d03\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d44\u0d46-\u0d48\u0d4a-\u0d4e\u0d54-\u0d57\u0d5f-\u0d63\u0d66-\u0d6f\u0d7a-\u0d7f\u0d82-\u0d83\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2-\u0df3\u0e01-\u0e3a\u0e40-\u0e4e\u0e50-\u0e59\u0e81-\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0ebd\u0ec0-\u0ec4\u0ec6\u0ec8-\u0ecd\u0ed0-\u0ed9\u0edc-\u0edf\u0f00\u0f18-\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e-\u0f47\u0f49-\u0f6c\u0f71-\u0f84\u0f86-\u0f97\u0f99-\u0fbc\u0fc6\u1000-\u1049\u1050-\u109d\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u135d-\u135f\u1369-\u1371\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176c\u176e-\u1770\u1772-\u1773\u1780-\u17d3\u17d7\u17dc-\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u1820-\u1878\u1880-\u18aa\u18b0-\u18f5\u1900-\u191e\u1920-\u192b\u1930-\u193b\u1946-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u19d0-\u19da\u1a00-\u1a1b\u1a20-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1aa7\u1ab0-\u1abd\u1b00-\u1b4b\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1bf3\u1c00-\u1c37\u1c40-\u1c49\u1c4d-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1cd0-\u1cd2\u1cd4-\u1cfa\u1d00-\u1df9\u1dfb-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u203f-\u2040\u2054\u2071\u207f\u2090-\u209c\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d7f-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u2de0-\u2dff\u3005-\u3007\u3021-\u302f\u3031-\u3035\u3038-\u303c\u3041-\u3096\u3099-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fef\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua62b\ua640-\ua66f\ua674-\ua67d\ua67f-\ua6f1\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7c6\ua7f7-\ua827\ua840-\ua873\ua880-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f7\ua8fb\ua8fd-\ua92d\ua930-\ua953\ua960-\ua97c\ua980-\ua9c0\ua9cf-\ua9d9\ua9e0-\ua9fe\uaa00-\uaa36\uaa40-\uaa4d\uaa50-\uaa59\uaa60-\uaa76\uaa7a-\uaac2\uaadb-\uaadd\uaae0-\uaaef\uaaf2-\uaaf6\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab67\uab70-\uabea\uabec-\uabed\uabf0-\uabf9\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe00-\ufe0f\ufe20-\ufe2f\ufe33-\ufe34\ufe4d-\ufe4f\ufe70-\ufe74\ufe76-\ufefc\uff10-\uff19\uff21-\uff3a\uff3f\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc]|\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c-\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\uddfd\ude80-\ude9c\udea0-\uded0\udee0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udca0-\udca9\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37-\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4-\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe-\uddbf\ude00-\ude03\ude05-\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude35\ude38-\ude3a\ude3f\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee6\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2\udd00-\udd27\udd30-\udd39\udf00-\udf1c\udf27\udf30-\udf50\udfe0-\udff6]|\ud804[\udc00-\udc46\udc66-\udc6f\udc7f-\udcba\udcd0-\udce8\udcf0-\udcf9\udd00-\udd34\udd36-\udd3f\udd44-\udd46\udd50-\udd73\udd76\udd80-\uddc4\uddc9-\uddcc\uddd0-\uddda\udddc\ude00-\ude11\ude13-\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udeea\udef0-\udef9\udf00-\udf03\udf05-\udf0c\udf0f-\udf10\udf13-\udf28\udf2a-\udf30\udf32-\udf33\udf35-\udf39\udf3b-\udf44\udf47-\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc00-\udc4a\udc50-\udc59\udc5e-\udc5f\udc80-\udcc5\udcc7\udcd0-\udcd9\udd80-\uddb5\uddb8-\uddc0\uddd8-\udddd\ude00-\ude40\ude44\ude50-\ude59\ude80-\udeb8\udec0-\udec9\udf00-\udf1a\udf1d-\udf2b\udf30-\udf39]|\ud806[\udc00-\udc3a\udca0-\udce9\udcff\udda0-\udda7\uddaa-\uddd7\uddda-\udde1\udde3-\udde4\ude00-\ude3e\ude47\ude50-\ude99\ude9d\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc40\udc50-\udc59\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08-\udd09\udd0b-\udd36\udd3a\udd3c-\udd3d\udd3f-\udd47\udd50-\udd59\udd60-\udd65\udd67-\udd68\udd6a-\udd8e\udd90-\udd91\udd93-\udd98\udda0-\udda9\udee0-\udef6]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\ude60-\ude69\uded0-\udeed\udef0-\udef4\udf00-\udf36\udf40-\udf43\udf50-\udf59\udf63-\udf77\udf7d-\udf8f]|\ud81b[\ude40-\ude7f\udf00-\udf4a\udf4f-\udf87\udf8f-\udf9f\udfe0-\udfe1\udfe3]|\ud81c[\udc00-\udfff]|\ud81d[\udc00-\udfff]|\ud81e[\udc00-\udfff]|\ud81f[\udc00-\udfff]|\ud820[\udc00-\udfff]|\ud821[\udc00-\udff7]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd50-\udd52\udd64-\udd67\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9d-\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e-\udc9f\udca2\udca5-\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb\udfce-\udfff]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23-\udc24\udc26-\udc2a\udd00-\udd2c\udd30-\udd3d\udd40-\udd49\udd4e\udec0-\udef9]|\ud83a[\udc00-\udcc4\udcd0-\udcd6\udd00-\udd4b\udd50-\udd59]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21-\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51-\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61-\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud840[\udc00-\udfff]|\ud841[\udc00-\udfff]|\ud842[\udc00-\udfff]|\ud843[\udc00-\udfff]|\ud844[\udc00-\udfff]|\ud845[\udc00-\udfff]|\ud846[\udc00-\udfff]|\ud847[\udc00-\udfff]|\ud848[\udc00-\udfff]|\ud849[\udc00-\udfff]|\ud84a[\udc00-\udfff]|\ud84b[\udc00-\udfff]|\ud84c[\udc00-\udfff]|\ud84d[\udc00-\udfff]|\ud84e[\udc00-\udfff]|\ud84f[\udc00-\udfff]|\ud850[\udc00-\udfff]|\ud851[\udc00-\udfff]|\ud852[\udc00-\udfff]|\ud853[\udc00-\udfff]|\ud854[\udc00-\udfff]|\ud855[\udc00-\udfff]|\ud856[\udc00-\udfff]|\ud857[\udc00-\udfff]|\ud858[\udc00-\udfff]|\ud859[\udc00-\udfff]|\ud85a[\udc00-\udfff]|\ud85b[\udc00-\udfff]|\ud85c[\udc00-\udfff]|\ud85d[\udc00-\udfff]|\ud85e[\udc00-\udfff]|\ud85f[\udc00-\udfff]|\ud860[\udc00-\udfff]|\ud861[\udc00-\udfff]|\ud862[\udc00-\udfff]|\ud863[\udc00-\udfff]|\ud864[\udc00-\udfff]|\ud865[\udc00-\udfff]|\ud866[\udc00-\udfff]|\ud867[\udc00-\udfff]|\ud868[\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86a[\udc00-\udfff]|\ud86b[\udc00-\udfff]|\ud86c[\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud86f[\udc00-\udfff]|\ud870[\udc00-\udfff]|\ud871[\udc00-\udfff]|\ud872[\udc00-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud874[\udc00-\udfff]|\ud875[\udc00-\udfff]|\ud876[\udc00-\udfff]|\ud877[\udc00-\udfff]|\ud878[\udc00-\udfff]|\ud879[\udc00-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]|\udb40[\udd00-\uddef])|[$_]|(\\u[0-9a-fA-F]{4}|\\u\{[0-9a-fA-F]{1,}\})|[\u200c\u200d])*>/, function () { - var groupName = yytext.slice(3, -1); - validateUnicodeGroupName(groupName, this.getCurrentState()); - return 'NAMED_GROUP_REF'; -}], [/^\\b/, function () { - return 'ESC_b'; -}], [/^\\B/, function () { - return 'ESC_B'; -}], [/^\\c[a-zA-Z]/, function () { - return 'CTRL_CH'; -}], [/^\\0\d{1,2}/, function () { - return 'OCT_CODE'; -}], [/^\\0/, function () { - return 'DEC_CODE'; -}], [/^\\\d{1,3}/, function () { - return 'DEC_CODE'; -}], [/^\\u[dD][89abAB][0-9a-fA-F]{2}\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () { - return 'U_CODE_SURROGATE'; -}], [/^\\u\{[0-9a-fA-F]{1,}\}/, function () { - return 'U_CODE'; -}], [/^\\u[0-9a-fA-F]{4}/, function () { - return 'U_CODE'; -}], [/^\\[pP]\{\w+(?:=\w+)?\}/, function () { - return 'U_PROP_VALUE_EXP'; -}], [/^\\x[0-9a-fA-F]{2}/, function () { - return 'HEX_CODE'; -}], [/^\\[tnrdDsSwWvf]/, function () { - return 'META_CHAR'; -}], [/^\\\//, function () { - return 'ESC_CHAR'; -}], [/^\\[ #]/, function () { - return 'ESC_CHAR'; -}], [/^\\[\^\$\.\*\+\?\(\)\\\[\]\{\}\|\/]/, function () { - return 'ESC_CHAR'; -}], [/^\\[^*?+\[()\\|]/, function () { - var s = this.getCurrentState(); - if (s === 'u_class' && yytext === "\\-") { - return 'ESC_CHAR'; - } else if (s === 'u' || s === 'xu' || s === 'u_class') { - throw new SyntaxError('invalid Unicode escape ' + yytext); - } - return 'ESC_CHAR'; -}], [/^\(/, function () { - return 'CHAR'; -}], [/^\)/, function () { - return 'CHAR'; -}], [/^\(\?=/, function () { - return 'POS_LA_ASSERT'; -}], [/^\(\?!/, function () { - return 'NEG_LA_ASSERT'; -}], [/^\(\?<=/, function () { - return 'POS_LB_ASSERT'; -}], [/^\(\?/, function () { - yytext = yytext.slice(3, -1); - validateUnicodeGroupName(yytext, this.getCurrentState()); - return 'NAMED_CAPTURE_GROUP'; -}], [/^\(/, function () { - return 'L_PAREN'; -}], [/^\)/, function () { - return 'R_PAREN'; -}], [/^[*?+[^$]/, function () { - return 'CHAR'; -}], [/^\\\]/, function () { - return 'ESC_CHAR'; -}], [/^\]/, function () { - this.popState();return 'R_BRACKET'; -}], [/^\^/, function () { - return 'BOS'; -}], [/^\$/, function () { - return 'EOS'; -}], [/^\*/, function () { - return 'STAR'; -}], [/^\?/, function () { - return 'Q_MARK'; -}], [/^\+/, function () { - return 'PLUS'; -}], [/^\|/, function () { - return 'BAR'; -}], [/^\./, function () { - return 'ANY'; -}], [/^\//, function () { - return 'SLASH'; -}], [/^[^*?+\[()\\|]/, function () { - return 'CHAR'; -}], [/^\[\^/, function () { - var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS'; -}], [/^\[/, function () { - var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET'; -}]]; -var lexRulesByConditions = { "INITIAL": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "u": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "xu": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "x": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], "u_class": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 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], "class": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 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] }; - -var EOF_TOKEN = { - type: EOF, - value: '' -}; - -tokenizer = { - initString: function initString(string) { - this._string = string; - this._cursor = 0; - - this._states = ['INITIAL']; - this._tokensQueue = []; - - this._currentLine = 1; - this._currentColumn = 0; - this._currentLineBeginOffset = 0; - - /** - * Matched token location data. - */ - this._tokenStartOffset = 0; - this._tokenEndOffset = 0; - this._tokenStartLine = 1; - this._tokenEndLine = 1; - this._tokenStartColumn = 0; - this._tokenEndColumn = 0; - - return this; - }, - - - /** - * Returns tokenizer states. - */ - getStates: function getStates() { - return this._states; - }, - getCurrentState: function getCurrentState() { - return this._states[this._states.length - 1]; - }, - pushState: function pushState(state) { - this._states.push(state); - }, - begin: function begin(state) { - this.pushState(state); - }, - popState: function popState() { - if (this._states.length > 1) { - return this._states.pop(); - } - return this._states[0]; - }, - getNextToken: function getNextToken() { - // Something was queued, return it. - if (this._tokensQueue.length > 0) { - return this.onToken(this._toToken(this._tokensQueue.shift())); - } - - if (!this.hasMoreTokens()) { - return this.onToken(EOF_TOKEN); - } - - var string = this._string.slice(this._cursor); - var lexRulesForState = lexRulesByConditions[this.getCurrentState()]; - - for (var i = 0; i < lexRulesForState.length; i++) { - var lexRuleIndex = lexRulesForState[i]; - var lexRule = lexRules[lexRuleIndex]; - - var matched = this._match(string, lexRule[0]); - - // Manual handling of EOF token (the end of string). Return it - // as `EOF` symbol. - if (string === '' && matched === '') { - this._cursor++; - } - - if (matched !== null) { - yytext = matched; - yyleng = yytext.length; - var token = lexRule[1].call(this); - - if (!token) { - return this.getNextToken(); - } - - // If multiple tokens are returned, save them to return - // on next `getNextToken` call. - - if (Array.isArray(token)) { - var tokensToQueue = token.slice(1); - token = token[0]; - if (tokensToQueue.length > 0) { - var _tokensQueue; - - (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue)); - } - } - - return this.onToken(this._toToken(token, yytext)); - } - } - - if (this.isEOF()) { - this._cursor++; - return EOF_TOKEN; - } - - this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn); - }, - - - /** - * Throws default "Unexpected token" exception, showing the actual - * line from the source, pointing with the ^ marker to the bad token. - * In addition, shows `line:column` location. - */ - throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) { - var lineSource = this._string.split('\n')[line - 1]; - var lineData = ''; - - if (lineSource) { - var pad = ' '.repeat(column); - lineData = '\n\n' + lineSource + '\n' + pad + '^\n'; - } - - throw new SyntaxError(lineData + 'Unexpected token: "' + symbol + '" ' + ('at ' + line + ':' + column + '.')); - }, - getCursor: function getCursor() { - return this._cursor; - }, - getCurrentLine: function getCurrentLine() { - return this._currentLine; - }, - getCurrentColumn: function getCurrentColumn() { - return this._currentColumn; - }, - _captureLocation: function _captureLocation(matched) { - var nlRe = /\n/g; - - // Absolute offsets. - this._tokenStartOffset = this._cursor; - - // Line-based locations, start. - this._tokenStartLine = this._currentLine; - this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset; - - // Extract `\n` in the matched token. - var nlMatch = void 0; - while ((nlMatch = nlRe.exec(matched)) !== null) { - this._currentLine++; - this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1; - } - - this._tokenEndOffset = this._cursor + matched.length; - - // Line-based locations, end. - this._tokenEndLine = this._currentLine; - this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset; - }, - _toToken: function _toToken(tokenType) { - var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; - - return { - // Basic data. - type: tokenType, - value: yytext, - - // Location data. - startOffset: this._tokenStartOffset, - endOffset: this._tokenEndOffset, - startLine: this._tokenStartLine, - endLine: this._tokenEndLine, - startColumn: this._tokenStartColumn, - endColumn: this._tokenEndColumn - }; - }, - isEOF: function isEOF() { - return this._cursor === this._string.length; - }, - hasMoreTokens: function hasMoreTokens() { - return this._cursor <= this._string.length; - }, - _match: function _match(string, regexp) { - var matched = string.match(regexp); - if (matched) { - // Handle `\n` in the matched token to track line numbers. - this._captureLocation(matched[0]); - this._cursor += matched[0].length; - return matched[0]; - } - return null; - }, - - - /** - * Allows analyzing, and transforming token. Default implementation - * just passes the token through. - */ - onToken: function onToken(token) { - return token; - } -}; - -/** - * Expose tokenizer so it can be accessed in semantic actions. - */ -yy.lexer = tokenizer; -yy.tokenizer = tokenizer; - -/** - * Global parsing options. Some options can be shadowed per - * each `parse` call, if the optations are passed. - * - * Initalized to the `captureLocations` which is passed - * from the generator. Other options can be added at runtime. - */ -yy.options = { - captureLocations: true -}; - -/** - * Parsing module. - */ -var yyparse = { - /** - * Sets global parsing options. - */ - setOptions: function setOptions(options) { - yy.options = options; - return this; - }, - - - /** - * Returns parsing options. - */ - getOptions: function getOptions() { - return yy.options; - }, - - - /** - * Parses a string. - */ - parse: function parse(string, parseOptions) { - if (!tokenizer) { - throw new Error('Tokenizer instance wasn\'t specified.'); - } - - tokenizer.initString(string); - - /** - * If parse options are passed, override global parse options for - * this call, and later restore global options. - */ - var globalOptions = yy.options; - if (parseOptions) { - yy.options = Object.assign({}, yy.options, parseOptions); - } - - /** - * Allow callers to do setup work based on the - * parsing string, and passed options. - */ - yyparse.onParseBegin(string, tokenizer, yy.options); - - stack.length = 0; - stack.push(0); - - var token = tokenizer.getNextToken(); - var shiftedToken = null; - - do { - if (!token) { - // Restore options. - yy.options = globalOptions; - unexpectedEndOfInput(); - } - - var state = stack[stack.length - 1]; - var column = tokens[token.type]; - - if (!table[state].hasOwnProperty(column)) { - yy.options = globalOptions; - unexpectedToken(token); - } - - var entry = table[state][column]; - - // Shift action. - if (entry[0] === 's') { - var _loc2 = null; - - if (yy.options.captureLocations) { - _loc2 = { - startOffset: token.startOffset, - endOffset: token.endOffset, - startLine: token.startLine, - endLine: token.endLine, - startColumn: token.startColumn, - endColumn: token.endColumn - }; - } - - shiftedToken = this.onShift(token); - - stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1))); - - token = tokenizer.getNextToken(); - } - - // Reduce action. - else if (entry[0] === 'r') { - var productionNumber = entry.slice(1); - var production = productions[productionNumber]; - var hasSemanticAction = typeof production[2] === 'function'; - var semanticValueArgs = hasSemanticAction ? [] : null; - - var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null; - - if (production[1] !== 0) { - var rhsLength = production[1]; - while (rhsLength-- > 0) { - stack.pop(); - var stackEntry = stack.pop(); - - if (hasSemanticAction) { - semanticValueArgs.unshift(stackEntry.semanticValue); - - if (locationArgs) { - locationArgs.unshift(stackEntry.loc); - } - } - } - } - - var reduceStackEntry = { symbol: production[0] }; - - if (hasSemanticAction) { - yytext = shiftedToken ? shiftedToken.value : null; - yyleng = shiftedToken ? shiftedToken.value.length : null; - - var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs; - - production[2].apply(production, _toConsumableArray(semanticActionArgs)); - - reduceStackEntry.semanticValue = __; - - if (locationArgs) { - reduceStackEntry.loc = __loc; - } - } - - var nextState = stack[stack.length - 1]; - var symbolToReduceWith = production[0]; - - stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]); - } - - // Accept. - else if (entry === 'acc') { - stack.pop(); - var parsed = stack.pop(); - - if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) { - // Restore options. - yy.options = globalOptions; - unexpectedToken(token); - } - - if (parsed.hasOwnProperty('semanticValue')) { - yy.options = globalOptions; - yyparse.onParseEnd(parsed.semanticValue); - return parsed.semanticValue; - } - - yyparse.onParseEnd(); - - // Restore options. - yy.options = globalOptions; - return true; - } - } while (tokenizer.hasMoreTokens() || stack.length > 1); - }, - setTokenizer: function setTokenizer(customTokenizer) { - tokenizer = customTokenizer; - return yyparse; - }, - getTokenizer: function getTokenizer() { - return tokenizer; - }, - onParseBegin: function onParseBegin(string, tokenizer, options) {}, - onParseEnd: function onParseEnd(parsed) {}, - - - /** - * Allows analyzing, and transforming shifted token. Default implementation - * just passes the token through. - */ - onShift: function onShift(token) { - return token; - } -}; - -/** - * Tracks capturing groups. - */ -var capturingGroupsCount = 0; - -/** - * Tracks named groups. - */ -var namedGroups = {}; - -/** - * Parsing string. - */ -var parsingString = ''; - -yyparse.onParseBegin = function (string, lexer) { - parsingString = string; - capturingGroupsCount = 0; - namedGroups = {}; - - var lastSlash = string.lastIndexOf('/'); - var flags = string.slice(lastSlash); - - if (flags.includes('x') && flags.includes('u')) { - lexer.pushState('xu'); - } else { - if (flags.includes('x')) { - lexer.pushState('x'); - } - if (flags.includes('u')) { - lexer.pushState('u'); - } - } -}; - -/** - * On shifting `(` remember its number to used on reduce. - */ -yyparse.onShift = function (token) { - if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') { - token.value = new String(token.value); - token.value.groupNumber = ++capturingGroupsCount; - } - return token; -}; - -/** - * Extracts ranges from the range string. - */ -function getRange(text) { - var range = text.match(/\d+/g).map(Number); - - if (Number.isFinite(range[1]) && range[1] < range[0]) { - throw new SyntaxError('Numbers out of order in ' + text + ' quantifier'); - } - - return range; -} - -/** - * Checks class range - */ -function checkClassRange(from, to) { - if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) { - throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class'); - } -} - -// ---------------------- Unicode property ------------------------------------------- - -var unicodeProperties = __webpack_require__(/*! ../unicode/parser-unicode-properties.js */ "./node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js"); - -/** - * Unicode property. - */ -function UnicodeProperty(matched, loc) { - var negative = matched[1] === 'P'; - var separatorIdx = matched.indexOf('='); - - var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1); - var value = void 0; - - // General_Category allows using only value as a shorthand. - var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name); - - // Binary propery name. - var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name); - - if (isShorthand) { - value = name; - name = 'General_Category'; - } else if (isBinaryProperty) { - value = name; - } else { - if (!unicodeProperties.isValidName(name)) { - throw new SyntaxError('Invalid unicode property name: ' + name + '.'); - } - - value = matched.slice(separatorIdx + 1, -1); - - if (!unicodeProperties.isValidValue(name, value)) { - throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.'); - } - } - - return Node({ - type: 'UnicodeProperty', - name: name, - value: value, - negative: negative, - shorthand: isShorthand, - binary: isBinaryProperty, - canonicalName: unicodeProperties.getCanonicalName(name) || name, - canonicalValue: unicodeProperties.getCanonicalValue(value) || value - }, loc); -} - -// ---------------------------------------------------------------------------------- - - -/** - * Creates a character node. - */ -function Char(value, kind, loc) { - var symbol = void 0; - var codePoint = void 0; - - switch (kind) { - case 'decimal': - { - codePoint = Number(value.slice(1)); - symbol = String.fromCodePoint(codePoint); - break; - } - case 'oct': - { - codePoint = parseInt(value.slice(1), 8); - symbol = String.fromCodePoint(codePoint); - break; - } - case 'hex': - case 'unicode': - { - if (value.lastIndexOf('\\u') > 0) { - var _value$split$slice = value.split('\\u').slice(1), - _value$split$slice2 = _slicedToArray(_value$split$slice, 2), - lead = _value$split$slice2[0], - trail = _value$split$slice2[1]; - - lead = parseInt(lead, 16); - trail = parseInt(trail, 16); - codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000; - - symbol = String.fromCodePoint(codePoint); - } else { - var hex = value.slice(2).replace('{', ''); - codePoint = parseInt(hex, 16); - if (codePoint > 0x10ffff) { - throw new SyntaxError('Bad character escape sequence: ' + value); - } - - symbol = String.fromCodePoint(codePoint); - } - break; - } - case 'meta': - { - switch (value) { - case '\\t': - symbol = '\t'; - codePoint = symbol.codePointAt(0); - break; - case '\\n': - symbol = '\n'; - codePoint = symbol.codePointAt(0); - break; - case '\\r': - symbol = '\r'; - codePoint = symbol.codePointAt(0); - break; - case '\\v': - symbol = '\v'; - codePoint = symbol.codePointAt(0); - break; - case '\\f': - symbol = '\f'; - codePoint = symbol.codePointAt(0); - break; - case '\\b': - symbol = '\b'; - codePoint = symbol.codePointAt(0); - case '\\0': - symbol = '\0'; - codePoint = 0; - case '.': - symbol = '.'; - codePoint = NaN; - break; - default: - codePoint = NaN; - } - break; - } - case 'simple': - { - symbol = value; - codePoint = symbol.codePointAt(0); - break; - } - } - - return Node({ - type: 'Char', - value: value, - kind: kind, - symbol: symbol, - codePoint: codePoint - }, loc); -} - -/** - * Valid flags per current ECMAScript spec and - * stage 3+ proposals. - */ -var validFlags = 'gimsuxy'; - -/** - * Checks the flags are valid, and that - * we don't duplicate flags. - */ -function checkFlags(flags) { - var seen = new Set(); - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var flag = _step.value; - - if (seen.has(flag) || !validFlags.includes(flag)) { - throw new SyntaxError('Invalid flags: ' + flags); - } - seen.add(flag); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return flags.split('').sort().join(''); -} - -/** - * Parses patterns like \1, \2, etc. either as a backreference - * to a group, or a deciaml char code. - */ -function GroupRefOrDecChar(text, textLoc) { - var reference = Number(text.slice(1)); - - if (reference > 0 && reference <= capturingGroupsCount) { - return Node({ - type: 'Backreference', - kind: 'number', - number: reference, - reference: reference - }, textLoc); - } - - return Char(text, 'decimal', textLoc); -} - -/** - * Unicode names. - */ -var uReStart = /^\\u[0-9a-fA-F]{4}/; // only matches start of string -var ucpReStart = /^\\u\{[0-9a-fA-F]{1,}\}/; // only matches start of string -var ucpReAnywhere = /\\u\{[0-9a-fA-F]{1,}\}/; // matches anywhere in string - -/** - * Validates Unicode group name. - */ -function validateUnicodeGroupName(name, state) { - var isUnicodeName = ucpReAnywhere.test(name); - var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class'; - - if (isUnicodeName && !isUnicodeState) { - throw new SyntaxError('invalid group Unicode name "' + name + '", use `u` flag.'); - } - - return name; -} - -// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence -// -// RegExpUnicodeEscapeSequence :: -// `u` LeadSurrogate `\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate' -// `u` LeadSurrogate # as 'leadSurrogateOnly' -// `u` TrailSurrogate # as 'trailSurrogateOnly' -// `u` NonSurrogate # as 'nonSurrogate' -// `u` `{` CodePoint `}` # as 'codePoint' -// -// LeadSurrogate :: -// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2} -// -// TrailSurrogate :: -// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2} -// -// NonSurrogate :: -// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2} -// -// CodePoint :: -// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}) -// -var uidRe = /\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\})/; - -function decodeUnicodeGroupName(name) { - return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) { - if (leadSurrogate) { - return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16)); - } - if (leadSurrogateOnly) { - return String.fromCodePoint(parseInt(leadSurrogateOnly, 16)); - } - if (trailSurrogateOnly) { - // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence - // > Each `\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\u` TrailSurrogate. - return String.fromCodePoint(parseInt(trailSurrogateOnly, 16)); - } - if (nonSurrogate) { - return String.fromCodePoint(parseInt(nonSurrogate, 16)); - } - if (codePoint) { - return String.fromCodePoint(parseInt(codePoint, 16)); - } - return _; - }); -} - -/** - * Extracts from `\k` pattern either a backreference - * to a named capturing group (if it presents), or parses it - * as a list of char: `\k`, `<`, `f`, etc. - */ -function NamedGroupRefOrChars(text, textLoc) { - var referenceRaw = text.slice(3, -1); - var reference = decodeUnicodeGroupName(referenceRaw); - - if (namedGroups.hasOwnProperty(reference)) { - return Node({ - type: 'Backreference', - kind: 'name', - number: namedGroups[reference], - reference: reference, - referenceRaw: referenceRaw - }, textLoc); - } - - // Else `\k` should be parsed as a list of `Char`s. - // This is really a 0.01% edge case, but we should handle it. - - var startOffset = null; - var startLine = null; - var endLine = null; - var startColumn = null; - - if (textLoc) { - startOffset = textLoc.startOffset; - startLine = textLoc.startLine; - endLine = textLoc.endLine; - startColumn = textLoc.startColumn; - } - - var charRe = /^[\w$<>]/; - var loc = void 0; - - var chars = [ - // Init to first \k, taking 2 symbols. - Char(text.slice(1, 2), 'simple', startOffset ? { - startLine: startLine, - endLine: endLine, - startColumn: startColumn, - startOffset: startOffset, - endOffset: startOffset += 2, - endColumn: startColumn += 2 - } : null)]; - - // For \k - chars[0].escaped = true; - - // Other symbols. - text = text.slice(2); - - while (text.length > 0) { - var matched = null; - - // Unicode, \u003B or \u{003B} - if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) { - if (startOffset) { - loc = { - startLine: startLine, - endLine: endLine, - startColumn: startColumn, - startOffset: startOffset, - endOffset: startOffset += matched[0].length, - endColumn: startColumn += matched[0].length - }; - } - chars.push(Char(matched[0], 'unicode', loc)); - text = text.slice(matched[0].length); - } - - // Simple char. - else if (matched = text.match(charRe)) { - if (startOffset) { - loc = { - startLine: startLine, - endLine: endLine, - startColumn: startColumn, - startOffset: startOffset, - endOffset: ++startOffset, - endColumn: ++startColumn - }; - } - chars.push(Char(matched[0], 'simple', loc)); - text = text.slice(1); - } - } - - return chars; -} - -/** - * Creates an AST node with a location. - */ -function Node(node, loc) { - if (yy.options.captureLocations) { - node.loc = { - source: parsingString.slice(loc.startOffset, loc.endOffset), - start: { - line: loc.startLine, - column: loc.startColumn, - offset: loc.startOffset - }, - end: { - line: loc.endLine, - column: loc.endColumn, - offset: loc.endOffset - } - }; - } - return node; -} - -/** - * Creates location node. - */ -function loc(start, end) { - if (!yy.options.captureLocations) { - return null; - } - - return { - startOffset: start.startOffset, - endOffset: end.endOffset, - startLine: start.startLine, - endLine: end.endLine, - startColumn: start.startColumn, - endColumn: end.endColumn - }; -} - -function unexpectedToken(token) { - if (token.type === EOF) { - unexpectedEndOfInput(); - } - - tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn); -} - -function unexpectedEndOfInput() { - parseError('Unexpected end of input.'); -} - -function parseError(message) { - throw new SyntaxError(message); -} - -module.exports = yyparse; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/parser/index.js": -/*!*******************************************************!*\ - !*** ./node_modules/regexp-tree/dist/parser/index.js ***! - \*******************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var regexpTreeParser = __webpack_require__(/*! ./generated/regexp-tree */ "./node_modules/regexp-tree/dist/parser/generated/regexp-tree.js"); - -/** - * Original parse function. - */ -var generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser); - -/** - * Parses a regular expression. - * - * Override original `regexpTreeParser.parse` to convert a value to a string, - * since in regexp-tree we may pass strings, and RegExp instance. - */ -regexpTreeParser.parse = function (regexp, options) { - return generatedParseFn('' + regexp, options); -}; - -// By default do not capture locations; callers may override. -regexpTreeParser.setOptions({ captureLocations: false }); - -module.exports = regexpTreeParser; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js": -/*!***********************************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js ***! - \***********************************************************************************/ -/***/ ((module) => { - -"use strict"; - - -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - -var NON_BINARY_PROP_NAMES_TO_ALIASES = { - General_Category: 'gc', - Script: 'sc', - Script_Extensions: 'scx' -}; - -var NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES); - -var BINARY_PROP_NAMES_TO_ALIASES = { - ASCII: 'ASCII', - ASCII_Hex_Digit: 'AHex', - Alphabetic: 'Alpha', - Any: 'Any', - Assigned: 'Assigned', - Bidi_Control: 'Bidi_C', - Bidi_Mirrored: 'Bidi_M', - Case_Ignorable: 'CI', - Cased: 'Cased', - Changes_When_Casefolded: 'CWCF', - Changes_When_Casemapped: 'CWCM', - Changes_When_Lowercased: 'CWL', - Changes_When_NFKC_Casefolded: 'CWKCF', - Changes_When_Titlecased: 'CWT', - Changes_When_Uppercased: 'CWU', - Dash: 'Dash', - Default_Ignorable_Code_Point: 'DI', - Deprecated: 'Dep', - Diacritic: 'Dia', - Emoji: 'Emoji', - Emoji_Component: 'Emoji_Component', - Emoji_Modifier: 'Emoji_Modifier', - Emoji_Modifier_Base: 'Emoji_Modifier_Base', - Emoji_Presentation: 'Emoji_Presentation', - Extended_Pictographic: 'Extended_Pictographic', - Extender: 'Ext', - Grapheme_Base: 'Gr_Base', - Grapheme_Extend: 'Gr_Ext', - Hex_Digit: 'Hex', - IDS_Binary_Operator: 'IDSB', - IDS_Trinary_Operator: 'IDST', - ID_Continue: 'IDC', - ID_Start: 'IDS', - Ideographic: 'Ideo', - Join_Control: 'Join_C', - Logical_Order_Exception: 'LOE', - Lowercase: 'Lower', - Math: 'Math', - Noncharacter_Code_Point: 'NChar', - Pattern_Syntax: 'Pat_Syn', - Pattern_White_Space: 'Pat_WS', - Quotation_Mark: 'QMark', - Radical: 'Radical', - Regional_Indicator: 'RI', - Sentence_Terminal: 'STerm', - Soft_Dotted: 'SD', - Terminal_Punctuation: 'Term', - Unified_Ideograph: 'UIdeo', - Uppercase: 'Upper', - Variation_Selector: 'VS', - White_Space: 'space', - XID_Continue: 'XIDC', - XID_Start: 'XIDS' -}; - -var BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES); - -var GENERAL_CATEGORY_VALUE_TO_ALIASES = { - Cased_Letter: 'LC', - Close_Punctuation: 'Pe', - Connector_Punctuation: 'Pc', - Control: ['Cc', 'cntrl'], - Currency_Symbol: 'Sc', - Dash_Punctuation: 'Pd', - Decimal_Number: ['Nd', 'digit'], - Enclosing_Mark: 'Me', - Final_Punctuation: 'Pf', - Format: 'Cf', - Initial_Punctuation: 'Pi', - Letter: 'L', - Letter_Number: 'Nl', - Line_Separator: 'Zl', - Lowercase_Letter: 'Ll', - Mark: ['M', 'Combining_Mark'], - Math_Symbol: 'Sm', - Modifier_Letter: 'Lm', - Modifier_Symbol: 'Sk', - Nonspacing_Mark: 'Mn', - Number: 'N', - Open_Punctuation: 'Ps', - Other: 'C', - Other_Letter: 'Lo', - Other_Number: 'No', - Other_Punctuation: 'Po', - Other_Symbol: 'So', - Paragraph_Separator: 'Zp', - Private_Use: 'Co', - Punctuation: ['P', 'punct'], - Separator: 'Z', - Space_Separator: 'Zs', - Spacing_Mark: 'Mc', - Surrogate: 'Cs', - Symbol: 'S', - Titlecase_Letter: 'Lt', - Unassigned: 'Cn', - Uppercase_Letter: 'Lu' -}; - -var GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES); - -var SCRIPT_VALUE_TO_ALIASES = { - Adlam: 'Adlm', - Ahom: 'Ahom', - Anatolian_Hieroglyphs: 'Hluw', - Arabic: 'Arab', - Armenian: 'Armn', - Avestan: 'Avst', - Balinese: 'Bali', - Bamum: 'Bamu', - Bassa_Vah: 'Bass', - Batak: 'Batk', - Bengali: 'Beng', - Bhaiksuki: 'Bhks', - Bopomofo: 'Bopo', - Brahmi: 'Brah', - Braille: 'Brai', - Buginese: 'Bugi', - Buhid: 'Buhd', - Canadian_Aboriginal: 'Cans', - Carian: 'Cari', - Caucasian_Albanian: 'Aghb', - Chakma: 'Cakm', - Cham: 'Cham', - Cherokee: 'Cher', - Common: 'Zyyy', - Coptic: ['Copt', 'Qaac'], - Cuneiform: 'Xsux', - Cypriot: 'Cprt', - Cyrillic: 'Cyrl', - Deseret: 'Dsrt', - Devanagari: 'Deva', - Dogra: 'Dogr', - Duployan: 'Dupl', - Egyptian_Hieroglyphs: 'Egyp', - Elbasan: 'Elba', - Ethiopic: 'Ethi', - Georgian: 'Geor', - Glagolitic: 'Glag', - Gothic: 'Goth', - Grantha: 'Gran', - Greek: 'Grek', - Gujarati: 'Gujr', - Gunjala_Gondi: 'Gong', - Gurmukhi: 'Guru', - Han: 'Hani', - Hangul: 'Hang', - Hanifi_Rohingya: 'Rohg', - Hanunoo: 'Hano', - Hatran: 'Hatr', - Hebrew: 'Hebr', - Hiragana: 'Hira', - Imperial_Aramaic: 'Armi', - Inherited: ['Zinh', 'Qaai'], - Inscriptional_Pahlavi: 'Phli', - Inscriptional_Parthian: 'Prti', - Javanese: 'Java', - Kaithi: 'Kthi', - Kannada: 'Knda', - Katakana: 'Kana', - Kayah_Li: 'Kali', - Kharoshthi: 'Khar', - Khmer: 'Khmr', - Khojki: 'Khoj', - Khudawadi: 'Sind', - Lao: 'Laoo', - Latin: 'Latn', - Lepcha: 'Lepc', - Limbu: 'Limb', - Linear_A: 'Lina', - Linear_B: 'Linb', - Lisu: 'Lisu', - Lycian: 'Lyci', - Lydian: 'Lydi', - Mahajani: 'Mahj', - Makasar: 'Maka', - Malayalam: 'Mlym', - Mandaic: 'Mand', - Manichaean: 'Mani', - Marchen: 'Marc', - Medefaidrin: 'Medf', - Masaram_Gondi: 'Gonm', - Meetei_Mayek: 'Mtei', - Mende_Kikakui: 'Mend', - Meroitic_Cursive: 'Merc', - Meroitic_Hieroglyphs: 'Mero', - Miao: 'Plrd', - Modi: 'Modi', - Mongolian: 'Mong', - Mro: 'Mroo', - Multani: 'Mult', - Myanmar: 'Mymr', - Nabataean: 'Nbat', - New_Tai_Lue: 'Talu', - Newa: 'Newa', - Nko: 'Nkoo', - Nushu: 'Nshu', - Ogham: 'Ogam', - Ol_Chiki: 'Olck', - Old_Hungarian: 'Hung', - Old_Italic: 'Ital', - Old_North_Arabian: 'Narb', - Old_Permic: 'Perm', - Old_Persian: 'Xpeo', - Old_Sogdian: 'Sogo', - Old_South_Arabian: 'Sarb', - Old_Turkic: 'Orkh', - Oriya: 'Orya', - Osage: 'Osge', - Osmanya: 'Osma', - Pahawh_Hmong: 'Hmng', - Palmyrene: 'Palm', - Pau_Cin_Hau: 'Pauc', - Phags_Pa: 'Phag', - Phoenician: 'Phnx', - Psalter_Pahlavi: 'Phlp', - Rejang: 'Rjng', - Runic: 'Runr', - Samaritan: 'Samr', - Saurashtra: 'Saur', - Sharada: 'Shrd', - Shavian: 'Shaw', - Siddham: 'Sidd', - SignWriting: 'Sgnw', - Sinhala: 'Sinh', - Sogdian: 'Sogd', - Sora_Sompeng: 'Sora', - Soyombo: 'Soyo', - Sundanese: 'Sund', - Syloti_Nagri: 'Sylo', - Syriac: 'Syrc', - Tagalog: 'Tglg', - Tagbanwa: 'Tagb', - Tai_Le: 'Tale', - Tai_Tham: 'Lana', - Tai_Viet: 'Tavt', - Takri: 'Takr', - Tamil: 'Taml', - Tangut: 'Tang', - Telugu: 'Telu', - Thaana: 'Thaa', - Thai: 'Thai', - Tibetan: 'Tibt', - Tifinagh: 'Tfng', - Tirhuta: 'Tirh', - Ugaritic: 'Ugar', - Vai: 'Vaii', - Warang_Citi: 'Wara', - Yi: 'Yiii', - Zanabazar_Square: 'Zanb' -}; - -var SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES); - -function inverseMap(data) { - var inverse = {}; - - for (var name in data) { - if (!data.hasOwnProperty(name)) { - continue; - } - var value = data[name]; - if (Array.isArray(value)) { - for (var i = 0; i < value.length; i++) { - inverse[value[i]] = name; - } - } else { - inverse[value] = name; - } - } - - return inverse; -} - -function isValidName(name) { - return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name); -} - -function isValidValue(name, value) { - if (isGeneralCategoryName(name)) { - return isGeneralCategoryValue(value); - } - - if (isScriptCategoryName(name)) { - return isScriptCategoryValue(value); - } - - return false; -} - -function isAlias(name) { - return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name); -} - -function isGeneralCategoryName(name) { - return name === 'General_Category' || name == 'gc'; -} - -function isScriptCategoryName(name) { - return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx'; -} - -function isGeneralCategoryValue(value) { - return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value); -} - -function isScriptCategoryValue(value) { - return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value); -} - -function isBinaryPropertyName(name) { - return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name); -} - -function getCanonicalName(name) { - if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) { - return NON_BINARY_ALIASES_TO_PROP_NAMES[name]; - } - - if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) { - return BINARY_ALIASES_TO_PROP_NAMES[name]; - } - - return null; -} - -function getCanonicalValue(value) { - if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) { - return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value]; - } - - if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) { - return SCRIPT_VALUE_ALIASES_TO_VALUE[value]; - } - - if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) { - return BINARY_ALIASES_TO_PROP_NAMES[value]; - } - - return null; -} - -module.exports = { - isAlias: isAlias, - isValidName: isValidName, - isValidValue: isValidValue, - isGeneralCategoryValue: isGeneralCategoryValue, - isScriptCategoryValue: isScriptCategoryValue, - isBinaryPropertyName: isBinaryPropertyName, - getCanonicalName: getCanonicalName, - getCanonicalValue: getCanonicalValue, - - NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES, - NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES, - - BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES, - BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES, - - GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES, - GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES, - - SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES, - SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/regexp-tree.js": -/*!******************************************************!*\ - !*** ./node_modules/regexp-tree/dist/regexp-tree.js ***! - \******************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var compatTranspiler = __webpack_require__(/*! ./compat-transpiler */ "./node_modules/regexp-tree/dist/compat-transpiler/index.js"); -var generator = __webpack_require__(/*! ./generator */ "./node_modules/regexp-tree/dist/generator/index.js"); -var optimizer = __webpack_require__(/*! ./optimizer */ "./node_modules/regexp-tree/dist/optimizer/index.js"); -var parser = __webpack_require__(/*! ./parser */ "./node_modules/regexp-tree/dist/parser/index.js"); -var _transform = __webpack_require__(/*! ./transform */ "./node_modules/regexp-tree/dist/transform/index.js"); -var _traverse = __webpack_require__(/*! ./traverse */ "./node_modules/regexp-tree/dist/traverse/index.js"); -var fa = __webpack_require__(/*! ./interpreter/finite-automaton */ "./node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js"); - -var _require = __webpack_require__(/*! ./compat-transpiler/runtime */ "./node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js"), - RegExpTree = _require.RegExpTree; - -/** - * An API object for RegExp processing (parsing/transform/generation). - */ - - -var regexpTree = { - /** - * Parser module exposed. - */ - parser: parser, - - /** - * Expose finite-automaton module. - */ - fa: fa, - - /** - * `TransformResult` exposed. - */ - TransformResult: _transform.TransformResult, - - /** - * Parses a regexp string, producing an AST. - * - * @param string regexp - * - * a regular expression in different formats: string, AST, RegExp. - * - * @param Object options - * - * parsing options for this parse call. Default are: - * - * - captureLocations: boolean - * - any other custom options - * - * @return Object AST - */ - parse: function parse(regexp, options) { - return parser.parse('' + regexp, options); - }, - - - /** - * Traverses a RegExp AST. - * - * @param Object ast - * @param Object | Array handlers - * - * Each `handler` is an object containing handler function for needed - * node types. Example: - * - * regexpTree.traverse(ast, { - * onChar(node) { - * ... - * }, - * }); - * - * The value for a node type may also be an object with functions pre and post. - * This enables more context-aware analyses, e.g. measuring star height. - */ - traverse: function traverse(ast, handlers, options) { - return _traverse.traverse(ast, handlers, options); - }, - - - /** - * Transforms a regular expression. - * - * A regexp can be passed in different formats (string, regexp or AST), - * applying a set of transformations. It is a convenient wrapper - * on top of "parse-traverse-generate" tool chain. - * - * @param string | AST | RegExp regexp - a regular expression; - * @param Object | Array handlers - a list of handlers. - * - * @return TransformResult - a transformation result. - */ - transform: function transform(regexp, handlers) { - return _transform.transform(regexp, handlers); - }, - - - /** - * Generates a RegExp string from an AST. - * - * @param Object ast - * - * Invariant: - * - * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i' - */ - generate: function generate(ast) { - return generator.generate(ast); - }, - - - /** - * Creates a RegExp object from a regexp string. - * - * @param string regexp - */ - toRegExp: function toRegExp(regexp) { - var compat = this.compatTranspile(regexp); - return new RegExp(compat.getSource(), compat.getFlags()); - }, - - - /** - * Optimizes a regular expression by replacing some - * sub-expressions with their idiomatic patterns. - * - * @param string regexp - * - * @return TransformResult object - */ - optimize: function optimize(regexp, whitelist) { - var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}, - blacklist = _ref.blacklist; - - return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist }); - }, - - - /** - * Translates a regular expression in new syntax or in new format - * into equivalent expressions in old syntax. - * - * @param string regexp - * - * @return TransformResult object - */ - compatTranspile: function compatTranspile(regexp, whitelist) { - return compatTranspiler.transform(regexp, whitelist); - }, - - - /** - * Executes a regular expression on a string. - * - * @param RegExp|string re - a regular expression. - * @param string string - a testing string. - */ - exec: function exec(re, string) { - if (typeof re === 'string') { - var compat = this.compatTranspile(re); - var extra = compat.getExtra(); - - if (extra.namedCapturingGroups) { - re = new RegExpTree(compat.toRegExp(), { - flags: compat.getFlags(), - source: compat.getSource(), - groups: extra.namedCapturingGroups - }); - } else { - re = compat.toRegExp(); - } - } - - return re.exec(string); - } -}; - -module.exports = regexpTree; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/transform/index.js": -/*!**********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/transform/index.js ***! - \**********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var generator = __webpack_require__(/*! ../generator */ "./node_modules/regexp-tree/dist/generator/index.js"); -var parser = __webpack_require__(/*! ../parser */ "./node_modules/regexp-tree/dist/parser/index.js"); -var traverse = __webpack_require__(/*! ../traverse */ "./node_modules/regexp-tree/dist/traverse/index.js"); - -/** - * Transform result. - */ - -var TransformResult = function () { - /** - * Initializes a transform result for an AST. - * - * @param Object ast - an AST node - * @param mixed extra - any extra data a transform may return - */ - function TransformResult(ast) { - var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - _classCallCheck(this, TransformResult); - - this._ast = ast; - this._source = null; - this._string = null; - this._regexp = null; - this._extra = extra; - } - - _createClass(TransformResult, [{ - key: 'getAST', - value: function getAST() { - return this._ast; - } - }, { - key: 'setExtra', - value: function setExtra(extra) { - this._extra = extra; - } - }, { - key: 'getExtra', - value: function getExtra() { - return this._extra; - } - }, { - key: 'toRegExp', - value: function toRegExp() { - if (!this._regexp) { - this._regexp = new RegExp(this.getSource(), this._ast.flags); - } - return this._regexp; - } - }, { - key: 'getSource', - value: function getSource() { - if (!this._source) { - this._source = generator.generate(this._ast.body); - } - return this._source; - } - }, { - key: 'getFlags', - value: function getFlags() { - return this._ast.flags; - } - }, { - key: 'toString', - value: function toString() { - if (!this._string) { - this._string = generator.generate(this._ast); - } - return this._string; - } - }]); - - return TransformResult; -}(); - -module.exports = { - /** - * Expose `TransformResult`. - */ - TransformResult: TransformResult, - - /** - * Transforms a regular expression applying a set of - * transformation handlers. - * - * @param string | AST | RegExp: - * - * a regular expression in different representations: a string, - * a RegExp object, or an AST. - * - * @param Object | Array: - * - * a handler (or a list of handlers) from `traverse` API. - * - * @return TransformResult instance. - * - * Example: - * - * transform(/[a-z]/i, { - * onChar(path) { - * const {node} = path; - * - * if (...) { - * path.remove(); - * } - * } - * }); - */ - transform: function transform(regexp, handlers) { - var ast = regexp; - - if (regexp instanceof RegExp) { - regexp = '' + regexp; - } - - if (typeof regexp === 'string') { - ast = parser.parse(regexp, { - captureLocations: true - }); - } - - traverse.traverse(ast, handlers); - - return new TransformResult(ast); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/transform/utils.js": -/*!**********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/transform/utils.js ***! - \**********************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * Flattens a nested disjunction node to a list. - * - * /a|b|c|d/ - * - * {{{a, b}, c}, d} -> [a, b, c, d] - */ - -function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } - -function disjunctionToList(node) { - if (node.type !== 'Disjunction') { - throw new TypeError('Expected "Disjunction" node, got "' + node.type + '"'); - } - - var list = []; - - if (node.left && node.left.type === 'Disjunction') { - list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right])); - } else { - list.push(node.left, node.right); - } - - return list; -} - -/** - * Builds a nested disjunction node from a list. - * - * /a|b|c|d/ - * - * [a, b, c, d] -> {{{a, b}, c}, d} - */ -function listToDisjunction(list) { - return list.reduce(function (left, right) { - return { - type: 'Disjunction', - left: left, - right: right - }; - }); -} - -/** - * Increases a quantifier by one. - * Does not change greediness. - * * -> + - * + -> {2,} - * ? -> {1,2} - * {2} -> {3} - * {2,} -> {3,} - * {2,3} -> {3,4} - */ -function increaseQuantifierByOne(quantifier) { - if (quantifier.kind === '*') { - - quantifier.kind = '+'; - } else if (quantifier.kind === '+') { - - quantifier.kind = 'Range'; - quantifier.from = 2; - delete quantifier.to; - } else if (quantifier.kind === '?') { - - quantifier.kind = 'Range'; - quantifier.from = 1; - quantifier.to = 2; - } else if (quantifier.kind === 'Range') { - - quantifier.from += 1; - if (quantifier.to) { - quantifier.to += 1; - } - } -} - -module.exports = { - disjunctionToList: disjunctionToList, - listToDisjunction: listToDisjunction, - increaseQuantifierByOne: increaseQuantifierByOne -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/traverse/index.js": -/*!*********************************************************!*\ - !*** ./node_modules/regexp-tree/dist/traverse/index.js ***! - \*********************************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var NodePath = __webpack_require__(/*! ./node-path */ "./node_modules/regexp-tree/dist/traverse/node-path.js"); - -/** - * Does an actual AST traversal, using visitor pattern, - * and calling set of callbacks. - * - * Based on https://github.com/olov/ast-traverse - * - * Expects AST in Mozilla Parser API: nodes which are supposed to be - * handled should have `type` property. - * - * @param Object root - a root node to start traversal from. - * - * @param Object options - an object with set of callbacks: - * - * - `pre(node, parent, prop, index)` - a hook called on node enter - * - `post`(node, parent, prop, index) - a hook called on node exit - * - `skipProperty(prop)` - a predicated whether a property should be skipped - */ -function astTraverse(root) { - var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; - - var pre = options.pre; - var post = options.post; - var skipProperty = options.skipProperty; - - function visit(node, parent, prop, idx) { - if (!node || typeof node.type !== 'string') { - return; - } - - var res = undefined; - if (pre) { - res = pre(node, parent, prop, idx); - } - - if (res !== false) { - - // A node can be replaced during traversal, so we have to - // recalculate it from the parent, to avoid traversing "dead" nodes. - if (parent && parent[prop]) { - if (!isNaN(idx)) { - node = parent[prop][idx]; - } else { - node = parent[prop]; - } - } - - for (var _prop in node) { - if (node.hasOwnProperty(_prop)) { - if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') { - continue; - } - - var child = node[_prop]; - - // Collection node. - // - // NOTE: a node (or several nodes) can be removed or inserted - // during traversal. - // - // Current traversing index is stored on top of the - // `NodePath.traversingIndexStack`. The stack is used to support - // recursive nature of the traversal. - // - // In this case `NodePath.traversingIndex` (which we use here) is - // updated in the NodePath remove/insert methods. - // - if (Array.isArray(child)) { - var index = 0; - NodePath.traversingIndexStack.push(index); - while (index < child.length) { - visit(child[index], node, _prop, index); - index = NodePath.updateTraversingIndex(+1); - } - NodePath.traversingIndexStack.pop(); - } - - // Simple node. - else { - visit(child, node, _prop); - } - } - } - } - - if (post) { - post(node, parent, prop, idx); - } - } - - visit(root, null); -} - -module.exports = { - /** - * Traverses an AST. - * - * @param Object ast - an AST node - * - * @param Object | Array handlers: - * - * an object (or an array of objects) - * - * Each such object contains a handler function per node. - * In case of an array of handlers, they are applied in order. - * A handler may return a transformed node (or a different type). - * - * The per-node function may instead be an object with functions pre and post. - * pre is called before visiting the node, post after. - * If a handler is a function, it is treated as the pre function, with an empty post. - * - * @param Object options: - * - * a config object, specifying traversal options: - * - * `asNodes`: boolean - whether handlers should receives raw AST nodes - * (false by default), instead of a `NodePath` wrapper. Note, by default - * `NodePath` wrapper provides a set of convenient method to manipulate - * a traversing AST, and also has access to all parents list. A raw - * nodes traversal should be used in rare cases, when no `NodePath` - * features are needed. - * - * Special hooks: - * - * - `shouldRun(ast)` - a predicate determining whether the handler - * should be applied. - * - * NOTE: Multiple handlers are used as an optimization of applying all of - * them in one AST traversal pass. - */ - traverse: function traverse(ast, handlers) { - var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false }; - - - if (!Array.isArray(handlers)) { - handlers = [handlers]; - } - - // Filter out handlers by result of `shouldRun`, if the method is present. - handlers = handlers.filter(function (handler) { - if (typeof handler.shouldRun !== 'function') { - return true; - } - return handler.shouldRun(ast); - }); - - NodePath.initRegistry(); - - // Allow handlers to initializer themselves. - handlers.forEach(function (handler) { - if (typeof handler.init === 'function') { - handler.init(ast); - } - }); - - function getPathFor(node, parent, prop, index) { - var parentPath = NodePath.getForNode(parent); - var nodePath = NodePath.getForNode(node, parentPath, prop, index); - - return nodePath; - } - - // Handle actual nodes. - astTraverse(ast, { - /** - * Handler on node enter. - */ - pre: function pre(node, parent, prop, index) { - var nodePath = void 0; - if (!options.asNodes) { - nodePath = getPathFor(node, parent, prop, index); - } - - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var handler = _step.value; - - // "Catch-all" `*` handler. - if (typeof handler['*'] === 'function') { - if (nodePath) { - // A path/node can be removed by some previous handler. - if (!nodePath.isRemoved()) { - var handlerResult = handler['*'](nodePath); - // Explicitly stop traversal. - if (handlerResult === false) { - return false; - } - } - } else { - handler['*'](node, parent, prop, index); - } - } - - // Per-node handler. - var handlerFuncPre = void 0; - if (typeof handler[node.type] === 'function') { - handlerFuncPre = handler[node.type]; - } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') { - handlerFuncPre = handler[node.type].pre; - } - - if (handlerFuncPre) { - if (nodePath) { - // A path/node can be removed by some previous handler. - if (!nodePath.isRemoved()) { - var _handlerResult = handlerFuncPre.call(handler, nodePath); - // Explicitly stop traversal. - if (_handlerResult === false) { - return false; - } - } - } else { - handlerFuncPre.call(handler, node, parent, prop, index); - } - } - } // Loop over handlers - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - }, - // pre func - - /** - * Handler on node exit. - */ - post: function post(node, parent, prop, index) { - if (!node) { - return; - } - - var nodePath = void 0; - if (!options.asNodes) { - nodePath = getPathFor(node, parent, prop, index); - } - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var handler = _step2.value; - - // Per-node handler. - var handlerFuncPost = void 0; - if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') { - handlerFuncPost = handler[node.type].post; - } - - if (handlerFuncPost) { - if (nodePath) { - // A path/node can be removed by some previous handler. - if (!nodePath.isRemoved()) { - var handlerResult = handlerFuncPost.call(handler, nodePath); - // Explicitly stop traversal. - if (handlerResult === false) { - return false; - } - } - } else { - handlerFuncPost.call(handler, node, parent, prop, index); - } - } - } // Loop over handlers - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - }, - // post func - - /** - * Skip locations by default. - */ - skipProperty: function skipProperty(prop) { - return prop === 'loc'; - } - }); - } -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/traverse/node-path.js": -/*!*************************************************************!*\ - !*** ./node_modules/regexp-tree/dist/traverse/node-path.js ***! - \*************************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -var _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -var DEFAULT_COLLECTION_PROP = 'expressions'; -var DEFAULT_SINGLE_PROP = 'expression'; - -/** - * NodePath class encapsulates a traversing node, - * its parent node, property name in the parent node, and - * an index (in case if a node is part of a collection). - * It also provides set of methods for AST manipulation. - */ - -var NodePath = function () { - /** - * NodePath constructor. - * - * @param Object node - an AST node - * @param NodePath parentPath - a nullable parent path - * @param string property - property name of the node in the parent - * @param number index - index of the node in a collection. - */ - function NodePath(node) { - var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; - - _classCallCheck(this, NodePath); - - this.node = node; - this.parentPath = parentPath; - this.parent = parentPath ? parentPath.node : null; - this.property = property; - this.index = index; - } - - _createClass(NodePath, [{ - key: '_enforceProp', - value: function _enforceProp(property) { - if (!this.node.hasOwnProperty(property)) { - throw new Error('Node of type ' + this.node.type + ' doesn\'t have "' + property + '" collection.'); - } - } - - /** - * Sets a node into a children collection or the single child. - * By default child nodes are supposed to be under `expressions` property. - * An explicit property can be passed. - * - * @param Object node - a node to set into a collection or as single child - * @param number index - index at which to set - * @param string property - name of the collection or single property - */ - - }, { - key: 'setChild', - value: function setChild(node) { - var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - - - var childPath = void 0; - if (index != null) { - if (!property) { - property = DEFAULT_COLLECTION_PROP; - } - this._enforceProp(property); - this.node[property][index] = node; - childPath = NodePath.getForNode(node, this, property, index); - } else { - if (!property) { - property = DEFAULT_SINGLE_PROP; - } - this._enforceProp(property); - this.node[property] = node; - childPath = NodePath.getForNode(node, this, property, null); - } - return childPath; - } - - /** - * Appends a node to a children collection. - * By default child nodes are supposed to be under `expressions` property. - * An explicit property can be passed. - * - * @param Object node - a node to set into a collection or as single child - * @param string property - name of the collection or single property - */ - - }, { - key: 'appendChild', - value: function appendChild(node) { - var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - - if (!property) { - property = DEFAULT_COLLECTION_PROP; - } - this._enforceProp(property); - var end = this.node[property].length; - return this.setChild(node, end, property); - } - - /** - * Inserts a node into a collection. - * By default child nodes are supposed to be under `expressions` property. - * An explicit property can be passed. - * - * @param Object node - a node to insert into a collection - * @param number index - index at which to insert - * @param string property - name of the collection property - */ - - }, { - key: 'insertChildAt', - value: function insertChildAt(node, index) { - var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP; - - this._enforceProp(property); - - this.node[property].splice(index, 0, node); - - // If we inserted a node before the traversing index, - // we should increase the later. - if (index <= NodePath.getTraversingIndex()) { - NodePath.updateTraversingIndex(+1); - } - - this._rebuildIndex(this.node, property); - } - - /** - * Removes a node. - */ - - }, { - key: 'remove', - value: function remove() { - if (this.isRemoved()) { - return; - } - NodePath.registry.delete(this.node); - - this.node = null; - - if (!this.parent) { - return; - } - - // A node is in a collection. - if (this.index !== null) { - this.parent[this.property].splice(this.index, 1); - - // If we remove a node before the traversing index, - // we should increase the later. - if (this.index <= NodePath.getTraversingIndex()) { - NodePath.updateTraversingIndex(-1); - } - - // Rebuild index. - this._rebuildIndex(this.parent, this.property); - - this.index = null; - this.property = null; - - return; - } - - // A simple node. - delete this.parent[this.property]; - this.property = null; - } - - /** - * Rebuilds child nodes index (used on remove/insert). - */ - - }, { - key: '_rebuildIndex', - value: function _rebuildIndex(parent, property) { - var parentPath = NodePath.getForNode(parent); - - for (var i = 0; i < parent[property].length; i++) { - var path = NodePath.getForNode(parent[property][i], parentPath, property, i); - path.index = i; - } - } - - /** - * Whether the path was removed. - */ - - }, { - key: 'isRemoved', - value: function isRemoved() { - return this.node === null; - } - - /** - * Replaces a node with the passed one. - */ - - }, { - key: 'replace', - value: function replace(newNode) { - NodePath.registry.delete(this.node); - - this.node = newNode; - - if (!this.parent) { - return null; - } - - // A node is in a collection. - if (this.index !== null) { - this.parent[this.property][this.index] = newNode; - } - - // A simple node. - else { - this.parent[this.property] = newNode; - } - - // Rebuild the node path for the new node. - return NodePath.getForNode(newNode, this.parentPath, this.property, this.index); - } - - /** - * Updates a node inline. - */ - - }, { - key: 'update', - value: function update(nodeProps) { - Object.assign(this.node, nodeProps); - } - - /** - * Returns parent. - */ - - }, { - key: 'getParent', - value: function getParent() { - return this.parentPath; - } - - /** - * Returns nth child. - */ - - }, { - key: 'getChild', - value: function getChild() { - var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - - if (this.node.expressions) { - return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n); - } else if (this.node.expression && n == 0) { - return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP); - } - return null; - } - - /** - * Whether a path node is syntactically equal to the passed one. - * - * NOTE: we don't rely on `source` property from the `loc` data - * (which would be the fastest comparison), since it might be unsync - * after several modifications. We use here simple `JSON.stringify` - * excluding the `loc` data. - * - * @param NodePath other - path to compare to. - * @return boolean - */ - - }, { - key: 'hasEqualSource', - value: function hasEqualSource(path) { - return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc); - } - - /** - * JSON-encodes a node skipping location. - */ - - }, { - key: 'jsonEncode', - value: function jsonEncode() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - format = _ref.format, - useLoc = _ref.useLoc; - - return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format); - } - - /** - * Returns previous sibling. - */ - - }, { - key: 'getPreviousSibling', - value: function getPreviousSibling() { - if (!this.parent || this.index == null) { - return null; - } - return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1); - } - - /** - * Returns next sibling. - */ - - }, { - key: 'getNextSibling', - value: function getNextSibling() { - if (!this.parent || this.index == null) { - return null; - } - return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1); - } - - /** - * Returns a NodePath instance for a node. - * - * The same NodePath can be reused in several places, e.g. - * a parent node passed for all its children. - */ - - }], [{ - key: 'getForNode', - value: function getForNode(node) { - var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; - var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1; - - if (!node) { - return null; - } - - if (!NodePath.registry.has(node)) { - NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index)); - } - - var path = NodePath.registry.get(node); - - if (parentPath !== null) { - path.parentPath = parentPath; - path.parent = path.parentPath.node; - } - - if (prop !== null) { - path.property = prop; - } - - if (index >= 0) { - path.index = index; - } - - return path; - } - - /** - * Initializes the NodePath registry. The registry is a map from - * a node to its NodePath instance. - */ - - }, { - key: 'initRegistry', - value: function initRegistry() { - if (!NodePath.registry) { - NodePath.registry = new Map(); - } - NodePath.registry.clear(); - } - - /** - * Updates index of a currently traversing collection. - */ - - }, { - key: 'updateTraversingIndex', - value: function updateTraversingIndex(dx) { - return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx; - } - - /** - * Returns current traversing index. - */ - - }, { - key: 'getTraversingIndex', - value: function getTraversingIndex() { - return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1]; - } - }]); - - return NodePath; -}(); - -NodePath.initRegistry(); - -/** - * Index of a currently traversing collection is stored on top of the - * `NodePath.traversingIndexStack`. Remove/insert methods can adjust - * this index. - */ -NodePath.traversingIndexStack = []; - -// Helper function used to skip `loc` in JSON operations. -function jsonSkipLoc(prop, value) { - if (prop === 'loc') { - return undefined; - } - return value; -} - -module.exports = NodePath; - -/***/ }), - -/***/ "./node_modules/regexp-tree/dist/utils/clone.js": -/*!******************************************************!*\ - !*** ./node_modules/regexp-tree/dist/utils/clone.js ***! - \******************************************************/ -/***/ ((module) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -/** - * Performs a deep copy of an simple object. - * Only handles scalar values, arrays and objects. - * - * @param obj Object - */ - -module.exports = function clone(obj) { - if (obj === null || typeof obj !== 'object') { - return obj; - } - var res = void 0; - if (Array.isArray(obj)) { - res = []; - } else { - res = {}; - } - for (var i in obj) { - res[i] = clone(obj[i]); - } - return res; -}; - -/***/ }), - -/***/ "./node_modules/regexp-tree/index.js": -/*!*******************************************!*\ - !*** ./node_modules/regexp-tree/index.js ***! - \*******************************************/ -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; -/** - * The MIT License (MIT) - * Copyright (c) 2017-present Dmitry Soshnikov - */ - - - -module.exports = __webpack_require__(/*! ./dist/regexp-tree */ "./node_modules/regexp-tree/dist/regexp-tree.js"); - -/***/ }), - -/***/ "?3465": -/*!**********************!*\ - !*** path (ignored) ***! - \**********************/ -/***/ (() => { - -/* (ignored) */ - -/***/ }), - -/***/ "./node_modules/browserslist-useragent-regexp/dist/index.js": -/*!******************************************************************!*\ - !*** ./node_modules/browserslist-useragent-regexp/dist/index.js ***! - \******************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ AlternativeNode: () => (/* binding */ AlternativeNode), -/* harmony export */ AstRegExpNode: () => (/* binding */ AstRegExpNode), -/* harmony export */ CapturingGroupNode: () => (/* binding */ CapturingGroupNode), -/* harmony export */ CharacterClassNode: () => (/* binding */ CharacterClassNode), -/* harmony export */ ClassRangeNode: () => (/* binding */ ClassRangeNode), -/* harmony export */ DigitPatternNode: () => (/* binding */ DigitPatternNode), -/* harmony export */ DisjunctionCapturingGroupNode: () => (/* binding */ DisjunctionCapturingGroupNode), -/* harmony export */ DisjunctionNode: () => (/* binding */ DisjunctionNode), -/* harmony export */ MetaCharNode: () => (/* binding */ MetaCharNode), -/* harmony export */ NumberCharsNode: () => (/* binding */ NumberCharsNode), -/* harmony export */ NumberPatternNode: () => (/* binding */ NumberPatternNode), -/* harmony export */ RangeQuantifierNode: () => (/* binding */ RangeQuantifierNode), -/* harmony export */ RepetitionNode: () => (/* binding */ RepetitionNode), -/* harmony export */ SemverPart: () => (/* binding */ SemverPart), -/* harmony export */ SimpleCharNode: () => (/* binding */ SimpleCharNode), -/* harmony export */ SimpleQuantifierNode: () => (/* binding */ SimpleQuantifierNode), -/* harmony export */ applyVersionsToRegex: () => (/* binding */ applyVersionsToRegex), -/* harmony export */ applyVersionsToRegexes: () => (/* binding */ applyVersionsToRegexes), -/* harmony export */ clone: () => (/* binding */ clone), -/* harmony export */ compareArrays: () => (/* binding */ compareArrays), -/* harmony export */ compareSemvers: () => (/* binding */ compareSemvers), -/* harmony export */ compileRegex: () => (/* binding */ compileRegex), -/* harmony export */ compileRegexes: () => (/* binding */ compileRegexes), -/* harmony export */ concat: () => (/* binding */ concat), -/* harmony export */ defaultOptions: () => (/* binding */ defaultOptions), -/* harmony export */ findMatchedVersions: () => (/* binding */ findMatchedVersions), -/* harmony export */ getBrowsersList: () => (/* binding */ getBrowsersList), -/* harmony export */ getNumberPatternsCount: () => (/* binding */ getNumberPatternsCount), -/* harmony export */ getNumberPatternsPart: () => (/* binding */ getNumberPatternsPart), -/* harmony export */ getPreUserAgentRegexes: () => (/* binding */ getPreUserAgentRegexes), -/* harmony export */ getRegexesForBrowsers: () => (/* binding */ getRegexesForBrowsers), -/* harmony export */ getRequiredSemverPartsCount: () => (/* binding */ getRequiredSemverPartsCount), -/* harmony export */ getUserAgentRegex: () => (/* binding */ getUserAgentRegex), -/* harmony export */ getUserAgentRegexes: () => (/* binding */ getUserAgentRegexes), -/* harmony export */ isCharNode: () => (/* binding */ isCharNode), -/* harmony export */ isDigitRangeNode: () => (/* binding */ isDigitRangeNode), -/* harmony export */ isExpressionNode: () => (/* binding */ isExpressionNode), -/* harmony export */ isNumberPatternNode: () => (/* binding */ isNumberPatternNode), -/* harmony export */ mergeBrowserVersions: () => (/* binding */ mergeBrowserVersions), -/* harmony export */ mergeDigits: () => (/* binding */ mergeDigits), -/* harmony export */ numberToDigits: () => (/* binding */ numberToDigits), -/* harmony export */ numbersToRanges: () => (/* binding */ numbersToRanges), -/* harmony export */ optimizeRegex: () => (/* binding */ optimizeRegex), -/* harmony export */ optimizeSegmentNumberPatterns: () => (/* binding */ optimizeSegmentNumberPatterns), -/* harmony export */ parseBrowsersList: () => (/* binding */ parseBrowsersList), -/* harmony export */ parseRegex: () => (/* binding */ parseRegex), -/* harmony export */ rangeSemver: () => (/* binding */ rangeSemver), -/* harmony export */ rangeToRegex: () => (/* binding */ rangeToRegex), -/* harmony export */ rangedSemverToRegex: () => (/* binding */ rangedSemverToRegex), -/* harmony export */ rayRangeDigitPattern: () => (/* binding */ rayRangeDigitPattern), -/* harmony export */ rayToNumberPatterns: () => (/* binding */ rayToNumberPatterns), -/* harmony export */ replaceNumberPatterns: () => (/* binding */ replaceNumberPatterns), -/* harmony export */ segmentRangeNumberPattern: () => (/* binding */ segmentRangeNumberPattern), -/* harmony export */ segmentToNumberPatterns: () => (/* binding */ segmentToNumberPatterns), -/* harmony export */ semverify: () => (/* binding */ semverify), -/* harmony export */ splitCommonDiff: () => (/* binding */ splitCommonDiff), -/* harmony export */ splitToDecadeRanges: () => (/* binding */ splitToDecadeRanges), -/* harmony export */ toRegex: () => (/* binding */ toRegex), -/* harmony export */ toString: () => (/* binding */ toString), -/* harmony export */ versionsListToRanges: () => (/* binding */ versionsListToRanges), -/* harmony export */ visitors: () => (/* binding */ visitors) -/* harmony export */ }); -/* harmony import */ var browserslist__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! browserslist */ "./node_modules/browserslist/index.js"); -/* harmony import */ var regexp_tree__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! regexp-tree */ "./node_modules/regexp-tree/index.js"); -/* harmony import */ var ua_regexes_lite__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ua-regexes-lite */ "./node_modules/ua-regexes-lite/index.js"); - - - - -/** - * Array of numbers to array of first and last elements. - * @param numbers - Array of numbers. - * @returns Number or two numbers. - */ function numbersToRanges(numbers) { - if (typeof numbers === "number") { - return numbers; - } - if (numbers.length === 1) { - return numbers[0]; - } - return [ - numbers[0], - numbers[numbers.length - 1] - ]; -} - -var SemverPart; -(function(SemverPart) { - SemverPart[SemverPart["Major"] = 0] = "Major"; - SemverPart[SemverPart["Minor"] = 1] = "Minor"; - SemverPart[SemverPart["Patch"] = 2] = "Patch"; -})(SemverPart || (SemverPart = {})); - -/** - * Get semver from string or array. - * @param version - Target to convert. - * @returns Array with semver parts. - */ function semverify(version) { - const versionParts = Array.isArray(version) ? version : version.toString().split("."); - if (versionParts[0] === "all") { - return [ - Infinity, - 0, - 0 - ]; - } - let versionPart = null; - let semverPart = null; - const semver = [ - 0, - 0, - 0 - ]; - for(let i = 0; i < 3; i++){ - versionPart = versionParts[i]; - if (typeof versionPart === "undefined") { - continue; - } - semverPart = typeof versionPart === "number" ? versionPart : parseInt(versionPart, 10); - if (isNaN(semverPart)) { - return null; - } - semver[i] = semverPart; - } - return semver; -} -/** - * Get semver range. - * @param from - * @param to - * @returns Semver range. - */ function rangeSemver(from, to) { - let partIndex = 0; - const range = []; - for(let i = 2; i >= 0; i--){ - if (from[i] !== to[i]) { - partIndex = i; - break; - } - } - for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){ - range.push(from.map((v, j)=>j === partIndex ? i1 : v)); - } - return range; -} -/** - * Compare semvers. - * @param a - Semver to compare. - * @param b - Semver to compare with. - * @param options - Compare options. - * @returns Equals or not. - */ function compareSemvers(a, b, options) { - const [major, minor, patch] = a; - const [majorBase, minorBase, patchBase] = b; - const { ignoreMinor , ignorePatch , allowHigherVersions } = options; - if (majorBase === Infinity) { - return true; - } - const compareMinor = !ignoreMinor; - const comparePatch = compareMinor && !ignorePatch; - if (allowHigherVersions) { - if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) { - return false; - } - return major >= majorBase; - } - if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) { - return false; - } - return major === majorBase; -} -/** - * Get required semver parts count. - * @param version - Semver parts or ranges. - * @param options - Semver compare options. - * @returns Required semver parts count. - */ function getRequiredSemverPartsCount(version, options) { - const { ignoreMinor , ignorePatch , allowZeroSubversions } = options; - let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3; - if (allowZeroSubversions) { - for(let i = shouldRepeatCount - 1; i > 0; i--){ - if (version[i] !== 0 || shouldRepeatCount === 1) { - break; - } - shouldRepeatCount--; - } - } - return shouldRepeatCount; -} - -/** - * Browsers strings to info objects. - * @param browsersList - Browsers strings with family and version. - * @returns Browser info objects. - */ function parseBrowsersList(browsersList) { - return browsersList.reduce((browsers, browser)=>{ - const [family, versionString, versionStringTo] = browser.split(/ |-/); - const version = semverify(versionString); - const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [ - version - ]; - return versions.reduce((browsers, semver)=>{ - if (semver) { - browsers.push({ - family, - version: semver - }); - } - return browsers; - }, browsers); - }, []); -} -/** - * Request browsers list. - * @param options - Options to get browsers list. - * @returns Browser info objects. - */ function getBrowsersList(options = {}) { - const { browsers , ...browserslistOptions } = options; - const browsersList = browserslist__WEBPACK_IMPORTED_MODULE_0__(browsers, browserslistOptions); - const parsedBrowsers = parseBrowsersList(browsersList); - return parsedBrowsers; -} - -/** - * Compare two arrays. - * @param a - Array to compare. - * @param b - Array to compare. - * @param from - Index to start compare from. - * @returns Equals or not. - */ function compareArrays(a, b, from = 0) { - const len = a.length; - for(let i = from; i < len; i++){ - if (a[i] !== b[i]) { - return false; - } - } - return true; -} -/** - * Clone simple object. - * @param value - * @returns Object clone. - */ function clone(value) { - if (value === null || typeof value !== "object") { - return value; - } - /* eslint-disable */ const copy = Array.isArray(value) ? [] : {}; - let i; - for(i in value){ - copy[i] = clone(value[i]); - } - /* eslint-enable */ return copy; -} -/** - * Concat arrays. - * @param items - * @returns Concatinated arrays. - */ function concat(items) { - return [].concat(...items); -} - -/** - * Merge browser info object to map with versions. - * @param browsers - Browser info object to merge. - * @returns Merged browsers map. - */ function mergeBrowserVersions(browsers) { - const merge = new Map(); - browsers.forEach(({ family , version })=>{ - const versions = merge.get(family); - if (versions) { - const strVersion = version.join("."); - if (versions.every((_)=>_.join(".") !== strVersion)) { - versions.push(version); - } - return; - } - merge.set(family, [ - version - ]); - }); - merge.forEach((versions)=>{ - versions.sort((a, b)=>{ - for(const i in a){ - if (a[i] !== b[i]) { - return a[i] - b[i]; - } - } - return 0; - }); - }); - return merge; -} -/** - * Versions to ranged versions. - * @param versions - Semver versions list. - * @returns Ranged versions list. - */ function versionsListToRanges(versions) { - if (versions.length < 2) { - return versions; - } - const max = versions.length + 1; - const ranges = []; - let prev = null; - let current = versions[0]; - let major = [ - current[SemverPart.Major] - ]; - let minor = [ - current[SemverPart.Minor] - ]; - let patch = [ - current[SemverPart.Patch] - ]; - let part = null; - for(let i = 1; i < max; i++){ - prev = versions[i - 1]; - current = versions[i] || []; - for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){ - if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) { - part = p; - if (p === SemverPart.Major) { - major.push(current[SemverPart.Major]); - } else { - major = current[SemverPart.Major]; - } - if (p === SemverPart.Minor) { - minor.push(current[SemverPart.Minor]); - } else { - minor = current[SemverPart.Minor]; - } - if (p === SemverPart.Patch) { - patch.push(current[SemverPart.Patch]); - } else { - patch = current[SemverPart.Patch]; - } - break; - } - if (part === p || prev[p] !== current[p]) { - ranges.push([ - numbersToRanges(major), - numbersToRanges(minor), - numbersToRanges(patch) - ]); - major = [ - current[SemverPart.Major] - ]; - minor = [ - current[SemverPart.Minor] - ]; - patch = [ - current[SemverPart.Patch] - ]; - part = null; - break; - } - } - } - return ranges; -} - -function AstRegExpNode(body) { - return { - type: "RegExp", - body, - flags: "" - }; -} -function AlternativeNode(...expressions) { - const exps = concat(expressions).filter(Boolean); - if (exps.length === 1) { - return exps[0]; - } - return { - type: "Alternative", - expressions: exps - }; -} -function SimpleCharNode(value) { - return { - type: "Char", - kind: "simple", - value: String(value), - codePoint: NaN - }; -} -function MetaCharNode(value) { - return { - type: "Char", - kind: "meta", - value, - codePoint: NaN - }; -} -function ClassRangeNode(from, to) { - return { - type: "ClassRange", - from, - to - }; -} -function CharacterClassNode(...expressions) { - return { - type: "CharacterClass", - expressions: concat(expressions).filter(Boolean) - }; -} -function SimpleQuantifierNode(kind) { - return { - type: "Quantifier", - kind, - greedy: true - }; -} -function RangeQuantifierNode(from, to) { - return { - type: "Quantifier", - kind: "Range", - from, - to, - greedy: true - }; -} -function CapturingGroupNode(expression) { - return { - type: "Group", - capturing: true, - expression, - number: null - }; -} -function RepetitionNode(expression, quantifier) { - return { - type: "Repetition", - expression, - quantifier - }; -} -function DisjunctionNode(...expressions) { - const exprs = concat(expressions).filter(Boolean); - if (exprs.length === 1) { - return exprs[0]; - } - const disjunction = { - type: "Disjunction", - left: null, - right: exprs.pop() - }; - exprs.reduceRight((disjunction, expr, i)=>{ - if (i === 0) { - disjunction.left = expr; - return disjunction; - } - disjunction.left = { - type: "Disjunction", - left: null, - right: expr - }; - return disjunction.left; - }, disjunction); - return disjunction; -} -function DisjunctionCapturingGroupNode(...expressions) { - const expr = DisjunctionNode(...expressions); - if (expr.type === "Disjunction") { - return CapturingGroupNode(expr); - } - return expr; -} -function DigitPatternNode() { - return MetaCharNode("\\d"); -} -function NumberPatternNode(quantifier = SimpleQuantifierNode("+")) { - const numberPattern = RepetitionNode(DigitPatternNode(), quantifier); - return numberPattern; -} -function NumberCharsNode(value) { - return AlternativeNode(Array.from(String(value), SimpleCharNode)); -} - -/** - * Check node whether is number pattern. - * @param node - AST node to check. - * @returns Is number pattern or not. - */ function isNumberPatternNode(node) { - if (node.type === "Group" && node.expression.type === "Repetition") { - const { expression , quantifier } = node.expression; - return expression.type === "Char" && expression.value === "\\d" && quantifier.kind === "+" && quantifier.greedy; - } - return false; -} -/** - * Check node whether is char node. - * @param node - AST node to check. - * @param value - Value to compare. - * @returns Is char node or not. - */ function isCharNode(node, value) { - if (node && node.type === "Char") { - return typeof value === "undefined" || value instanceof RegExp && value.test(node.value) || String(value) === node.value; - } - return false; -} -/** - * Check node whether is digit range. - * @param node - AST node to check. - * @returns Is digit range or not. - */ function isDigitRangeNode(node) { - if (node.type === "CharacterClass" && node.expressions.length === 1) { - const [expression] = node.expressions; - return expression.type === "ClassRange" && isCharNode(expression.from, /\d/) && isCharNode(expression.to, /\d/); - } - return false; -} -/** - * Check node whether is expression. - * @param node - AST node to check. - * @returns Is expression node or not. - */ function isExpressionNode(node) { - return node.type !== "RegExp" && node.type !== "ClassRange" && node.type !== "Quantifier"; -} -function parseRegex(regex) { - return typeof regex === "string" ? regexp_tree__WEBPACK_IMPORTED_MODULE_1__.parse(regex.replace(/^([^/])/, "/$1").replace(/([^/])$/, "$1/")) : regex instanceof RegExp ? regexp_tree__WEBPACK_IMPORTED_MODULE_1__.parse(regex) : regex; -} -/** - * Get regex from string or AST. - * @param src - String or AST. - * @returns RegExp. - */ function toRegex(src) { - return typeof src === "string" ? new RegExp(src) : new RegExp(regexp_tree__WEBPACK_IMPORTED_MODULE_1__.generate(src.body), src.flags); -} -/** - * Get string from regex or AST. - * @param src - RegExp or AST. - * @returns String. - */ function toString(src) { - return typeof src === "string" ? src : src instanceof RegExp ? src.toString() : regexp_tree__WEBPACK_IMPORTED_MODULE_1__.generate(src); -} - -const classes = [ - "RegExp", - "Disjunction", - "Alternative", - "Assertion", - "Char", - "CharacterClass", - "ClassRange", - "Backreference", - "Group", - "Repetition", - "Quantifier" -]; -/** - * Create traversal visitors. - * @param visitors - * @returns Traversal handlers. - */ function visitors(visitors) { - const { every } = visitors; - if (!every) { - return visitors; - } - if (typeof every === "function") { - return { - // eslint-disable-next-line @typescript-eslint/naming-convention - "*": every, - ...visitors - }; - } - return classes.reduce((newVisitors, className)=>{ - const visitor = visitors[className]; - const visitorPre = visitor ? "pre" in visitor ? visitor.pre : visitor : null; - const visitorPost = visitor ? "post" in visitor ? visitor.post : null : null; - newVisitors[className] = { - pre (nodePath) { - if (every.pre(nodePath) !== false && visitorPre) { - return visitorPre(nodePath); - } - return true; - }, - post (nodePath) { - if (every.post(nodePath) !== false && visitorPost) { - return visitorPost(nodePath); - } - return true; - } - }; - return newVisitors; - }, {}); -} - -function optimizeRegex(regex) { - // Optimization requires filled codePoints - const regexAst = regexp_tree__WEBPACK_IMPORTED_MODULE_1__.optimize(parseRegex(toString(regex))).getAST(); - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, { - Group (nodePath) { - const { parent , node } = nodePath; - const { expression } = node; - node.capturing = true; - if (parent.type === "RegExp" || expression.type !== "Disjunction" && parent.type !== "Repetition" || expression.type === "Disjunction" && parent.type === "Disjunction") { - nodePath.replace(nodePath.node.expression); - } - } - }); - return regexAst; -} -/** - * Merge digits patterns if possible. - * @param a - * @param b - * @returns Merged node. - */ function mergeDigits(a, b) { - if (isCharNode(a) && isCharNode(b) && a.value === b.value) { - return b; - } - if (isCharNode(a, /\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) { - return { - ...b, - expressions: [ - { - ...b.expressions[0], - from: a - } - ] - }; - } - if (isDigitRangeNode(a) && isCharNode(b, /\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) { - return { - ...a, - expressions: [ - { - ...a.expressions[0], - to: b - } - ] - }; - } - return null; -} -/** - * Optimize segment number patterns. - * @param patterns - * @returns Optimized segment number patterns. - */ function optimizeSegmentNumberPatterns(patterns) { - return patterns.reduce((patterns, node)=>{ - const prevNode = patterns[patterns.length - 1]; - if (prevNode && node.type === "Alternative" && prevNode.type === "Alternative" && node.expressions.length === prevNode.expressions.length) { - const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{ - if (!exps) { - return exps; - } - const merged = mergeDigits(exp, node.expressions[i]); - if (merged) { - exps.unshift(merged); - } else { - return null; - } - return exps; - }, []); - if (merged) { - node.expressions = merged; - patterns.pop(); - } - } - patterns.push(node); - return patterns; - }, []); -} - -/** - * Transform number to digits array. - * @param num - Target number. - * @returns Digits array. - */ function numberToDigits(num) { - return Array.from(num.toString(), Number); -} - -/** - * Get digit pattern. - * @param digit - Ray start. - * @param includes - Include start digit or use next. - * @returns Digit pattern. - */ function rayRangeDigitPattern(digit, includes) { - const rangeStart = digit + Number(!includes); - if (rangeStart === 0) { - return DigitPatternNode(); - } - if (rangeStart === 9) { - return SimpleCharNode("9"); - } - if (rangeStart > 9) { - return null; - } - return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode("9"))); -} -/** - * Create numeric ray pattern. - * @param from - Start from this number. - * @returns Numeric ray pattern parts. - */ function rayToNumberPatterns(from) { - if (from === 0) { - return [ - NumberPatternNode() - ]; - } - const digits = numberToDigits(from); - const digitsCount = digits.length; - const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1)); - const zeros = digitsCount - 1; - if (from / Math.pow(10, zeros) === digits[0]) { - return [ - AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({ - length: zeros - }, DigitPatternNode)), - other - ]; - } - const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{ - const ri = digitsCount - i - 1; - const d = i === 0; - let prev = SimpleCharNode(""); - const nodes = digits.reduce((nodes, digit, j)=>{ - if (j < ri) { - nodes.push(SimpleCharNode(digit)); - } else if (prev) { - if (j > ri) { - nodes.push(DigitPatternNode()); - } else { - prev = rayRangeDigitPattern(digit, d); - if (prev) { - nodes.push(prev); - } else { - return []; - } - } - } - return nodes; - }, []); - if (nodes.length) { - topNodes.push(nodes); - } - return topNodes; - }, []); - const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_)); - numberPatterns.push(other); - return numberPatterns; -} - -/** - * Get digit pattern. - * @param from - Segment start. - * @param to - Segment end. - * @param zeros - Zeros to add as prefix. - * @returns Digit pattern. - */ function segmentRangeNumberPattern(from, to, zeros) { - if (to < from) { - return null; - } - const fromNode = SimpleCharNode(from); - const toNode = SimpleCharNode(to); - const zerosPrefix = typeof zeros === "number" && zeros > 0 ? Array.from({ - length: zeros - }, ()=>SimpleCharNode(0)) : []; - const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node; - if (from === to) { - return addPrefix(fromNode); - } - if (from === 0 && to === 9) { - return addPrefix(DigitPatternNode()); - } - if (to - from === 1) { - return addPrefix(CharacterClassNode(fromNode, toNode)); - } - return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode))); -} -/** - * Split segment range to decade ranges. - * @param from - Segment start. - * @param to - Segment end. - * @returns Ranges. - */ function splitToDecadeRanges(from, to) { - const ranges = []; - let num = from; - let decade = 1; - do { - decade *= 10; - if (num < decade) { - ranges.push([ - num, - Math.min(decade - 1, to) - ]); - num = decade; - } - }while (decade <= to); - return ranges; -} -/** - * Get common and diffs of two numbers (arrays of digits). - * @param a - Digits. - * @param b - Other digits. - * @returns Common part and diffs. - */ function splitCommonDiff(a, b) { - const len = a.length; - if (len !== b.length || a[0] !== b[0]) { - return null; - } - let common = a[0].toString(); - let currA = 0; - let currB = 0; - let diffA = ""; - let diffB = ""; - for(let i = 1; i < len; i++){ - currA = a[i]; - currB = b[i]; - if (currA === currB) { - common += currA; - } else { - diffA += currA; - diffB += currB; - } - } - return [ - common, - parseInt(diffA, 10), - parseInt(diffB, 10) - ]; -} -/** - * Get segment patterns. - * @param from - Segment start. - * @param to - Segment end. - * @param digitsInNumber - How many digits should be en number. Will be filled by zeros. - * @returns Segment patterns. - */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) { - const fromDigits = numberToDigits(from); - const digitsCount = fromDigits.length; - if (from < 10 && to < 10 || from === to) { - const zeros = digitsInNumber - digitsCount; - return [ - segmentRangeNumberPattern(from, to, zeros) - ]; - } - const toDigits = numberToDigits(to); - if (digitsCount !== toDigits.length) { - const decadeRanges = splitToDecadeRanges(from, to); - const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber))); - return parts; - } - const commonStart = splitCommonDiff(fromDigits, toDigits); - if (Array.isArray(commonStart)) { - const [common, from1, to1] = commonStart; - const digitsInNumber1 = digitsCount - common.length; - const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1); - return [ - AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts)) - ]; - } - const range = Array.from({ - length: digitsCount - 1 - }); - const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1); - const parts1 = [ - ...range.map((_, i)=>{ - const ri = digitsCount - i - 1; - const d = Number(i > 0); - return AlternativeNode(fromDigits.map((digit, j)=>{ - if (j < ri) { - return SimpleCharNode(digit); - } - if (j > ri) { - return segmentRangeNumberPattern(0, 9); - } - return segmentRangeNumberPattern(digit + d, 9); - })); - }), - // but output more readable - ...middleSegment ? [ - AlternativeNode(middleSegment, Array.from({ - length: digitsCount - 1 - }, ()=>DigitPatternNode())) - ] : [], - ...range.map((_, i)=>{ - const ri = digitsCount - i - 1; - const d = Number(i > 0); - return AlternativeNode(toDigits.map((digit, j)=>{ - if (j < ri) { - return SimpleCharNode(digit); - } - if (j > ri) { - return segmentRangeNumberPattern(0, 9); - } - return segmentRangeNumberPattern(0, digit - d); - })); - }) - ]; - return optimizeSegmentNumberPatterns(parts1); -} - -/** - * Get regex for given numeric range. - * @param from - Range start. - * @param to - Range end. - * @returns Range pattern. - */ function rangeToRegex(from, to = Infinity) { - if (from === Infinity) { - return NumberPatternNode(); - } - const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to); - const regex = DisjunctionCapturingGroupNode(numberPatterns); - return regex; -} - -/** - * Find matched versions. - * @param minVersion - Semver version. - * @param maxVersion - Semver version. - * @param bases - Base semver versions. - * @param options - Semver compare options. - * @returns Matched versions. - */ function findMatchedVersions(minVersion, maxVersion, bases, options) { - const compareOptions = { - ...options, - allowHigherVersions: true - }; - const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions); - const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions); - const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true; - return bases.filter(comparator); -} - -/** - * Get useragent regexes for given browsers. - * @param browsers - Browsers. - * @param options - Semver compare options. - * @param targetRegexes - Override default regexes. - * @returns User agent regexes. - */ function getRegexesForBrowsers(browsers, options, targetRegexes = ua_regexes_lite__WEBPACK_IMPORTED_MODULE_2__.regexes) { - const result = []; - let prevFamily = ""; - let prevRegexIsGlobal = false; - targetRegexes.forEach((regex)=>{ - const requestVersions = browsers.get(regex.family); - if (!requestVersions) { - return; - } - let { version , minVersion , maxVersion } = regex; - if (version) { - minVersion = version; - maxVersion = version; - } - let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options); - if (matchedVersions.length) { - // regex contains global patch - if (prevFamily === regex.family && prevRegexIsGlobal) { - version = undefined; - minVersion = undefined; - maxVersion = undefined; - matchedVersions = requestVersions; - result.pop(); - } - result.push({ - ...regex, - version, - minVersion, - maxVersion, - requestVersions, - matchedVersions - }); - } - prevRegexIsGlobal = !version && !minVersion && !maxVersion; - prevFamily = regex.family; - }); - return result; -} - -/** - * Compile regexes. - * @param regexes - Objects with info about compiled regexes. - * @returns Objects with info about compiled regexes. - */ function compileRegexes(regexes) { - return regexes.map(({ regexAst , ...regex })=>{ - const optimizedRegexAst = optimizeRegex(regexAst); - return { - ...regex, - regexAst: optimizedRegexAst, - regex: toRegex(optimizedRegexAst) - }; - }); -} -/** - * Compile regex. - * @param regexes - Objects with info about compiled regexes. - * @returns Compiled common regex. - */ function compileRegex(regexes) { - const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body)); - const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes))); - return toRegex(regexAst); -} - -/** - * Get number patterns count from the regex. - * @param regex - Target regex. - * @returns Number patterns count. - */ function getNumberPatternsCount(regex) { - const regexAst = parseRegex(regex); - let count = 0; - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, { - Group (nodePath) { - if (isNumberPatternNode(nodePath.node)) { - count++; - } - } - }); - return count; -} -function replaceNumberPatterns(regex, numbers, numberPatternsCount) { - let regexAst = parseRegex(regex); - const numbersToReplace = typeof numberPatternsCount === "number" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice(); - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, visitors({ - every () { - return Boolean(numbersToReplace.length); - }, - Group (nodePath) { - if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) { - if (regexAst === nodePath.node) { - regexAst = numbersToReplace.shift(); - } else { - nodePath.replace(numbersToReplace.shift()); - } - return false; - } - return true; - } - })); - return regexAst; -} -/** - * Get from regex part with number patterns. - * @param regex - Target regex. - * @param numberPatternsCount - Number patterns to extract. - * @returns Regex part with number patterns. - */ function getNumberPatternsPart(regex, numberPatternsCount) { - const regexAst = parseRegex(regex); - const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity); - const expressions = []; - let numbersCounter = 0; - let containsNumberPattern = false; - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, visitors({ - every: { - pre ({ node , parent }) { - if (node === regexAst) { - return true; - } - if (!isExpressionNode(node)) { - return false; - } - if (parent === regexAst) { - containsNumberPattern = false; - } - return numbersCounter < maxNumbersCount; - }, - post ({ node , parent }) { - if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) { - expressions.push(node); - } - } - }, - Group (nodePath) { - if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) { - containsNumberPattern = true; - numbersCounter++; - return false; - } - return true; - } - })); - if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) { - return getNumberPatternsPart(expressions[0], maxNumbersCount); - } - return expressions; -} -/** - * Ranged semver to regex patterns. - * @param rangedVersion - Ranged semver. - * @param options - Semver compare options. - * @returns Array of regex pattern. - */ function rangedSemverToRegex(rangedVersion, options) { - const { ignoreMinor , ignorePatch , allowHigherVersions } = options; - const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3; - if (allowHigherVersions) { - const numberPatterns = []; - let prevWasZero = true; - let d = 0; - let start = 0; - const createMapper = (i)=>(range, j)=>{ - if (j >= ignoreIndex) { - return NumberPatternNode(); - } - start = Array.isArray(range) ? range[0] : range; - if (j < i) { - return NumberCharsNode(start); - } - if (j > i) { - return NumberPatternNode(); - } - return rangeToRegex(start + d); - }; - for(let i = ignoreIndex - 1; i >= 0; i--){ - if (prevWasZero && !rangedVersion[i]) { - continue; - } - prevWasZero = false; - numberPatterns.push(rangedVersion.map(createMapper(i))); - d = 1; - } - return numberPatterns; - } - const numberPatterns1 = rangedVersion.map((range, i)=>{ - if (i >= ignoreIndex) { - return NumberPatternNode(); - } - if (Array.isArray(range)) { - return rangeToRegex(range[0], range[1]); - } - return NumberCharsNode(range); - }); - return [ - numberPatterns1 - ]; -} - -function applyVersionsToRegex(regex, versions, options) { - const { allowHigherVersions } = options; - const regexAst = parseRegex(regex); - const finalVersions = allowHigherVersions && versions.length ? [ - versions[0] - ] : versions; - const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1); - const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount); - const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount)))); - regexp_tree__WEBPACK_IMPORTED_MODULE_1__.traverse(regexAst, visitors({ - every (nodePath) { - if (!numberPatternsPart.length) { - return false; - } - if (nodePath.node === numberPatternsPart[0]) { - if (numberPatternsPart.length === 1) { - nodePath.replace(versionsPart); - } else { - nodePath.remove(); - } - numberPatternsPart.shift(); - } - return true; - } - })); - return regexAst; -} -/** - * Apply browser versions to info objects. - * @param browserRegexes - Objects with requested browser version and regex. - * @param options - Semver compare options. - * @returns Objects with requested browser version and regex special for this version. - */ function applyVersionsToRegexes(browserRegexes, options) { - return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{ - let regexAst = parseRegex(sourceRegex); - if (!version) { - regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), { - ...options, - allowHigherVersions: !maxVersion && options.allowHigherVersions - }); - } - return { - regex: null, - sourceRegex, - regexAst, - version, - maxVersion, - matchedVersions, - ...other - }; - }); -} - -const defaultOptions = { - ignoreMinor: false, - ignorePatch: true, - allowZeroSubversions: false, - allowHigherVersions: false -}; -/** - * Get source regexes objects from browserslist query. - * @param options - Browserslist and semver compare options. - * @returns Source regexes objects. - */ function getPreUserAgentRegexes(options = {}) { - const finalOptions = { - ...defaultOptions, - ...options - }; - const browsersList = getBrowsersList(finalOptions); - const mergedBrowsers = mergeBrowserVersions(browsersList); - const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions); - const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions); - return versionedRegexes; -} -/** - * Compile browserslist query to regexes. - * @param options - Browserslist and semver compare options. - * @returns Objects with info about compiled regexes. - */ function getUserAgentRegexes(options = {}) { - return compileRegexes(getPreUserAgentRegexes(options)); -} -/** - * Compile browserslist query to regex. - * @param options - Browserslist and semver compare options. - * @returns Compiled regex. - */ function getUserAgentRegex(options = {}) { - return compileRegex(getPreUserAgentRegexes(options)); -} - - -//# sourceMappingURL=index.js.map - - -/***/ }), - -/***/ "./node_modules/ua-regexes-lite/index.js": -/*!***********************************************!*\ - !*** ./node_modules/ua-regexes-lite/index.js ***! - \***********************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ regexes: () => (/* binding */ regexes) -/* harmony export */ }); -/** - * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex - */ - -/** @type {UserAgentRegex[]} */ -const regexes = [ - { - regex: /IE (\d+)\.(\d+)/, - family: 'ie', - maxVersion: [ - 7, - Infinity, - Infinity - ] - }, - /** - * IE can be in Compatability Mode (IE 7.0) - * so we need to check Trident version - */ - { - regex: /Trident\/4\.0/, - family: 'ie', - version: [ - 8, - 0, - 0 - ] - }, - { - regex: /Trident\/5\.0/, - family: 'ie', - version: [ - 9, - 0, - 0 - ] - }, - { - regex: /Trident\/6\.0/, - family: 'ie', - version: [ - 10, - 0, - 0 - ] - }, - { - regex: /Trident\/[78]\.0/, - family: 'ie', - version: [ - 11, - 0, - 0 - ] - }, - { - regex: /Edge?\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'edge' - }, - { - regex: /Firefox\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'firefox' - }, - { - regex: /Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'chrome' - }, - /** - * Ignore Edge with EdgeHTML engine. - */ - { - regex: /Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)([\d.]+$|.*Safari\/(?![\d.]+ Edge\/[\d.]+$))/, - family: 'chrome', - maxVersion: [ - 70, - Infinity, - Infinity - ] - }, - /** - * Safari on iPad have desktop-like useragent - * Some versions contains letter subversions - * GNOME Web (X11) is based on WebKit and should be detected as Safari - */ - { - regex: /(Maci|X11).+ Version\/(\d+)\.(\d+)([.,](\d+)|)( \(\w+\)|)( Mobile\/\w+|) Safari\//, - family: 'safari' - }, - /** - * Presto Opera - */ - { - regex: /Opera\/9\.80.+Version\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'opera', - maxVersion: [ - 12, - 15, - 0 - ] - }, - /** - * Chromium based Opera - */ - { - regex: /Chrome.+OPR\/(\d+)\.(\d+)\.(\d+)/, - family: 'opera', - minVersion: [ - 15, - 0, - 0 - ] - }, - { - regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/, - family: 'ios_saf' - }, - /** - * Ignore IE Mobile 11 - */ - { - regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\d+)[_.](\d+)([_.](\d+)|)/, - family: 'ios_saf', - version: [ - 7, - 0, - 3 - ] - }, - { - regex: /Opera Mini/, - family: 'op_mini' - }, - { - regex: /Android Donut/, - family: 'android', - version: [ - 1, - 2, - 0 - ] - }, - { - regex: /Android Eclair/, - family: 'android', - version: [ - 2, - 1, - 0 - ] - }, - { - regex: /Android Froyo/, - family: 'android', - version: [ - 2, - 2, - 0 - ] - }, - { - regex: /Android Gingerbread/, - family: 'android', - version: [ - 2, - 3, - 0 - ] - }, - { - regex: /Android Honeycomb/, - family: 'android', - version: [ - 3, - 0, - 0 - ] - }, - { - regex: /Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|)/, - family: 'android' - }, - /** - * Ignore IE Mobile 11 - */ - { - regex: /Android:?[ /-](\d+)(\.(\d+)|)(\.(\d+)|);(?! ARM; Trident)/, - family: 'android', - version: [ - 4, - 0, - 0 - ] - }, - { - regex: /PlayBook.+RIM Tablet OS (\d+)\.(\d+)\.(\d+)/, - family: 'bb' - }, - { - regex: /(Black[bB]erry|BB10).+Version\/(\d+)\.(\d+)\.(\d+)/, - family: 'bb' - }, - /** - * Presto Opera Mobile - */ - { - regex: /Opera\/.+Opera Mobi.+Version\/(\d+)\.(\d+)/, - family: 'op_mob', - maxVersion: [ - 12, - 16, - 0 - ] - }, - /** - * Chromium based Opera Mobile - */ - { - regex: /Mobile Safari.+OPR\/(\d+)\.(\d+)\.(\d+)/, - family: 'op_mob', - minVersion: [ - 14, - 0, - 0 - ] - }, - { - regex: /Android.+Firefox\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'and_ff' - }, - { - regex: /Android.+Chrom(ium|e)\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'and_chr' - }, - { - regex: /IEMobile[ /](\d+)\.(\d+)/, - family: 'ie_mob' - }, - { - regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\d+)\.(\d+)\.(\d+)/, - family: 'and_uc' - }, - { - regex: /SamsungBrowser\/(\d+)\.(\d+)/, - family: 'samsung' - }, - { - regex: /Android.+MQQBrowser\/(\d+)(\.(\d+)|)(\.(\d+)|)/, - family: 'and_qq' - }, - { - regex: /baidubrowser[/\s](\d+)(\.(\d+)|)(\.(\d+)|)/, - family: 'baidu' - }, - { - regex: /K[Aa][Ii]OS\/(\d+)\.(\d+)(\.(\d+)|)/, - family: 'kaios' - } -] - - -/***/ }), - -/***/ "./node_modules/node-releases/data/processed/envs.json": -/*!*************************************************************!*\ - !*** ./node_modules/node-releases/data/processed/envs.json ***! - \*************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = /*#__PURE__*/JSON.parse('[{"name":"nodejs","version":"0.2.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.3.8.0"},{"name":"nodejs","version":"0.3.0","date":"2011-08-26","lts":false,"security":false,"v8":"2.5.1.0"},{"name":"nodejs","version":"0.4.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.2.0"},{"name":"nodejs","version":"0.5.0","date":"2011-08-26","lts":false,"security":false,"v8":"3.1.8.25"},{"name":"nodejs","version":"0.6.0","date":"2011-11-04","lts":false,"security":false,"v8":"3.6.6.6"},{"name":"nodejs","version":"0.7.0","date":"2012-01-17","lts":false,"security":false,"v8":"3.8.6.0"},{"name":"nodejs","version":"0.8.0","date":"2012-06-22","lts":false,"security":false,"v8":"3.11.10.10"},{"name":"nodejs","version":"0.9.0","date":"2012-07-20","lts":false,"security":false,"v8":"3.11.10.15"},{"name":"nodejs","version":"0.10.0","date":"2013-03-11","lts":false,"security":false,"v8":"3.14.5.8"},{"name":"nodejs","version":"0.11.0","date":"2013-03-28","lts":false,"security":false,"v8":"3.17.13.0"},{"name":"nodejs","version":"0.12.0","date":"2015-02-06","lts":false,"security":false,"v8":"3.28.73.0"},{"name":"nodejs","version":"4.0.0","date":"2015-09-08","lts":false,"security":false,"v8":"4.5.103.30"},{"name":"nodejs","version":"4.1.0","date":"2015-09-17","lts":false,"security":false,"v8":"4.5.103.33"},{"name":"nodejs","version":"4.2.0","date":"2015-10-12","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.3.0","date":"2016-02-09","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.4.0","date":"2016-03-08","lts":"Argon","security":false,"v8":"4.5.103.35"},{"name":"nodejs","version":"4.5.0","date":"2016-08-16","lts":"Argon","security":false,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.6.0","date":"2016-09-27","lts":"Argon","security":true,"v8":"4.5.103.37"},{"name":"nodejs","version":"4.7.0","date":"2016-12-06","lts":"Argon","security":false,"v8":"4.5.103.43"},{"name":"nodejs","version":"4.8.0","date":"2017-02-21","lts":"Argon","security":false,"v8":"4.5.103.45"},{"name":"nodejs","version":"4.9.0","date":"2018-03-28","lts":"Argon","security":true,"v8":"4.5.103.53"},{"name":"nodejs","version":"5.0.0","date":"2015-10-29","lts":false,"security":false,"v8":"4.6.85.28"},{"name":"nodejs","version":"5.1.0","date":"2015-11-17","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.2.0","date":"2015-12-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.3.0","date":"2015-12-15","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.4.0","date":"2016-01-06","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.5.0","date":"2016-01-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.6.0","date":"2016-02-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.7.0","date":"2016-02-23","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.8.0","date":"2016-03-09","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.9.0","date":"2016-03-16","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.10.0","date":"2016-04-01","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.11.0","date":"2016-04-21","lts":false,"security":false,"v8":"4.6.85.31"},{"name":"nodejs","version":"5.12.0","date":"2016-06-23","lts":false,"security":false,"v8":"4.6.85.32"},{"name":"nodejs","version":"6.0.0","date":"2016-04-26","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.1.0","date":"2016-05-05","lts":false,"security":false,"v8":"5.0.71.35"},{"name":"nodejs","version":"6.2.0","date":"2016-05-17","lts":false,"security":false,"v8":"5.0.71.47"},{"name":"nodejs","version":"6.3.0","date":"2016-07-06","lts":false,"security":false,"v8":"5.0.71.52"},{"name":"nodejs","version":"6.4.0","date":"2016-08-12","lts":false,"security":false,"v8":"5.0.71.60"},{"name":"nodejs","version":"6.5.0","date":"2016-08-26","lts":false,"security":false,"v8":"5.1.281.81"},{"name":"nodejs","version":"6.6.0","date":"2016-09-14","lts":false,"security":false,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.7.0","date":"2016-09-27","lts":false,"security":true,"v8":"5.1.281.83"},{"name":"nodejs","version":"6.8.0","date":"2016-10-12","lts":false,"security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.9.0","date":"2016-10-18","lts":"Boron","security":false,"v8":"5.1.281.84"},{"name":"nodejs","version":"6.10.0","date":"2017-02-21","lts":"Boron","security":false,"v8":"5.1.281.93"},{"name":"nodejs","version":"6.11.0","date":"2017-06-06","lts":"Boron","security":false,"v8":"5.1.281.102"},{"name":"nodejs","version":"6.12.0","date":"2017-11-06","lts":"Boron","security":false,"v8":"5.1.281.108"},{"name":"nodejs","version":"6.13.0","date":"2018-02-10","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.14.0","date":"2018-03-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.15.0","date":"2018-11-27","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.16.0","date":"2018-12-26","lts":"Boron","security":false,"v8":"5.1.281.111"},{"name":"nodejs","version":"6.17.0","date":"2019-02-28","lts":"Boron","security":true,"v8":"5.1.281.111"},{"name":"nodejs","version":"7.0.0","date":"2016-10-25","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.1.0","date":"2016-11-08","lts":false,"security":false,"v8":"5.4.500.36"},{"name":"nodejs","version":"7.2.0","date":"2016-11-22","lts":false,"security":false,"v8":"5.4.500.43"},{"name":"nodejs","version":"7.3.0","date":"2016-12-20","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.4.0","date":"2017-01-04","lts":false,"security":false,"v8":"5.4.500.45"},{"name":"nodejs","version":"7.5.0","date":"2017-01-31","lts":false,"security":false,"v8":"5.4.500.48"},{"name":"nodejs","version":"7.6.0","date":"2017-02-21","lts":false,"security":false,"v8":"5.5.372.40"},{"name":"nodejs","version":"7.7.0","date":"2017-02-28","lts":false,"security":false,"v8":"5.5.372.41"},{"name":"nodejs","version":"7.8.0","date":"2017-03-29","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.9.0","date":"2017-04-11","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"7.10.0","date":"2017-05-02","lts":false,"security":false,"v8":"5.5.372.43"},{"name":"nodejs","version":"8.0.0","date":"2017-05-30","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.1.0","date":"2017-06-08","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.2.0","date":"2017-07-19","lts":false,"security":false,"v8":"5.8.283.41"},{"name":"nodejs","version":"8.3.0","date":"2017-08-08","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.4.0","date":"2017-08-15","lts":false,"security":false,"v8":"6.0.286.52"},{"name":"nodejs","version":"8.5.0","date":"2017-09-12","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.6.0","date":"2017-09-26","lts":false,"security":false,"v8":"6.0.287.53"},{"name":"nodejs","version":"8.7.0","date":"2017-10-11","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.8.0","date":"2017-10-24","lts":false,"security":false,"v8":"6.1.534.42"},{"name":"nodejs","version":"8.9.0","date":"2017-10-31","lts":"Carbon","security":false,"v8":"6.1.534.46"},{"name":"nodejs","version":"8.10.0","date":"2018-03-06","lts":"Carbon","security":false,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.11.0","date":"2018-03-28","lts":"Carbon","security":true,"v8":"6.2.414.50"},{"name":"nodejs","version":"8.12.0","date":"2018-09-10","lts":"Carbon","security":false,"v8":"6.2.414.66"},{"name":"nodejs","version":"8.13.0","date":"2018-11-20","lts":"Carbon","security":false,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.14.0","date":"2018-11-27","lts":"Carbon","security":true,"v8":"6.2.414.72"},{"name":"nodejs","version":"8.15.0","date":"2018-12-26","lts":"Carbon","security":false,"v8":"6.2.414.75"},{"name":"nodejs","version":"8.16.0","date":"2019-04-16","lts":"Carbon","security":false,"v8":"6.2.414.77"},{"name":"nodejs","version":"8.17.0","date":"2019-12-17","lts":"Carbon","security":true,"v8":"6.2.414.78"},{"name":"nodejs","version":"9.0.0","date":"2017-10-31","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.1.0","date":"2017-11-07","lts":false,"security":false,"v8":"6.2.414.32"},{"name":"nodejs","version":"9.2.0","date":"2017-11-14","lts":false,"security":false,"v8":"6.2.414.44"},{"name":"nodejs","version":"9.3.0","date":"2017-12-12","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.4.0","date":"2018-01-10","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.5.0","date":"2018-01-31","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.6.0","date":"2018-02-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.7.0","date":"2018-03-01","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.8.0","date":"2018-03-07","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.9.0","date":"2018-03-21","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.10.0","date":"2018-03-28","lts":false,"security":true,"v8":"6.2.414.46"},{"name":"nodejs","version":"9.11.0","date":"2018-04-04","lts":false,"security":false,"v8":"6.2.414.46"},{"name":"nodejs","version":"10.0.0","date":"2018-04-24","lts":false,"security":false,"v8":"6.6.346.24"},{"name":"nodejs","version":"10.1.0","date":"2018-05-08","lts":false,"security":false,"v8":"6.6.346.27"},{"name":"nodejs","version":"10.2.0","date":"2018-05-23","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.3.0","date":"2018-05-29","lts":false,"security":false,"v8":"6.6.346.32"},{"name":"nodejs","version":"10.4.0","date":"2018-06-06","lts":false,"security":false,"v8":"6.7.288.43"},{"name":"nodejs","version":"10.5.0","date":"2018-06-20","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.6.0","date":"2018-07-04","lts":false,"security":false,"v8":"6.7.288.46"},{"name":"nodejs","version":"10.7.0","date":"2018-07-18","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.8.0","date":"2018-08-01","lts":false,"security":false,"v8":"6.7.288.49"},{"name":"nodejs","version":"10.9.0","date":"2018-08-15","lts":false,"security":false,"v8":"6.8.275.24"},{"name":"nodejs","version":"10.10.0","date":"2018-09-06","lts":false,"security":false,"v8":"6.8.275.30"},{"name":"nodejs","version":"10.11.0","date":"2018-09-19","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.12.0","date":"2018-10-10","lts":false,"security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.13.0","date":"2018-10-30","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.14.0","date":"2018-11-27","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.15.0","date":"2018-12-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.16.0","date":"2019-05-28","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.17.0","date":"2019-10-22","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.18.0","date":"2019-12-17","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.19.0","date":"2020-02-05","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.20.0","date":"2020-03-26","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.21.0","date":"2020-06-02","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.22.0","date":"2020-07-21","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.23.0","date":"2020-10-27","lts":"Dubnium","security":false,"v8":"6.8.275.32"},{"name":"nodejs","version":"10.24.0","date":"2021-02-23","lts":"Dubnium","security":true,"v8":"6.8.275.32"},{"name":"nodejs","version":"11.0.0","date":"2018-10-23","lts":false,"security":false,"v8":"7.0.276.28"},{"name":"nodejs","version":"11.1.0","date":"2018-10-30","lts":false,"security":false,"v8":"7.0.276.32"},{"name":"nodejs","version":"11.2.0","date":"2018-11-15","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.3.0","date":"2018-11-27","lts":false,"security":true,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.4.0","date":"2018-12-07","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.5.0","date":"2018-12-18","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.6.0","date":"2018-12-26","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.7.0","date":"2019-01-17","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.8.0","date":"2019-01-24","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.9.0","date":"2019-01-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.10.0","date":"2019-02-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.11.0","date":"2019-03-05","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.12.0","date":"2019-03-14","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.13.0","date":"2019-03-28","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.14.0","date":"2019-04-10","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"11.15.0","date":"2019-04-30","lts":false,"security":false,"v8":"7.0.276.38"},{"name":"nodejs","version":"12.0.0","date":"2019-04-23","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.1.0","date":"2019-04-29","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.2.0","date":"2019-05-07","lts":false,"security":false,"v8":"7.4.288.21"},{"name":"nodejs","version":"12.3.0","date":"2019-05-21","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.4.0","date":"2019-06-04","lts":false,"security":false,"v8":"7.4.288.27"},{"name":"nodejs","version":"12.5.0","date":"2019-06-26","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.6.0","date":"2019-07-03","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.7.0","date":"2019-07-23","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.8.0","date":"2019-08-06","lts":false,"security":false,"v8":"7.5.288.22"},{"name":"nodejs","version":"12.9.0","date":"2019-08-20","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.10.0","date":"2019-09-04","lts":false,"security":false,"v8":"7.6.303.29"},{"name":"nodejs","version":"12.11.0","date":"2019-09-25","lts":false,"security":false,"v8":"7.7.299.11"},{"name":"nodejs","version":"12.12.0","date":"2019-10-11","lts":false,"security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.13.0","date":"2019-10-21","lts":"Erbium","security":false,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.14.0","date":"2019-12-17","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.15.0","date":"2020-02-05","lts":"Erbium","security":true,"v8":"7.7.299.13"},{"name":"nodejs","version":"12.16.0","date":"2020-02-11","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.17.0","date":"2020-05-26","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.18.0","date":"2020-06-02","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.19.0","date":"2020-10-06","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.20.0","date":"2020-11-24","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.21.0","date":"2021-02-23","lts":"Erbium","security":true,"v8":"7.8.279.23"},{"name":"nodejs","version":"12.22.0","date":"2021-03-30","lts":"Erbium","security":false,"v8":"7.8.279.23"},{"name":"nodejs","version":"13.0.0","date":"2019-10-22","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.1.0","date":"2019-11-05","lts":false,"security":false,"v8":"7.8.279.17"},{"name":"nodejs","version":"13.2.0","date":"2019-11-21","lts":false,"security":false,"v8":"7.9.317.23"},{"name":"nodejs","version":"13.3.0","date":"2019-12-03","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.4.0","date":"2019-12-17","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.5.0","date":"2019-12-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.6.0","date":"2020-01-07","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.7.0","date":"2020-01-21","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.8.0","date":"2020-02-05","lts":false,"security":true,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.9.0","date":"2020-02-18","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.10.0","date":"2020-03-04","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.11.0","date":"2020-03-12","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.12.0","date":"2020-03-26","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.13.0","date":"2020-04-14","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"13.14.0","date":"2020-04-29","lts":false,"security":false,"v8":"7.9.317.25"},{"name":"nodejs","version":"14.0.0","date":"2020-04-21","lts":false,"security":false,"v8":"8.1.307.30"},{"name":"nodejs","version":"14.1.0","date":"2020-04-29","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.2.0","date":"2020-05-05","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.3.0","date":"2020-05-19","lts":false,"security":false,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.4.0","date":"2020-06-02","lts":false,"security":true,"v8":"8.1.307.31"},{"name":"nodejs","version":"14.5.0","date":"2020-06-30","lts":false,"security":false,"v8":"8.3.110.9"},{"name":"nodejs","version":"14.6.0","date":"2020-07-20","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.7.0","date":"2020-07-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.8.0","date":"2020-08-11","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.9.0","date":"2020-08-27","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.10.0","date":"2020-09-08","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.11.0","date":"2020-09-15","lts":false,"security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.12.0","date":"2020-09-22","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.13.0","date":"2020-09-29","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.14.0","date":"2020-10-15","lts":false,"security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.15.0","date":"2020-10-27","lts":"Fermium","security":false,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.16.0","date":"2021-02-23","lts":"Fermium","security":true,"v8":"8.4.371.19"},{"name":"nodejs","version":"14.17.0","date":"2021-05-11","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.18.0","date":"2021-09-28","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.19.0","date":"2022-02-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.20.0","date":"2022-07-07","lts":"Fermium","security":true,"v8":"8.4.371.23"},{"name":"nodejs","version":"14.21.0","date":"2022-11-01","lts":"Fermium","security":false,"v8":"8.4.371.23"},{"name":"nodejs","version":"15.0.0","date":"2020-10-20","lts":false,"security":false,"v8":"8.6.395.16"},{"name":"nodejs","version":"15.1.0","date":"2020-11-04","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.2.0","date":"2020-11-10","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.3.0","date":"2020-11-24","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.4.0","date":"2020-12-09","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.5.0","date":"2020-12-22","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.6.0","date":"2021-01-14","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.7.0","date":"2021-01-25","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.8.0","date":"2021-02-02","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.9.0","date":"2021-02-18","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.10.0","date":"2021-02-23","lts":false,"security":true,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.11.0","date":"2021-03-03","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.12.0","date":"2021-03-17","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.13.0","date":"2021-03-31","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"15.14.0","date":"2021-04-06","lts":false,"security":false,"v8":"8.6.395.17"},{"name":"nodejs","version":"16.0.0","date":"2021-04-20","lts":false,"security":false,"v8":"9.0.257.17"},{"name":"nodejs","version":"16.1.0","date":"2021-05-04","lts":false,"security":false,"v8":"9.0.257.24"},{"name":"nodejs","version":"16.2.0","date":"2021-05-19","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.3.0","date":"2021-06-03","lts":false,"security":false,"v8":"9.0.257.25"},{"name":"nodejs","version":"16.4.0","date":"2021-06-23","lts":false,"security":false,"v8":"9.1.269.36"},{"name":"nodejs","version":"16.5.0","date":"2021-07-14","lts":false,"security":false,"v8":"9.1.269.38"},{"name":"nodejs","version":"16.6.0","date":"2021-07-29","lts":false,"security":true,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.7.0","date":"2021-08-18","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.8.0","date":"2021-08-25","lts":false,"security":false,"v8":"9.2.230.21"},{"name":"nodejs","version":"16.9.0","date":"2021-09-07","lts":false,"security":false,"v8":"9.3.345.16"},{"name":"nodejs","version":"16.10.0","date":"2021-09-22","lts":false,"security":false,"v8":"9.3.345.19"},{"name":"nodejs","version":"16.11.0","date":"2021-10-08","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.12.0","date":"2021-10-20","lts":false,"security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.13.0","date":"2021-10-26","lts":"Gallium","security":false,"v8":"9.4.146.19"},{"name":"nodejs","version":"16.14.0","date":"2022-02-08","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.15.0","date":"2022-04-26","lts":"Gallium","security":false,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.16.0","date":"2022-07-07","lts":"Gallium","security":true,"v8":"9.4.146.24"},{"name":"nodejs","version":"16.17.0","date":"2022-08-16","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.18.0","date":"2022-10-12","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.19.0","date":"2022-12-13","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"16.20.0","date":"2023-03-28","lts":"Gallium","security":false,"v8":"9.4.146.26"},{"name":"nodejs","version":"17.0.0","date":"2021-10-19","lts":false,"security":false,"v8":"9.5.172.21"},{"name":"nodejs","version":"17.1.0","date":"2021-11-09","lts":false,"security":false,"v8":"9.5.172.25"},{"name":"nodejs","version":"17.2.0","date":"2021-11-30","lts":false,"security":false,"v8":"9.6.180.14"},{"name":"nodejs","version":"17.3.0","date":"2021-12-17","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.4.0","date":"2022-01-18","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.5.0","date":"2022-02-10","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.6.0","date":"2022-02-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.7.0","date":"2022-03-09","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.8.0","date":"2022-03-22","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"17.9.0","date":"2022-04-07","lts":false,"security":false,"v8":"9.6.180.15"},{"name":"nodejs","version":"18.0.0","date":"2022-04-18","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.1.0","date":"2022-05-03","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.2.0","date":"2022-05-17","lts":false,"security":false,"v8":"10.1.124.8"},{"name":"nodejs","version":"18.3.0","date":"2022-06-02","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.4.0","date":"2022-06-16","lts":false,"security":false,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.5.0","date":"2022-07-06","lts":false,"security":true,"v8":"10.2.154.4"},{"name":"nodejs","version":"18.6.0","date":"2022-07-13","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.7.0","date":"2022-07-26","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.8.0","date":"2022-08-24","lts":false,"security":false,"v8":"10.2.154.13"},{"name":"nodejs","version":"18.9.0","date":"2022-09-07","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.10.0","date":"2022-09-28","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.11.0","date":"2022-10-13","lts":false,"security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.12.0","date":"2022-10-25","lts":"Hydrogen","security":false,"v8":"10.2.154.15"},{"name":"nodejs","version":"18.13.0","date":"2023-01-05","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.14.0","date":"2023-02-01","lts":"Hydrogen","security":false,"v8":"10.2.154.23"},{"name":"nodejs","version":"18.15.0","date":"2023-03-05","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.16.0","date":"2023-04-12","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.17.0","date":"2023-07-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.18.0","date":"2023-09-18","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"18.19.0","date":"2023-11-29","lts":"Hydrogen","security":false,"v8":"10.2.154.26"},{"name":"nodejs","version":"19.0.0","date":"2022-10-17","lts":false,"security":false,"v8":"10.7.193.13"},{"name":"nodejs","version":"19.1.0","date":"2022-11-14","lts":false,"security":false,"v8":"10.7.193.20"},{"name":"nodejs","version":"19.2.0","date":"2022-11-29","lts":false,"security":false,"v8":"10.8.168.20"},{"name":"nodejs","version":"19.3.0","date":"2022-12-14","lts":false,"security":false,"v8":"10.8.168.21"},{"name":"nodejs","version":"19.4.0","date":"2023-01-05","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.5.0","date":"2023-01-24","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.6.0","date":"2023-02-01","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.7.0","date":"2023-02-21","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.8.0","date":"2023-03-14","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"19.9.0","date":"2023-04-10","lts":false,"security":false,"v8":"10.8.168.25"},{"name":"nodejs","version":"20.0.0","date":"2023-04-17","lts":false,"security":false,"v8":"11.3.244.4"},{"name":"nodejs","version":"20.1.0","date":"2023-05-03","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.2.0","date":"2023-05-16","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.3.0","date":"2023-06-08","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.4.0","date":"2023-07-04","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.5.0","date":"2023-07-19","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.6.0","date":"2023-08-23","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.7.0","date":"2023-09-18","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.8.0","date":"2023-09-28","lts":false,"security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.9.0","date":"2023-10-24","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"20.10.0","date":"2023-11-22","lts":"Iron","security":false,"v8":"11.3.244.8"},{"name":"nodejs","version":"21.0.0","date":"2023-10-17","lts":false,"security":false,"v8":"11.8.172.13"},{"name":"nodejs","version":"21.1.0","date":"2023-10-24","lts":false,"security":false,"v8":"11.8.172.15"},{"name":"nodejs","version":"21.2.0","date":"2023-11-14","lts":false,"security":false,"v8":"11.8.172.17"},{"name":"nodejs","version":"21.3.0","date":"2023-11-30","lts":false,"security":false,"v8":"11.8.172.17"}]'); - -/***/ }), - -/***/ "./node_modules/node-releases/data/release-schedule/release-schedule.json": -/*!********************************************************************************!*\ - !*** ./node_modules/node-releases/data/release-schedule/release-schedule.json ***! - \********************************************************************************/ -/***/ ((module) => { - -"use strict"; -module.exports = /*#__PURE__*/JSON.parse('{"v0.8":{"start":"2012-06-25","end":"2014-07-31"},"v0.10":{"start":"2013-03-11","end":"2016-10-31"},"v0.12":{"start":"2015-02-06","end":"2016-12-31"},"v4":{"start":"2015-09-08","lts":"2015-10-12","maintenance":"2017-04-01","end":"2018-04-30","codename":"Argon"},"v5":{"start":"2015-10-29","maintenance":"2016-04-30","end":"2016-06-30"},"v6":{"start":"2016-04-26","lts":"2016-10-18","maintenance":"2018-04-30","end":"2019-04-30","codename":"Boron"},"v7":{"start":"2016-10-25","maintenance":"2017-04-30","end":"2017-06-30"},"v8":{"start":"2017-05-30","lts":"2017-10-31","maintenance":"2019-01-01","end":"2019-12-31","codename":"Carbon"},"v9":{"start":"2017-10-01","maintenance":"2018-04-01","end":"2018-06-30"},"v10":{"start":"2018-04-24","lts":"2018-10-30","maintenance":"2020-05-19","end":"2021-04-30","codename":"Dubnium"},"v11":{"start":"2018-10-23","maintenance":"2019-04-22","end":"2019-06-01"},"v12":{"start":"2019-04-23","lts":"2019-10-21","maintenance":"2020-11-30","end":"2022-04-30","codename":"Erbium"},"v13":{"start":"2019-10-22","maintenance":"2020-04-01","end":"2020-06-01"},"v14":{"start":"2020-04-21","lts":"2020-10-27","maintenance":"2021-10-19","end":"2023-04-30","codename":"Fermium"},"v15":{"start":"2020-10-20","maintenance":"2021-04-01","end":"2021-06-01"},"v16":{"start":"2021-04-20","lts":"2021-10-26","maintenance":"2022-10-18","end":"2023-09-11","codename":"Gallium"},"v17":{"start":"2021-10-19","maintenance":"2022-04-01","end":"2022-06-01"},"v18":{"start":"2022-04-19","lts":"2022-10-25","maintenance":"2023-10-18","end":"2025-04-30","codename":"Hydrogen"},"v19":{"start":"2022-10-18","maintenance":"2023-04-01","end":"2023-06-01"},"v20":{"start":"2023-04-18","lts":"2023-10-24","maintenance":"2024-10-22","end":"2026-04-30","codename":"Iron"},"v21":{"start":"2023-10-17","maintenance":"2024-04-01","end":"2024-06-01"},"v22":{"start":"2024-04-23","lts":"2024-10-29","maintenance":"2025-10-21","end":"2027-04-30","codename":""},"v23":{"start":"2024-10-15","maintenance":"2025-04-01","end":"2025-06-01"},"v24":{"start":"2025-04-22","lts":"2025-10-28","maintenance":"2026-10-20","end":"2028-04-30","codename":""}}'); - -/***/ }) - -}]); -//# sourceMappingURL=core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map?v=7a842c81009148a2953a \ No newline at end of file diff --git a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map b/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map deleted file mode 100644 index bbc1d5f7bfe09..0000000000000 --- a/dist/core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"core_src_utils_RedirectUnsupportedBrowsers_js-core_src_utils_RedirectUnsupportedBrowsers_js.js?v=7a842c81009148a2953a","mappings":";;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7EA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC9CA;;;;;;;;;;;ACAA;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3ZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AClOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3NA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7GA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpVA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjMA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC/FA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AChHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACrFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC53CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC1XA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACpLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACvFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACxTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;ACzaA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACPA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;ACjoCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":["webpack:///nextcloud/node_modules/@nextcloud/browserslist-config/browserlist.config.js","webpack:///nextcloud/core/src/logger.js","webpack:///nextcloud/core/src/services/BrowserStorageService.js","webpack:///nextcloud/core/src/services/BrowsersListService.js","webpack:///nextcloud/core/src/utils/RedirectUnsupportedBrowsers.js","webpack:///nextcloud/node_modules/browserslist/browser.js","webpack:///nextcloud/node_modules/browserslist/error.js","webpack:///nextcloud/node_modules/browserslist/index.js","webpack:///nextcloud/node_modules/browserslist/parse.js","webpack:///nextcloud/node_modules/caniuse-lite/data/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/data/browsers.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/agents.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browserVersions.js","webpack:///nextcloud/node_modules/caniuse-lite/dist/unpacker/browsers.js","webpack:///nextcloud/node_modules/electron-to-chromium/versions.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/runtime/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-dotall-s-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-named-capturing-groups-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/compat-x-flag-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/compat-transpiler/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/generator/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa-minimizer.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/dfa/dfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/builders.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-from-regexp.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa-state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/nfa/nfa.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/special-symbols.js","webpack:///nextcloud/node_modules/regexp-tree/dist/interpreter/finite-automaton/state.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-case-insensitive-lowercase-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-classranges-to-chars-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-meta-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-class-to-single-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-code-to-simple-char-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-escape-unescape-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/char-surrogate-pair-to-single-unicode-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/combine-repeating-patterns-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/disjunction-remove-duplicates-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/group-single-chars-to-char-class.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifier-range-to-symbol-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/quantifiers-merge-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/remove-empty-group-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/optimizer/transforms/ungroup-transform.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/generated/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/parser/unicode/parser-unicode-properties.js","webpack:///nextcloud/node_modules/regexp-tree/dist/regexp-tree.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/transform/utils.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/index.js","webpack:///nextcloud/node_modules/regexp-tree/dist/traverse/node-path.js","webpack:///nextcloud/node_modules/regexp-tree/dist/utils/clone.js","webpack:///nextcloud/node_modules/regexp-tree/index.js","webpack:///nextcloud/ignored|/home/admin/git/server/node_modules/browserslist|path","webpack:///nextcloud/node_modules/browserslist-useragent-regexp/dist/index.js","webpack:///nextcloud/node_modules/ua-regexes-lite/index.js"],"sourcesContent":["module.exports = [\n '>0.25%',\n 'not op_mini all',\n 'not dead',\n 'Firefox ESR',\n];\n","/**\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth';\nimport { getLoggerBuilder } from '@nextcloud/logger';\nconst getLogger = user => {\n if (user === null) {\n return getLoggerBuilder().setApp('core').build();\n }\n return getLoggerBuilder().setApp('core').setUid(user.uid).build();\n};\nexport default getLogger(getCurrentUser());","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getBuilder } from '@nextcloud/browser-storage';\nexport default getBuilder('core').clearOnLogout().persist().build();","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getUserAgentRegex } from 'browserslist-useragent-regexp';\n// eslint-disable-next-line n/no-extraneous-import\nimport browserslist from 'browserslist';\nimport browserslistConfig from '@nextcloud/browserslist-config';\n\n// Generate a regex that matches user agents to detect incompatible browsers\nexport const supportedBrowsersRegExp = getUserAgentRegex({\n allowHigherVersions: true,\n browsers: browserslistConfig\n});\nexport const supportedBrowsers = browserslist(browserslistConfig);","/**\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router';\nimport { supportedBrowsersRegExp } from '../services/BrowsersListService.js';\nimport browserStorage from '../services/BrowserStorageService.js';\nimport logger from '../logger.js';\nexport const browserStorageKey = 'unsupported-browser-ignore';\nconst redirectPath = generateUrl('/unsupported');\nconst isBrowserOverridden = browserStorage.getItem(browserStorageKey) === 'true';\n\n/**\n * Test the current browser user agent against our official browserslist config\n * and redirect if unsupported\n */\nexport const testSupportedBrowser = function () {\n if (supportedBrowsersRegExp.test(navigator.userAgent)) {\n logger.debug('this browser is officially supported ! 🚀');\n return;\n }\n\n // If incompatible BUT ignored, let's keep going\n if (isBrowserOverridden) {\n logger.debug('this browser is NOT supported but has been manually overridden ! ⚠️');\n return;\n }\n\n // If incompatible, NOT overridden AND NOT already on the warning page,\n // redirect to the unsupported warning page\n if (window.location.pathname.indexOf(redirectPath) === -1) {\n const redirectUrl = window.location.href.replace(window.location.origin, '');\n const base64Param = Buffer.from(redirectUrl).toString('base64');\n history.pushState(null, null, \"\".concat(redirectPath, \"?redirect_url=\").concat(base64Param));\n window.location.reload();\n }\n};","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially)\\s+)?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","module.exports={A:{A:{J:0,D:0,E:0.0130265,F:0.0390796,A:0,B:0.442902,TC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TC\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{TC:962323200,J:998870400,D:1161129600,E:1237420800,F:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.007984,\"1\":0.015968,\"2\":0.015968,\"3\":0.011976,\"4\":0.015968,\"5\":0.015968,\"6\":0.035928,\"7\":0.267464,\"8\":3.72853,C:0,K:0,L:0,G:0.003992,M:0,N:0.003992,O:0.011976,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0.35928,X:0,Y:0,Z:0,a:0,b:0.011976,c:0,d:0,e:0,f:0,g:0,h:0,i:0.015968,j:0,k:0,l:0,m:0,n:0,o:0,p:0.003992,v:0.007984,w:0.011976,x:0.067864,y:0.007984,z:0.007984,H:0.522952},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1680825600,\"1\":1683158400,\"2\":1685664000,\"3\":1689897600,\"4\":1692576000,\"5\":1694649600,\"6\":1697155200,\"7\":1698969600,\"8\":1701993600,C:1438128000,K:1447286400,L:1470096000,G:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,o:1661990400,p:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,H:1706227200},D:{C:\"ms\",K:\"ms\",L:\"ms\",G:\"ms\",M:\"ms\",N:\"ms\",O:\"ms\"}},C:{A:{\"0\":0.003992,\"1\":0.007984,\"2\":0.011976,\"3\":0.467064,\"4\":0.003992,\"5\":0.007984,\"6\":0.087824,\"7\":0.227544,\"8\":0.231536,\"9\":0,UC:0,\"7B\":0,I:0.003992,J:0,D:0,E:0,F:0,A:0,B:0.027944,C:0.03992,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0.007984,VB:0.007984,WB:0.003992,XB:0,YB:0,ZB:0,aB:0,bB:0.003992,cB:0,dB:0.055888,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.01996,iB:0,jB:0,\"8B\":0.003992,kB:0,\"9B\":0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0.003992,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0.015968,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0.007984,Y:0,Z:0,a:0.011976,b:0,c:0,d:0.007984,e:0,f:0,g:0,h:0,i:0,j:0,k:0.011976,l:0.027944,m:0.031936,n:0.003992,o:0.003992,p:0,v:0.003992,w:0.007984,x:0.007984,y:0.003992,z:0.003992,H:1.2455,\"1B\":0.275448,BC:0,CC:0,DC:0,VC:0,WC:0,XC:0},B:\"moz\",C:[\"UC\",\"7B\",\"WC\",\"XC\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\",\"VC\"],E:\"Firefox\",F:{\"0\":1681171200,\"1\":1683590400,\"2\":1686009600,\"3\":1688428800,\"4\":1690848000,\"5\":1693267200,\"6\":1695686400,\"7\":1698105600,\"8\":1700524800,\"9\":1308614400,UC:1161648000,\"7B\":1213660800,WC:1246320000,XC:1264032000,I:1300752000,J:1313452800,D:1317081600,E:1317081600,F:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,G:1342483200,M:1346112000,N:1349740800,O:1353628800,AB:1357603200,q:1361232000,r:1364860800,s:1368489600,t:1372118400,BB:1375747200,CB:1379376000,DB:1386633600,EB:1391472000,FB:1395100800,GB:1398729600,HB:1402358400,IB:1405987200,JB:1409616000,KB:1413244800,LB:1417392000,MB:1421107200,NB:1424736000,OB:1428278400,PB:1431475200,QB:1435881600,RB:1439251200,SB:1442880000,TB:1446508800,UB:1450137600,VB:1453852800,WB:1457395200,XB:1461628800,YB:1465257600,ZB:1470096000,aB:1474329600,bB:1479168000,cB:1485216000,dB:1488844800,eB:1492560000,fB:1497312000,gB:1502150400,hB:1506556800,iB:1510617600,jB:1516665600,\"8B\":1520985600,kB:1525824000,\"9B\":1529971200,lB:1536105600,mB:1540252800,nB:1544486400,oB:1548720000,pB:1552953600,qB:1558396800,rB:1562630400,sB:1567468800,tB:1571788800,uB:1575331200,vB:1578355200,u:1581379200,wB:1583798400,xB:1586304000,yB:1588636800,zB:1591056000,\"0B\":1593475200,P:1595894400,Q:1598313600,R:1600732800,AC:1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,o:1663632000,p:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,H:1702944000,\"1B\":1705968000,BC:1708387200,CC:null,DC:null,VC:null}},D:{A:{\"0\":0.075848,\"1\":0.15968,\"2\":0.115768,\"3\":0.07984,\"4\":0.263472,\"5\":0.195608,\"6\":0.467064,\"7\":2.4471,\"8\":15.8562,\"9\":0,I:0,J:0,D:0,E:0,F:0,A:0,B:0,C:0,K:0,L:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0.003992,MB:0,NB:0,OB:0,PB:0.015968,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0,WB:0.007984,XB:0,YB:0.003992,ZB:0.031936,aB:0.027944,bB:0.007984,cB:0,dB:0,eB:0.007984,fB:0.007984,gB:0.007984,hB:0.015968,iB:0.007984,jB:0,\"8B\":0,kB:0.015968,\"9B\":0.003992,lB:0,mB:0.003992,nB:0,oB:0.003992,pB:0.027944,qB:0.007984,rB:0,sB:0.035928,tB:0.023952,uB:0.007984,vB:0.003992,u:0.011976,wB:0.007984,xB:0.007984,yB:0.007984,zB:0.011976,\"0B\":0.015968,P:0.11976,Q:0.015968,R:0.031936,S:0.043912,T:0.007984,U:0.023952,V:0.03992,W:0.083832,X:0.01996,Y:0.015968,Z:0.01996,a:0.05988,b:0.027944,c:0.051896,d:0.047904,e:0.011976,f:0.015968,g:0.015968,h:0.067864,i:0.035928,j:0.031936,k:0.043912,l:0.031936,m:0.143712,n:0.063872,o:0.03992,p:0.051896,v:0.043912,w:0.075848,x:1.6447,y:0.055888,z:0.071856,H:1.11776,\"1B\":0.015968,BC:0,CC:0,DC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"9\",\"J\",\"D\",\"E\",\"F\",\"A\",\"B\",\"C\",\"K\",\"L\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"8B\",\"kB\",\"9B\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"H\",\"1B\",\"BC\",\"CC\",\"DC\"],E:\"Chrome\",F:{\"0\":1680566400,\"1\":1682985600,\"2\":1685404800,\"3\":1689724800,\"4\":1692057600,\"5\":1694476800,\"6\":1696896000,\"7\":1698710400,\"8\":1701993600,\"9\":1274745600,I:1264377600,J:1283385600,D:1287619200,E:1291248000,F:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,G:1316131200,M:1319500800,N:1323734400,O:1328659200,AB:1332892800,q:1337040000,r:1340668800,s:1343692800,t:1348531200,BB:1352246400,CB:1357862400,DB:1361404800,EB:1364428800,FB:1369094400,GB:1374105600,HB:1376956800,IB:1384214400,JB:1389657600,KB:1392940800,LB:1397001600,MB:1400544000,NB:1405468800,OB:1409011200,PB:1412640000,QB:1416268800,RB:1421798400,SB:1425513600,TB:1429401600,UB:1432080000,VB:1437523200,WB:1441152000,XB:1444780800,YB:1449014400,ZB:1453248000,aB:1456963200,bB:1460592000,cB:1464134400,dB:1469059200,eB:1472601600,fB:1476230400,gB:1480550400,hB:1485302400,iB:1489017600,jB:1492560000,\"8B\":1496707200,kB:1500940800,\"9B\":1504569600,lB:1508198400,mB:1512518400,nB:1516752000,oB:1520294400,pB:1523923200,qB:1527552000,rB:1532390400,sB:1536019200,tB:1539648000,uB:1543968000,vB:1548720000,u:1552348800,wB:1555977600,xB:1559606400,yB:1564444800,zB:1568073600,\"0B\":1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,o:1661817600,p:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,H:1705968000,\"1B\":1708387200,BC:null,CC:null,DC:null}},E:{A:{\"9\":0,I:0,J:0,D:0,E:0,F:0.003992,A:0,B:0,C:0,K:0.007984,L:0.03992,G:0.007984,YC:0,EC:0,ZC:0.003992,aC:0,bC:0,cC:0.011976,FC:0,\"2B\":0.015968,\"3B\":0.015968,GC:0.071856,dC:0.111776,eC:0.031936,HC:0.011976,IC:0.031936,\"4B\":0.043912,fC:0.2994,\"5B\":0.031936,JC:0.071856,KC:0.05988,LC:0.143712,MC:0.063872,NC:0.103792,gC:0.526944,\"6B\":0.11976,OC:0.694608,PC:0.850296,QC:0.055888,hC:0,iC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"YC\",\"EC\",\"I\",\"9\",\"ZC\",\"J\",\"aC\",\"D\",\"bC\",\"E\",\"F\",\"cC\",\"A\",\"FC\",\"B\",\"2B\",\"C\",\"3B\",\"K\",\"GC\",\"L\",\"dC\",\"G\",\"eC\",\"HC\",\"IC\",\"4B\",\"fC\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"gC\",\"6B\",\"OC\",\"PC\",\"QC\",\"hC\",\"iC\",\"\"],E:\"Safari\",F:{\"9\":1275868800,YC:1205798400,EC:1226534400,I:1244419200,ZC:1311120000,J:1343174400,aC:1382400000,D:1382400000,bC:1410998400,E:1413417600,F:1443657600,cC:1458518400,A:1474329600,FC:1490572800,B:1505779200,\"2B\":1522281600,C:1537142400,\"3B\":1553472000,K:1568851200,GC:1585008000,L:1600214400,dC:1619395200,G:1632096000,eC:1635292800,HC:1639353600,IC:1647216000,\"4B\":1652745600,fC:1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,gC:1690156800,\"6B\":1695686400,OC:1698192000,PC:1702252800,QC:1705881600,hC:null,iC:null}},F:{A:{F:0,B:0,C:0,G:0,M:0,N:0,O:0,AB:0,q:0,r:0,s:0,t:0,BB:0,CB:0,DB:0,EB:0,FB:0.003992,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0.003992,SB:0,TB:0,UB:0,VB:0,WB:0,XB:0.015968,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,uB:0,vB:0,u:0,wB:0,xB:0,yB:0,zB:0,\"0B\":0,P:0,Q:0,R:0,AC:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0.003992,Z:0,a:0,b:0,c:0,d:0,e:0.043912,f:0,g:0,h:0,i:0,j:0,k:0,l:0.047904,m:0,n:0.007984,o:0.570856,p:0.483032,jC:0,kC:0,lC:0,mC:0,\"2B\":0,RC:0,nC:0,\"3B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"F\",\"jC\",\"kC\",\"lC\",\"mC\",\"B\",\"2B\",\"RC\",\"nC\",\"C\",\"3B\",\"G\",\"M\",\"N\",\"O\",\"AB\",\"q\",\"r\",\"s\",\"t\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"uB\",\"vB\",\"u\",\"wB\",\"xB\",\"yB\",\"zB\",\"0B\",\"P\",\"Q\",\"R\",\"AC\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"\",\"\",\"\"],E:\"Opera\",F:{F:1150761600,jC:1223424000,kC:1251763200,lC:1267488000,mC:1277942400,B:1292457600,\"2B\":1302566400,RC:1309219200,nC:1323129600,C:1323129600,\"3B\":1352073600,G:1372723200,M:1377561600,N:1381104000,O:1386288000,AB:1390867200,q:1393891200,r:1399334400,s:1401753600,t:1405987200,BB:1409616000,CB:1413331200,DB:1417132800,EB:1422316800,FB:1425945600,GB:1430179200,HB:1433808000,IB:1438646400,JB:1442448000,KB:1445904000,LB:1449100800,MB:1454371200,NB:1457308800,OB:1462320000,PB:1465344000,QB:1470096000,RB:1474329600,SB:1477267200,TB:1481587200,UB:1486425600,VB:1490054400,WB:1494374400,XB:1498003200,YB:1502236800,ZB:1506470400,aB:1510099200,bB:1515024000,cB:1517961600,dB:1521676800,eB:1525910400,fB:1530144000,gB:1534982400,hB:1537833600,iB:1543363200,jB:1548201600,kB:1554768000,lB:1561593600,mB:1566259200,nB:1570406400,oB:1573689600,pB:1578441600,qB:1583971200,rB:1587513600,sB:1592956800,tB:1595894400,uB:1600128000,vB:1603238400,u:1613520000,wB:1612224000,xB:1616544000,yB:1619568000,zB:1623715200,\"0B\":1627948800,P:1631577600,Q:1633392000,R:1635984000,AC:1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000,o:1699920000,p:1702944000},D:{F:\"o\",B:\"o\",C:\"o\",jC:\"o\",kC:\"o\",lC:\"o\",mC:\"o\",\"2B\":\"o\",RC:\"o\",nC:\"o\",\"3B\":\"o\"}},G:{A:{E:0,EC:0,oC:0,SC:0.00300931,pC:0.00451396,qC:0.00752327,rC:0.0105326,sC:0.00150465,tC:0.00902792,uC:0.034607,vC:0.00300931,wC:0.0541675,xC:0.0210652,yC:0.0240745,zC:0.0135419,\"0C\":0.267828,\"1C\":0.00451396,\"2C\":0.0496536,\"3C\":0.0135419,\"4C\":0.0601861,\"5C\":0.105326,\"6C\":0.160998,\"7C\":0.0692141,HC:0.0797466,IC:0.0932885,\"4B\":0.123382,\"8C\":0.961474,\"5B\":0.288893,JC:0.615403,KC:0.279866,LC:0.52061,MC:0.115858,NC:0.246763,\"9C\":2.01925,\"6B\":0.335538,OC:3.46221,PC:4.67947,QC:0.300931},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"EC\",\"oC\",\"SC\",\"pC\",\"qC\",\"rC\",\"E\",\"sC\",\"tC\",\"uC\",\"vC\",\"wC\",\"xC\",\"yC\",\"zC\",\"0C\",\"1C\",\"2C\",\"3C\",\"4C\",\"5C\",\"6C\",\"7C\",\"HC\",\"IC\",\"4B\",\"8C\",\"5B\",\"JC\",\"KC\",\"LC\",\"MC\",\"NC\",\"9C\",\"6B\",\"OC\",\"PC\",\"QC\",\"\",\"\",\"\"],E:\"Safari on iOS\",F:{EC:1270252800,oC:1283904000,SC:1299628800,pC:1331078400,qC:1359331200,rC:1394409600,E:1410912000,sC:1413763200,tC:1442361600,uC:1458518400,vC:1473724800,wC:1490572800,xC:1505779200,yC:1522281600,zC:1537142400,\"0C\":1553472000,\"1C\":1568851200,\"2C\":1572220800,\"3C\":1580169600,\"4C\":1585008000,\"5C\":1600214400,\"6C\":1619395200,\"7C\":1632096000,HC:1639353600,IC:1647216000,\"4B\":1652659200,\"8C\":1658275200,\"5B\":1662940800,JC:1666569600,KC:1670889600,LC:1674432000,MC:1679875200,NC:1684368000,\"9C\":1690156800,\"6B\":1694995200,OC:1698192000,PC:1702252800,QC:1705881600}},H:{A:{AD:0.08},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"AD\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{AD:1426464000}},I:{A:{\"7B\":0,I:0.0000588882,H:0.293145,BD:0,CD:0.0000294441,DD:0,ED:0.0000588882,SC:0.000206109,FD:0,GD:0.000765547},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"BD\",\"CD\",\"DD\",\"7B\",\"I\",\"ED\",\"SC\",\"FD\",\"GD\",\"H\",\"\",\"\",\"\"],E:\"Android Browser\",F:{BD:1256515200,CD:1274313600,DD:1291593600,\"7B\":1298332800,I:1318896000,ED:1341792000,SC:1374624000,FD:1386547200,GD:1401667200,H:1705968000}},J:{A:{D:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{D:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,u:1.19391,\"2B\":0,RC:0,\"3B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"2B\",\"RC\",\"C\",\"3B\",\"u\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,\"2B\":1314835200,RC:1318291200,C:1330300800,\"3B\":1349740800,u:1673827200},D:{u:\"webkit\"}},L:{A:{H:40.5268},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"H\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{H:1705968000}},M:{A:{\"1B\":0.30045},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"1B\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{\"1B\":1705968000}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"4B\":0.811215},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"4B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"4B\":1687132800},D:{\"4B\":\"webkit\"}},P:{A:{I:0.139654,q:0.0322279,r:0.0751983,s:0.0966836,t:2.10555,HD:0.0107426,ID:0,JD:0.0537131,KD:0,LD:0,FC:0,MD:0.0107426,ND:0,OD:0.0107426,PD:0,QD:0,\"5B\":0.0107426,\"6B\":0.0322279,RD:0.0214852,SD:0.0322279},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"FC\",\"MD\",\"ND\",\"OD\",\"PD\",\"QD\",\"5B\",\"6B\",\"RD\",\"SD\",\"q\",\"r\",\"s\",\"t\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{I:1461024000,HD:1481846400,ID:1509408000,JD:1528329600,KD:1546128000,LD:1554163200,FC:1567900800,MD:1582588800,ND:1593475200,OD:1605657600,PD:1618531200,QD:1629072000,\"5B\":1640736000,\"6B\":1651708800,RD:1659657600,SD:1667260800,q:1677369600,r:1684454400,s:1689292800,t:1697587200}},Q:{A:{GC:0.204306},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"GC\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{GC:1663718400}},R:{A:{TD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"TD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{TD:1663027200}},S:{A:{UD:0.090135,VD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UD\",\"VD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{UD:1527811200,VD:1631664000}}};\n","module.exports={\"0\":\"112\",\"1\":\"113\",\"2\":\"114\",\"3\":\"115\",\"4\":\"116\",\"5\":\"117\",\"6\":\"118\",\"7\":\"119\",\"8\":\"120\",\"9\":\"5\",A:\"10\",B:\"11\",C:\"12\",D:\"7\",E:\"8\",F:\"9\",G:\"15\",H:\"121\",I:\"4\",J:\"6\",K:\"13\",L:\"14\",M:\"16\",N:\"17\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"105\",p:\"106\",q:\"20\",r:\"21\",s:\"22\",t:\"23\",u:\"73\",v:\"107\",w:\"108\",x:\"109\",y:\"110\",z:\"111\",AB:\"19\",BB:\"24\",CB:\"25\",DB:\"26\",EB:\"27\",FB:\"28\",GB:\"29\",HB:\"30\",IB:\"31\",JB:\"32\",KB:\"33\",LB:\"34\",MB:\"35\",NB:\"36\",OB:\"37\",PB:\"38\",QB:\"39\",RB:\"40\",SB:\"41\",TB:\"42\",UB:\"43\",VB:\"44\",WB:\"45\",XB:\"46\",YB:\"47\",ZB:\"48\",aB:\"49\",bB:\"50\",cB:\"51\",dB:\"52\",eB:\"53\",fB:\"54\",gB:\"55\",hB:\"56\",iB:\"57\",jB:\"58\",kB:\"60\",lB:\"62\",mB:\"63\",nB:\"64\",oB:\"65\",pB:\"66\",qB:\"67\",rB:\"68\",sB:\"69\",tB:\"70\",uB:\"71\",vB:\"72\",wB:\"74\",xB:\"75\",yB:\"76\",zB:\"77\",\"0B\":\"78\",\"1B\":\"122\",\"2B\":\"11.1\",\"3B\":\"12.1\",\"4B\":\"15.5\",\"5B\":\"16.0\",\"6B\":\"17.0\",\"7B\":\"3\",\"8B\":\"59\",\"9B\":\"61\",AC:\"82\",BC:\"123\",CC:\"124\",DC:\"125\",EC:\"3.2\",FC:\"10.1\",GC:\"13.1\",HC:\"15.2-15.3\",IC:\"15.4\",JC:\"16.1\",KC:\"16.2\",LC:\"16.3\",MC:\"16.4\",NC:\"16.5\",OC:\"17.1\",PC:\"17.2\",QC:\"17.3\",RC:\"11.5\",SC:\"4.2-4.3\",TC:\"5.5\",UC:\"2\",VC:\"126\",WC:\"3.5\",XC:\"3.6\",YC:\"3.1\",ZC:\"5.1\",aC:\"6.1\",bC:\"7.1\",cC:\"9.1\",dC:\"14.1\",eC:\"15.1\",fC:\"15.6\",gC:\"16.6\",hC:\"17.4\",iC:\"TP\",jC:\"9.5-9.6\",kC:\"10.0-10.1\",lC:\"10.5\",mC:\"10.6\",nC:\"11.6\",oC:\"4.0-4.1\",pC:\"5.0-5.1\",qC:\"6.0-6.1\",rC:\"7.0-7.1\",sC:\"8.1-8.4\",tC:\"9.0-9.2\",uC:\"9.3\",vC:\"10.0-10.2\",wC:\"10.3\",xC:\"11.0-11.2\",yC:\"11.3-11.4\",zC:\"12.0-12.1\",\"0C\":\"12.2-12.5\",\"1C\":\"13.0-13.1\",\"2C\":\"13.2\",\"3C\":\"13.3\",\"4C\":\"13.4-13.7\",\"5C\":\"14.0-14.4\",\"6C\":\"14.5-14.8\",\"7C\":\"15.0-15.1\",\"8C\":\"15.6-15.8\",\"9C\":\"16.6-16.7\",AD:\"all\",BD:\"2.1\",CD:\"2.2\",DD:\"2.3\",ED:\"4.1\",FD:\"4.4\",GD:\"4.4.3-4.4.4\",HD:\"5.0-5.4\",ID:\"6.2-6.4\",JD:\"7.2-7.4\",KD:\"8.2\",LD:\"9.2\",MD:\"11.1-11.2\",ND:\"12.0\",OD:\"13.0\",PD:\"14.0\",QD:\"15.0\",RD:\"18.0\",SD:\"19.0\",TD:\"13.18\",UD:\"2.5\",VD:\"3.0-3.1\"};\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports.browsers = require('../../data/browsers')\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"24.7\": \"112\",\n\t\"24.8\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"25.3\": \"114\",\n\t\"25.4\": \"114\",\n\t\"25.5\": \"114\",\n\t\"25.6\": \"114\",\n\t\"25.7\": \"114\",\n\t\"25.8\": \"114\",\n\t\"25.9\": \"114\",\n\t\"26.0\": \"116\",\n\t\"26.1\": \"116\",\n\t\"26.2\": \"116\",\n\t\"26.3\": \"116\",\n\t\"26.4\": \"116\",\n\t\"26.5\": \"116\",\n\t\"26.6\": \"116\",\n\t\"27.0\": \"118\",\n\t\"27.1\": \"118\",\n\t\"27.2\": \"118\",\n\t\"27.3\": \"118\",\n\t\"28.0\": \"120\",\n\t\"28.1\": \"120\",\n\t\"28.2\": \"120\",\n\t\"29.0\": \"122\",\n\t\"30.0\": \"123\"\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTransforms = require('./transforms');\nvar _transform = require('../transform');\n\nmodule.exports = {\n /**\n * Translates a regexp in new syntax to equivalent regexp in old syntax.\n *\n * @param string|RegExp|AST - regexp\n * @param Array transformsWhitelist - names of the transforms to apply\n */\n transform: function transform(regexp) {\n var transformsWhitelist = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n var transformToApply = transformsWhitelist.length > 0 ? transformsWhitelist : Object.keys(compatTransforms);\n\n var result = void 0;\n\n // Collect extra data per transform.\n var extra = {};\n\n transformToApply.forEach(function (transformName) {\n\n if (!compatTransforms.hasOwnProperty(transformName)) {\n throw new Error('Unknown compat-transform: ' + transformName + '. ' + 'Available transforms are: ' + Object.keys(compatTransforms).join(', '));\n }\n\n var handler = compatTransforms[transformName];\n\n result = _transform.transform(regexp, handler);\n regexp = result.getAST();\n\n // Collect `extra` transform result.\n if (typeof handler.getExtra === 'function') {\n extra[transformName] = handler.getExtra();\n }\n });\n\n // Set the final extras for all transforms.\n result.setExtra(extra);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * The `RegExpTree` class provides runtime support for `compat-transpiler`\n * module from `regexp-tree`.\n *\n * E.g. it tracks names of the capturing groups, in order to access the\n * names on the matched result.\n *\n * It's a thin-wrapper on top of original regexp.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar RegExpTree = function () {\n /**\n * Initializes a `RegExpTree` instance.\n *\n * @param RegExp - a regular expression\n *\n * @param Object state:\n *\n * An extra state which may store any related to transformation\n * data, for example, names of the groups.\n *\n * - flags - original flags\n * - groups - names of the groups, and their indices\n * - source - original source\n */\n function RegExpTree(re, _ref) {\n var flags = _ref.flags,\n groups = _ref.groups,\n source = _ref.source;\n\n _classCallCheck(this, RegExpTree);\n\n this._re = re;\n this._groups = groups;\n\n // Original props.\n this.flags = flags;\n this.source = source || re.source;\n this.dotAll = flags.includes('s');\n\n // Inherited directly from `re`.\n this.global = re.global;\n this.ignoreCase = re.ignoreCase;\n this.multiline = re.multiline;\n this.sticky = re.sticky;\n this.unicode = re.unicode;\n }\n\n /**\n * Facade wrapper for RegExp `test` method.\n */\n\n\n _createClass(RegExpTree, [{\n key: 'test',\n value: function test(string) {\n return this._re.test(string);\n }\n\n /**\n * Facade wrapper for RegExp `compile` method.\n */\n\n }, {\n key: 'compile',\n value: function compile(string) {\n return this._re.compile(string);\n }\n\n /**\n * Facade wrapper for RegExp `toString` method.\n */\n\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._toStringResult) {\n this._toStringResult = '/' + this.source + '/' + this.flags;\n }\n return this._toStringResult;\n }\n\n /**\n * Facade wrapper for RegExp `exec` method.\n */\n\n }, {\n key: 'exec',\n value: function exec(string) {\n var result = this._re.exec(string);\n\n if (!this._groups || !result) {\n return result;\n }\n\n result.groups = {};\n\n for (var group in this._groups) {\n var groupNumber = this._groups[group];\n result.groups[group] = result[groupNumber];\n }\n\n return result;\n }\n }]);\n\n return RegExpTree;\n}();\n\nmodule.exports = {\n RegExpTree: RegExpTree\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/./s` to `/[\\0-\\uFFFF]/`.\n */\n\nmodule.exports = {\n\n // Whether `u` flag present. In which case we transform to\n // \\u{10FFFF} instead of \\uFFFF.\n _hasUFlag: false,\n\n // Only run this plugin if we have `s` flag.\n shouldRun: function shouldRun(ast) {\n var shouldRun = ast.flags.includes('s');\n\n if (!shouldRun) {\n return false;\n }\n\n // Strip the `s` flag.\n ast.flags = ast.flags.replace('s', '');\n\n // Whether we have also `u`.\n this._hasUFlag = ast.flags.includes('u');\n\n return true;\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (node.kind !== 'meta' || node.value !== '.') {\n return;\n }\n\n var toValue = '\\\\uFFFF';\n var toSymbol = '\\uFFFF';\n\n if (this._hasUFlag) {\n toValue = '\\\\u{10FFFF}';\n toSymbol = '\\uDBFF\\uDFFF';\n }\n\n path.replace({\n type: 'CharacterClass',\n expressions: [{\n type: 'ClassRange',\n from: {\n type: 'Char',\n value: '\\\\0',\n kind: 'decimal',\n symbol: '\\0'\n },\n to: {\n type: 'Char',\n value: toValue,\n kind: 'unicode',\n symbol: toSymbol\n }\n }]\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to translate `/(?a)\\k/` to `/(a)\\1/`.\n */\n\nmodule.exports = {\n // To track the names of the groups, and return them\n // in the transform result state.\n //\n // A map from name to number: {foo: 2, bar: 4}\n _groupNames: {},\n\n /**\n * Initialises the trasnform.\n */\n init: function init() {\n this._groupNames = {};\n },\n\n\n /**\n * Returns extra state, which eventually is returned to\n */\n getExtra: function getExtra() {\n return this._groupNames;\n },\n Group: function Group(path) {\n var node = path.node;\n\n\n if (!node.name) {\n return;\n }\n\n // Record group name.\n this._groupNames[node.name] = node.number;\n\n delete node.name;\n delete node.nameRaw;\n },\n Backreference: function Backreference(path) {\n var node = path.node;\n\n\n if (node.kind !== 'name') {\n return;\n }\n\n node.kind = 'number';\n node.reference = node.number;\n delete node.referenceRaw;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove `x` flag `/foo/x` to `/foo/`.\n *\n * Note: other features of `x` flags (whitespace, comments) are\n * already removed at parsing stage.\n */\n\nmodule.exports = {\n RegExp: function RegExp(_ref) {\n var node = _ref.node;\n\n if (node.flags.includes('x')) {\n node.flags = node.flags.replace('x', '');\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = {\n // \"dotAll\" `s` flag\n dotAll: require('./compat-dotall-s-transform'),\n\n // Named capturing groups.\n namedCapturingGroups: require('./compat-named-capturing-groups-transform'),\n\n // `x` flag\n xFlag: require('./compat-x-flag-transform')\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\nfunction gen(node) {\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n return '/' + gen(node.body) + '/' + node.flags;\n },\n Alternative: function Alternative(node) {\n return (node.expressions || []).map(gen).join('');\n },\n Disjunction: function Disjunction(node) {\n return gen(node.left) + '|' + gen(node.right);\n },\n Group: function Group(node) {\n var expression = gen(node.expression);\n\n if (node.capturing) {\n // A named group.\n if (node.name) {\n return '(?<' + (node.nameRaw || node.name) + '>' + expression + ')';\n }\n\n return '(' + expression + ')';\n }\n\n return '(?:' + expression + ')';\n },\n Backreference: function Backreference(node) {\n switch (node.kind) {\n case 'number':\n return '\\\\' + node.reference;\n case 'name':\n return '\\\\k<' + (node.referenceRaw || node.reference) + '>';\n default:\n throw new TypeError('Unknown Backreference kind: ' + node.kind);\n }\n },\n Assertion: function Assertion(node) {\n switch (node.kind) {\n case '^':\n case '$':\n case '\\\\b':\n case '\\\\B':\n return node.kind;\n\n case 'Lookahead':\n {\n var assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?!' + assertion + ')';\n }\n\n return '(?=' + assertion + ')';\n }\n\n case 'Lookbehind':\n {\n var _assertion = gen(node.assertion);\n\n if (node.negative) {\n return '(?\n */\n\n'use strict';\n\n// DFA minization.\n\n/**\n * Map from state to current set it goes.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toArray(arr) { return Array.isArray(arr) ? arr : Array.from(arr); }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar currentTransitionMap = null;\n\n/**\n * Takes a DFA, and returns a minimized version of it\n * compressing some states to groups (using standard, 0-, 1-,\n * 2-, ... N-equivalence algorithm).\n */\nfunction minimize(dfa) {\n var table = dfa.getTransitionTable();\n var allStates = Object.keys(table);\n var alphabet = dfa.getAlphabet();\n var accepting = dfa.getAcceptingStateNumbers();\n\n currentTransitionMap = {};\n\n var nonAccepting = new Set();\n\n allStates.forEach(function (state) {\n state = Number(state);\n var isAccepting = accepting.has(state);\n\n if (isAccepting) {\n currentTransitionMap[state] = accepting;\n } else {\n nonAccepting.add(state);\n currentTransitionMap[state] = nonAccepting;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Step 1: build equivalent sets.\n\n // All [1..N] equivalent sets.\n var all = [\n // 0-equivalent sets.\n [nonAccepting, accepting].filter(function (set) {\n return set.size > 0;\n })];\n\n var current = void 0;\n var previous = void 0;\n\n // Top of the stack is the current list of sets to analyze.\n current = all[all.length - 1];\n\n // Previous set (to check whether we need to stop).\n previous = all[all.length - 2];\n\n // Until we'll not have the same N and N-1 equivalent rows.\n\n var _loop = function _loop() {\n var newTransitionMap = {};\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = current[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _set = _step3.value;\n\n // Handled states for this set.\n var handledStates = {};\n\n var _set2 = _toArray(_set),\n first = _set2[0],\n rest = _set2.slice(1);\n\n handledStates[first] = new Set([first]);\n\n // Have to compare each from the rest states with\n // the already handled states, and see if they are equivalent.\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n restSets: for (var _iterator4 = rest[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var state = _step4.value;\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = Object.keys(handledStates)[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var handledState = _step5.value;\n\n // This and some previously handled state are equivalent --\n // just append this state to the same set.\n if (areEquivalent(state, handledState, table, alphabet)) {\n handledStates[handledState].add(state);\n handledStates[state] = handledStates[handledState];\n continue restSets;\n }\n }\n // Else, this state is not equivalent to any of the\n // handled states -- allocate a new set for it.\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n handledStates[state] = new Set([state]);\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n // Add these handled states to all states map.\n\n\n Object.assign(newTransitionMap, handledStates);\n }\n\n // Update current transition map for the handled row.\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n currentTransitionMap = newTransitionMap;\n\n var newSets = new Set(Object.keys(newTransitionMap).map(function (state) {\n return newTransitionMap[state];\n }));\n\n all.push([].concat(_toConsumableArray(newSets)));\n\n // Top of the stack is the current.\n current = all[all.length - 1];\n\n // Previous set.\n previous = all[all.length - 2];\n };\n\n while (!sameRow(current, previous)) {\n _loop();\n }\n\n // ---------------------------------------------------------------------------\n // Step 2: build minimized table from the equivalent sets.\n\n // Remap state numbers from sets to index-based.\n var remaped = new Map();\n var idx = 1;\n current.forEach(function (set) {\n return remaped.set(set, idx++);\n });\n\n // Build the minimized table from the calculated equivalent sets.\n var minimizedTable = {};\n\n var minimizedAcceptingStates = new Set();\n\n var updateAcceptingStates = function updateAcceptingStates(set, idx) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var state = _step.value;\n\n if (accepting.has(state)) {\n minimizedAcceptingStates.add(idx);\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remaped.entries()[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var set = _ref2[0];\n var _idx = _ref2[1];\n\n minimizedTable[_idx] = {};\n var _iteratorNormalCompletion6 = true;\n var _didIteratorError6 = false;\n var _iteratorError6 = undefined;\n\n try {\n for (var _iterator6 = alphabet[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {\n var symbol = _step6.value;\n\n updateAcceptingStates(set, _idx);\n\n // Determine original transition for this symbol from the set.\n var originalTransition = void 0;\n var _iteratorNormalCompletion7 = true;\n var _didIteratorError7 = false;\n var _iteratorError7 = undefined;\n\n try {\n for (var _iterator7 = set[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {\n var originalState = _step7.value;\n\n originalTransition = table[originalState][symbol];\n if (originalTransition) {\n break;\n }\n }\n } catch (err) {\n _didIteratorError7 = true;\n _iteratorError7 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion7 && _iterator7.return) {\n _iterator7.return();\n }\n } finally {\n if (_didIteratorError7) {\n throw _iteratorError7;\n }\n }\n }\n\n if (originalTransition) {\n minimizedTable[_idx][symbol] = remaped.get(currentTransitionMap[originalTransition]);\n }\n }\n } catch (err) {\n _didIteratorError6 = true;\n _iteratorError6 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion6 && _iterator6.return) {\n _iterator6.return();\n }\n } finally {\n if (_didIteratorError6) {\n throw _iteratorError6;\n }\n }\n }\n }\n\n // Update the table, and accepting states on the original DFA.\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n dfa.setTransitionTable(minimizedTable);\n dfa.setAcceptingStateNumbers(minimizedAcceptingStates);\n\n return dfa;\n}\n\nfunction sameRow(r1, r2) {\n if (!r2) {\n return false;\n }\n\n if (r1.length !== r2.length) {\n return false;\n }\n\n for (var i = 0; i < r1.length; i++) {\n var s1 = r1[i];\n var s2 = r2[i];\n\n if (s1.size !== s2.size) {\n return false;\n }\n\n if ([].concat(_toConsumableArray(s1)).sort().join(',') !== [].concat(_toConsumableArray(s2)).sort().join(',')) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether two states are N-equivalent, i.e. whether they go\n * to the same set on a symbol.\n */\nfunction areEquivalent(s1, s2, table, alphabet) {\n var _iteratorNormalCompletion8 = true;\n var _didIteratorError8 = false;\n var _iteratorError8 = undefined;\n\n try {\n for (var _iterator8 = alphabet[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) {\n var symbol = _step8.value;\n\n if (!goToSameSet(s1, s2, table, symbol)) {\n return false;\n }\n }\n } catch (err) {\n _didIteratorError8 = true;\n _iteratorError8 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion8 && _iterator8.return) {\n _iterator8.return();\n }\n } finally {\n if (_didIteratorError8) {\n throw _iteratorError8;\n }\n }\n }\n\n return true;\n}\n\n/**\n * Checks whether states go to the same set.\n */\nfunction goToSameSet(s1, s2, table, symbol) {\n if (!currentTransitionMap[s1] || !currentTransitionMap[s2]) {\n return false;\n }\n\n var originalTransitionS1 = table[s1][symbol];\n var originalTransitionS2 = table[s2][symbol];\n\n // If no actual transition on this symbol, treat it as positive.\n if (!originalTransitionS1 && !originalTransitionS2) {\n return true;\n }\n\n // Otherwise, check if they are in the same sets.\n return currentTransitionMap[s1].has(originalTransitionS1) && currentTransitionMap[s2].has(originalTransitionS2);\n}\n\nmodule.exports = {\n minimize: minimize\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DFAMinimizer = require('./dfa-minimizer');\n\nvar _require = require('../special-symbols'),\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * DFA is build by converting from NFA (subset construction).\n */\n\n\nvar DFA = function () {\n function DFA(nfa) {\n _classCallCheck(this, DFA);\n\n this._nfa = nfa;\n }\n\n /**\n * Minimizes DFA.\n */\n\n\n _createClass(DFA, [{\n key: 'minimize',\n value: function minimize() {\n this.getTransitionTable();\n\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._originalTransitionTable = this._transitionTable;\n\n DFAMinimizer.minimize(this);\n }\n\n /**\n * Returns alphabet for this DFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n return this._nfa.getAlphabet();\n }\n\n /**\n * Returns accepting states.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._acceptingStateNumbers;\n }\n\n /**\n * Returns original accepting states.\n */\n\n }, {\n key: 'getOriginaAcceptingStateNumbers',\n value: function getOriginaAcceptingStateNumbers() {\n if (!this._originalAcceptingStateNumbers) {\n // Accepting states are determined during table construction.\n this.getTransitionTable();\n }\n\n return this._originalAcceptingStateNumbers;\n }\n\n /**\n * Sets transition table.\n */\n\n }, {\n key: 'setTransitionTable',\n value: function setTransitionTable(table) {\n this._transitionTable = table;\n }\n\n /**\n * Sets accepting states.\n */\n\n }, {\n key: 'setAcceptingStateNumbers',\n value: function setAcceptingStateNumbers(stateNumbers) {\n this._acceptingStateNumbers = stateNumbers;\n }\n\n /**\n * DFA transition table is built from NFA table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (this._transitionTable) {\n return this._transitionTable;\n }\n\n // Calculate from NFA transition table.\n var nfaTable = this._nfa.getTransitionTable();\n var nfaStates = Object.keys(nfaTable);\n\n this._acceptingStateNumbers = new Set();\n\n // Start state of DFA is E(S[nfa])\n var startState = nfaTable[nfaStates[0]][EPSILON_CLOSURE];\n\n // Init the worklist (states which should be in the DFA).\n var worklist = [startState];\n\n var alphabet = this.getAlphabet();\n var nfaAcceptingStates = this._nfa.getAcceptingStateNumbers();\n\n var dfaTable = {};\n\n // Determine whether the combined DFA state is accepting.\n var updateAcceptingStates = function updateAcceptingStates(states) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = nfaAcceptingStates[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nfaAcceptingState = _step.value;\n\n // If any of the states from NFA is accepting, DFA's\n // state is accepting as well.\n if (states.indexOf(nfaAcceptingState) !== -1) {\n _this._acceptingStateNumbers.add(states.join(','));\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n };\n\n while (worklist.length > 0) {\n var states = worklist.shift();\n var dfaStateLabel = states.join(',');\n dfaTable[dfaStateLabel] = {};\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = alphabet[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var symbol = _step2.value;\n\n var onSymbol = [];\n\n // Determine whether the combined state is accepting.\n updateAcceptingStates(states);\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = states[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var state = _step3.value;\n\n var nfaStatesOnSymbol = nfaTable[state][symbol];\n if (!nfaStatesOnSymbol) {\n continue;\n }\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = nfaStatesOnSymbol[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nfaStateOnSymbol = _step4.value;\n\n if (!nfaTable[nfaStateOnSymbol]) {\n continue;\n }\n onSymbol.push.apply(onSymbol, _toConsumableArray(nfaTable[nfaStateOnSymbol][EPSILON_CLOSURE]));\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n var dfaStatesOnSymbolSet = new Set(onSymbol);\n var dfaStatesOnSymbol = [].concat(_toConsumableArray(dfaStatesOnSymbolSet));\n\n if (dfaStatesOnSymbol.length > 0) {\n var dfaOnSymbolStr = dfaStatesOnSymbol.join(',');\n\n dfaTable[dfaStateLabel][symbol] = dfaOnSymbolStr;\n\n if (!dfaTable.hasOwnProperty(dfaOnSymbolStr)) {\n worklist.unshift(dfaStatesOnSymbol);\n }\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n return this._transitionTable = this._remapStateNumbers(dfaTable);\n }\n\n /**\n * Remaps state numbers in the resulting table:\n * combined states '1,2,3' -> 1, '3,4' -> 2, etc.\n */\n\n }, {\n key: '_remapStateNumbers',\n value: function _remapStateNumbers(calculatedDFATable) {\n var newStatesMap = {};\n\n this._originalTransitionTable = calculatedDFATable;\n var transitionTable = {};\n\n Object.keys(calculatedDFATable).forEach(function (originalNumber, newNumber) {\n newStatesMap[originalNumber] = newNumber + 1;\n });\n\n for (var originalNumber in calculatedDFATable) {\n var originalRow = calculatedDFATable[originalNumber];\n var row = {};\n\n for (var symbol in originalRow) {\n row[symbol] = newStatesMap[originalRow[symbol]];\n }\n\n transitionTable[newStatesMap[originalNumber]] = row;\n }\n\n // Remap accepting states.\n this._originalAcceptingStateNumbers = this._acceptingStateNumbers;\n this._acceptingStateNumbers = new Set();\n\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._originalAcceptingStateNumbers[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var _originalNumber = _step5.value;\n\n this._acceptingStateNumbers.add(newStatesMap[_originalNumber]);\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return transitionTable;\n }\n\n /**\n * Returns original DFA table, where state numbers\n * are combined numbers from NFA.\n */\n\n }, {\n key: 'getOriginalTransitionTable',\n value: function getOriginalTransitionTable() {\n if (!this._originalTransitionTable) {\n // Original table is determined during table construction.\n this.getTransitionTable();\n }\n return this._originalTransitionTable;\n }\n\n /**\n * Checks whether this DFA accepts a string.\n */\n\n }, {\n key: 'matches',\n value: function matches(string) {\n var state = 1;\n var i = 0;\n var table = this.getTransitionTable();\n\n while (string[i]) {\n state = table[state][string[i++]];\n if (!state) {\n return false;\n }\n }\n\n if (!this.getAcceptingStateNumbers().has(state)) {\n return false;\n }\n\n return true;\n }\n }]);\n\n return DFA;\n}();\n\nmodule.exports = DFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa/nfa');\nvar DFA = require('./dfa/dfa');\n\nvar nfaFromRegExp = require('./nfa/nfa-from-regexp');\nvar builders = require('./nfa/builders');\n\nmodule.exports = {\n\n /**\n * Export NFA and DFA classes.\n */\n NFA: NFA,\n DFA: DFA,\n\n /**\n * Expose builders.\n */\n builders: builders,\n\n /**\n * Builds an NFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toNFA: function toNFA(regexp) {\n return nfaFromRegExp.build(regexp);\n },\n\n\n /**\n * Builds DFA for the passed regexp.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n */\n toDFA: function toDFA(regexp) {\n return new DFA(this.toNFA(regexp));\n },\n\n\n /**\n * Returns true if regexp accepts the string.\n */\n test: function test(regexp, string) {\n return this.toDFA(regexp).matches(string);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NFA = require('./nfa');\nvar NFAState = require('./nfa-state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n// -----------------------------------------------------------------------------\n// Char NFA fragment: `c`\n\n/**\n * Char factory.\n *\n * Creates an NFA fragment for a single char.\n *\n * [in] --c--> [out]\n */\n\n\nfunction char(c) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n return new NFA(inState.addTransition(c, outState), outState);\n}\n\n// -----------------------------------------------------------------------------\n// Epsilon NFA fragment\n\n/**\n * Epsilon factory.\n *\n * Creates an NFA fragment for ε (recognizes an empty string).\n *\n * [in] --ε--> [out]\n */\nfunction e() {\n return char(EPSILON);\n}\n\n// -----------------------------------------------------------------------------\n// Alteration NFA fragment: `abc`\n\n/**\n * Creates a connection between two NFA fragments on epsilon transition.\n *\n * [in-a] --a--> [out-a] --ε--> [in-b] --b--> [out-b]\n */\nfunction altPair(first, second) {\n first.out.accepting = false;\n second.out.accepting = true;\n\n first.out.addTransition(EPSILON, second.in);\n\n return new NFA(first.in, second.out);\n}\n\n/**\n * Alteration factory.\n *\n * Creates a alteration NFA for (at least) two NFA-fragments.\n */\nfunction alt(first) {\n for (var _len = arguments.length, fragments = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n fragments[_key - 1] = arguments[_key];\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fragments[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var fragment = _step.value;\n\n first = altPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Disjunction NFA fragment: `a|b`\n\n/**\n * Creates a disjunction choice between two fragments.\n */\nfunction orPair(first, second) {\n var inState = new NFAState();\n var outState = new NFAState();\n\n inState.addTransition(EPSILON, first.in);\n inState.addTransition(EPSILON, second.in);\n\n outState.accepting = true;\n first.out.accepting = false;\n second.out.accepting = false;\n\n first.out.addTransition(EPSILON, outState);\n second.out.addTransition(EPSILON, outState);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Disjunction factory.\n *\n * Creates a disjunction NFA for (at least) two NFA-fragments.\n */\nfunction or(first) {\n for (var _len2 = arguments.length, fragments = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n fragments[_key2 - 1] = arguments[_key2];\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = fragments[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var fragment = _step2.value;\n\n first = orPair(first, fragment);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return first;\n}\n\n// -----------------------------------------------------------------------------\n// Kleene-closure\n\n/**\n * Kleene star/closure.\n *\n * a*\n */\nfunction repExplicit(fragment) {\n var inState = new NFAState();\n var outState = new NFAState({\n accepting: true\n });\n\n // 0 or more.\n inState.addTransition(EPSILON, fragment.in);\n inState.addTransition(EPSILON, outState);\n\n fragment.out.accepting = false;\n fragment.out.addTransition(EPSILON, outState);\n outState.addTransition(EPSILON, fragment.in);\n\n return new NFA(inState, outState);\n}\n\n/**\n * Optimized Kleene-star: just adds ε-transitions from\n * input to the output, and back.\n */\nfunction rep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized Plus: just adds ε-transitions from\n * the output to the input.\n */\nfunction plusRep(fragment) {\n fragment.out.addTransition(EPSILON, fragment.in);\n return fragment;\n}\n\n/**\n * Optimized ? repetition: just adds ε-transitions from\n * the input to the output.\n */\nfunction questionRep(fragment) {\n fragment.in.addTransition(EPSILON, fragment.out);\n return fragment;\n}\n\nmodule.exports = {\n alt: alt,\n char: char,\n e: e,\n or: or,\n rep: rep,\n repExplicit: repExplicit,\n plusRep: plusRep,\n questionRep: questionRep\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar parser = require('../../../parser');\n\nvar _require = require('./builders'),\n alt = _require.alt,\n char = _require.char,\n or = _require.or,\n rep = _require.rep,\n plusRep = _require.plusRep,\n questionRep = _require.questionRep;\n\n/**\n * Helper `gen` function calls node type handler.\n */\n\n\nfunction gen(node) {\n if (node && !generator[node.type]) {\n throw new Error(node.type + ' is not supported in NFA/DFA interpreter.');\n }\n\n return node ? generator[node.type](node) : '';\n}\n\n/**\n * AST handler.\n */\nvar generator = {\n RegExp: function RegExp(node) {\n if (node.flags !== '') {\n throw new Error('NFA/DFA: Flags are not supported yet.');\n }\n\n return gen(node.body);\n },\n Alternative: function Alternative(node) {\n var fragments = (node.expressions || []).map(gen);\n return alt.apply(undefined, _toConsumableArray(fragments));\n },\n Disjunction: function Disjunction(node) {\n return or(gen(node.left), gen(node.right));\n },\n Repetition: function Repetition(node) {\n switch (node.quantifier.kind) {\n case '*':\n return rep(gen(node.expression));\n case '+':\n return plusRep(gen(node.expression));\n case '?':\n return questionRep(gen(node.expression));\n default:\n throw new Error('Unknown repeatition: ' + node.quantifier.kind + '.');\n }\n },\n Char: function Char(node) {\n if (node.kind !== 'simple') {\n throw new Error('NFA/DFA: Only simple chars are supported yet.');\n }\n\n return char(node.value);\n },\n Group: function Group(node) {\n return gen(node.expression);\n }\n};\n\nmodule.exports = {\n /**\n * Builds an NFA from the passed regexp.\n */\n build: function build(regexp) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n return gen(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\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 State = require('../state');\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON;\n\n/**\n * NFA state.\n *\n * Allows nondeterministic transitions to several states on the\n * same symbol, and also epsilon-transitions.\n */\n\n\nvar NFAState = function (_State) {\n _inherits(NFAState, _State);\n\n function NFAState() {\n _classCallCheck(this, NFAState);\n\n return _possibleConstructorReturn(this, (NFAState.__proto__ || Object.getPrototypeOf(NFAState)).apply(this, arguments));\n }\n\n _createClass(NFAState, [{\n key: 'matches',\n\n\n /**\n * Whether this state matches a string.\n *\n * We maintain set of visited epsilon-states to avoid infinite loops\n * when an epsilon-transition goes eventually to itself.\n *\n * NOTE: this function is rather \"educational\", since we use DFA for strings\n * matching. DFA is built on top of NFA, and uses fast transition table.\n */\n value: function matches(string) {\n var visited = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : new Set();\n\n // An epsilon-state has been visited, stop to avoid infinite loop.\n if (visited.has(this)) {\n return false;\n }\n\n visited.add(this);\n\n // No symbols left..\n if (string.length === 0) {\n // .. and we're in the accepting state.\n if (this.accepting) {\n return true;\n }\n\n // Check if we can reach any accepting state from\n // on the epsilon transitions.\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var nextState = _step.value;\n\n if (nextState.matches('', visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return false;\n }\n\n // Else, we get some symbols.\n var symbol = string[0];\n var rest = string.slice(1);\n\n var symbolTransitions = this.getTransitionsOnSymbol(symbol);\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = symbolTransitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _nextState = _step2.value;\n\n if (_nextState.matches(rest)) {\n return true;\n }\n }\n\n // If we couldn't match on symbol, check still epsilon-transitions\n // without consuming the symbol (i.e. continue from `string`, not `rest`).\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this.getTransitionsOnSymbol(EPSILON)[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var _nextState2 = _step3.value;\n\n if (_nextState2.matches(string, visited)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n return false;\n }\n\n /**\n * Returns an ε-closure for this state:\n * self + all states following ε-transitions.\n */\n\n }, {\n key: 'getEpsilonClosure',\n value: function getEpsilonClosure() {\n var _this2 = this;\n\n if (!this._epsilonClosure) {\n (function () {\n var epsilonTransitions = _this2.getTransitionsOnSymbol(EPSILON);\n var closure = _this2._epsilonClosure = new Set();\n closure.add(_this2);\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = epsilonTransitions[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var nextState = _step4.value;\n\n if (!closure.has(nextState)) {\n closure.add(nextState);\n var nextClosure = nextState.getEpsilonClosure();\n nextClosure.forEach(function (state) {\n return closure.add(state);\n });\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n })();\n }\n\n return this._epsilonClosure;\n }\n }]);\n\n return NFAState;\n}(State);\n\nmodule.exports = NFAState;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = require('../special-symbols'),\n EPSILON = _require.EPSILON,\n EPSILON_CLOSURE = _require.EPSILON_CLOSURE;\n\n/**\n * NFA fragment.\n *\n * NFA sub-fragments can be combined to a larger NFAs building\n * the resulting machine. Combining the fragments is done by patching\n * edges of the in- and out-states.\n *\n * 2-states implementation, `in`, and `out`. Eventually all transitions\n * go to the same `out`, which can further be connected via ε-transition\n * with other fragment.\n */\n\n\nvar NFA = function () {\n function NFA(inState, outState) {\n _classCallCheck(this, NFA);\n\n this.in = inState;\n this.out = outState;\n }\n\n /**\n * Tries to recognize a string based on this NFA fragment.\n */\n\n\n _createClass(NFA, [{\n key: 'matches',\n value: function matches(string) {\n return this.in.matches(string);\n }\n\n /**\n * Returns an alphabet for this NFA.\n */\n\n }, {\n key: 'getAlphabet',\n value: function getAlphabet() {\n if (!this._alphabet) {\n this._alphabet = new Set();\n var table = this.getTransitionTable();\n for (var state in table) {\n var transitions = table[state];\n for (var symbol in transitions) {\n if (symbol !== EPSILON_CLOSURE) {\n this._alphabet.add(symbol);\n }\n }\n }\n }\n return this._alphabet;\n }\n\n /**\n * Returns set of accepting states.\n */\n\n }, {\n key: 'getAcceptingStates',\n value: function getAcceptingStates() {\n if (!this._acceptingStates) {\n // States are determined during table construction.\n this.getTransitionTable();\n }\n return this._acceptingStates;\n }\n\n /**\n * Returns accepting state numbers.\n */\n\n }, {\n key: 'getAcceptingStateNumbers',\n value: function getAcceptingStateNumbers() {\n if (!this._acceptingStateNumbers) {\n this._acceptingStateNumbers = new Set();\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this.getAcceptingStates()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var acceptingState = _step.value;\n\n this._acceptingStateNumbers.add(acceptingState.number);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n return this._acceptingStateNumbers;\n }\n\n /**\n * Builds and returns transition table.\n */\n\n }, {\n key: 'getTransitionTable',\n value: function getTransitionTable() {\n var _this = this;\n\n if (!this._transitionTable) {\n this._transitionTable = {};\n this._acceptingStates = new Set();\n\n var visited = new Set();\n var symbols = new Set();\n\n var visitState = function visitState(state) {\n if (visited.has(state)) {\n return;\n }\n\n visited.add(state);\n state.number = visited.size;\n _this._transitionTable[state.number] = {};\n\n if (state.accepting) {\n _this._acceptingStates.add(state);\n }\n\n var transitions = state.getTransitions();\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = transitions[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _ref = _step2.value;\n\n var _ref2 = _slicedToArray(_ref, 2);\n\n var symbol = _ref2[0];\n var symbolTransitions = _ref2[1];\n\n var combinedState = [];\n symbols.add(symbol);\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = symbolTransitions[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var nextState = _step3.value;\n\n visitState(nextState);\n combinedState.push(nextState.number);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n\n _this._transitionTable[state.number][symbol] = combinedState;\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n };\n\n // Traverse the graph starting from the `in`.\n visitState(this.in);\n\n // Append epsilon-closure column.\n visited.forEach(function (state) {\n delete _this._transitionTable[state.number][EPSILON];\n _this._transitionTable[state.number][EPSILON_CLOSURE] = [].concat(_toConsumableArray(state.getEpsilonClosure())).map(function (s) {\n return s.number;\n });\n });\n }\n\n return this._transitionTable;\n }\n }]);\n\n return NFA;\n}();\n\nmodule.exports = NFA;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Epsilon, the empty string.\n */\n\nvar EPSILON = 'ε';\n\n/**\n * Epsilon-closure.\n */\nvar EPSILON_CLOSURE = EPSILON + '*';\n\nmodule.exports = {\n EPSILON: EPSILON,\n EPSILON_CLOSURE: EPSILON_CLOSURE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A generic FA State class (base for NFA and DFA).\n *\n * Maintains the transition map, and the flag whether\n * the state is accepting.\n */\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar State = function () {\n function State() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref$accepting = _ref.accepting,\n accepting = _ref$accepting === undefined ? false : _ref$accepting;\n\n _classCallCheck(this, State);\n\n /**\n * Outgoing transitions to other states.\n */\n this._transitions = new Map();\n\n /**\n * Whether the state is accepting.\n */\n this.accepting = accepting;\n }\n\n /**\n * Returns transitions for this state.\n */\n\n\n _createClass(State, [{\n key: 'getTransitions',\n value: function getTransitions() {\n return this._transitions;\n }\n\n /**\n * Creates a transition on symbol.\n */\n\n }, {\n key: 'addTransition',\n value: function addTransition(symbol, toState) {\n this.getTransitionsOnSymbol(symbol).add(toState);\n return this;\n }\n\n /**\n * Returns transitions set on symbol.\n */\n\n }, {\n key: 'getTransitionsOnSymbol',\n value: function getTransitionsOnSymbol(symbol) {\n var transitions = this._transitions.get(symbol);\n\n if (!transitions) {\n transitions = new Set();\n this._transitions.set(symbol, transitions);\n }\n\n return transitions;\n }\n }]);\n\n return State;\n}();\n\nmodule.exports = State;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar clone = require('../utils/clone');\nvar parser = require('../parser');\nvar transform = require('../transform');\nvar optimizationTransforms = require('./transforms');\n\nmodule.exports = {\n /**\n * Optimizer transforms a regular expression into an optimized version,\n * replacing some sub-expressions with their idiomatic patterns.\n *\n * @param string | RegExp | AST - a regexp to optimize.\n *\n * @return TransformResult - an optimized regexp.\n *\n * Example:\n *\n * /[a-zA-Z_0-9][a-zA-Z_0-9]*\\e{1,}/\n *\n * Optimized to:\n *\n * /\\w+e+/\n */\n optimize: function optimize(regexp) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref$whitelist = _ref.whitelist,\n whitelist = _ref$whitelist === undefined ? [] : _ref$whitelist,\n _ref$blacklist = _ref.blacklist,\n blacklist = _ref$blacklist === undefined ? [] : _ref$blacklist;\n\n var transformsRaw = whitelist.length > 0 ? whitelist : Array.from(optimizationTransforms.keys());\n\n var transformToApply = transformsRaw.filter(function (transform) {\n return !blacklist.includes(transform);\n });\n\n var ast = regexp;\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp);\n }\n\n var result = new transform.TransformResult(ast);\n var prevResultString = void 0;\n\n do {\n // Get a copy of the current state here so\n // we can compare it with the state at the\n // end of the loop.\n prevResultString = result.toString();\n ast = clone(result.getAST());\n\n transformToApply.forEach(function (transformName) {\n if (!optimizationTransforms.has(transformName)) {\n throw new Error('Unknown optimization-transform: ' + transformName + '. ' + 'Available transforms are: ' + Array.from(optimizationTransforms.keys()).join(', '));\n }\n\n var transformer = optimizationTransforms.get(transformName);\n\n // Don't override result just yet since we\n // might want to rollback the transform\n var newResult = transform.transform(ast, transformer);\n\n if (newResult.toString() !== result.toString()) {\n if (newResult.toString().length <= result.toString().length) {\n result = newResult;\n } else {\n // Result has changed but is not shorter:\n // restore ast to its previous state.\n\n ast = clone(result.getAST());\n }\n }\n });\n\n // Keep running the optimizer until it stops\n // making any change to the regexp.\n } while (result.toString() !== prevResultString);\n\n return result;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\n/**\n * Transforms case-insensitive regexp to lowercase\n *\n * /AaBbÏ/i -> /aabbï/i\n */\nmodule.exports = {\n _AZClassRanges: null,\n _hasUFlag: false,\n init: function init(ast) {\n this._AZClassRanges = new Set();\n this._hasUFlag = ast.flags.includes('u');\n },\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('i');\n },\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint)) {\n return;\n }\n\n // Engine support for case-insensitive matching without the u flag\n // for characters above \\u1000 does not seem reliable.\n if (!this._hasUFlag && node.codePoint >= 0x1000) {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n // The only class ranges we handle must be inside A-Z.\n // After the `from` char is processed, the isAZClassRange test\n // will be false, so we use a Set to keep track of parents and\n // process the `to` char.\n if (!this._AZClassRanges.has(parent) && !isAZClassRange(parent)) {\n return;\n }\n this._AZClassRanges.add(parent);\n }\n\n var lower = node.symbol.toLowerCase();\n if (lower !== node.symbol) {\n node.value = displaySymbolAsValue(lower, node);\n node.symbol = lower;\n node.codePoint = lower.codePointAt(0);\n }\n }\n};\n\nfunction isAZClassRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n // A-Z\n\n return from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP;\n}\n\nfunction displaySymbolAsValue(symbol, node) {\n var codePoint = symbol.codePointAt(0);\n if (node.kind === 'decimal') {\n return '\\\\' + codePoint;\n }\n if (node.kind === 'oct') {\n return '\\\\0' + codePoint.toString(8);\n }\n if (node.kind === 'hex') {\n return '\\\\x' + codePoint.toString(16);\n }\n if (node.kind === 'unicode') {\n if (node.isSurrogatePair) {\n var _getSurrogatePairFrom = getSurrogatePairFromCodePoint(codePoint),\n lead = _getSurrogatePairFrom.lead,\n trail = _getSurrogatePairFrom.trail;\n\n return '\\\\u' + '0'.repeat(4 - lead.length) + lead + '\\\\u' + '0'.repeat(4 - trail.length) + trail;\n } else if (node.value.includes('{')) {\n return '\\\\u{' + codePoint.toString(16) + '}';\n } else {\n var code = codePoint.toString(16);\n return '\\\\u' + '0'.repeat(4 - code.length) + code;\n }\n }\n // simple\n return symbol;\n}\n\n/**\n * Converts a code point to a surrogate pair.\n * Conversion algorithm is taken from The Unicode Standard 3.0 Section 3.7\n * (https://www.unicode.org/versions/Unicode3.0.0/ch03.pdf)\n * @param {number} codePoint - Between 0x10000 and 0x10ffff\n * @returns {{lead: string, trail: string}}\n */\nfunction getSurrogatePairFromCodePoint(codePoint) {\n var lead = Math.floor((codePoint - 0x10000) / 0x400) + 0xd800;\n var trail = (codePoint - 0x10000) % 0x400 + 0xdc00;\n return {\n lead: lead.toString(16),\n trail: trail.toString(16)\n };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to merge class ranges.\n *\n * [a-ec] -> [a-e]\n * [a-ec-e] -> [a-e]\n * [\\w\\da-f] -> [\\w]\n * [abcdef] -> [a-f]\n */\n\nmodule.exports = {\n _hasIUFlags: false,\n init: function init(ast) {\n this._hasIUFlags = ast.flags.includes('i') && ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var expressions = node.expressions;\n\n var metas = [];\n // Extract metas\n expressions.forEach(function (expression) {\n if (isMeta(expression)) {\n metas.push(expression.value);\n }\n });\n\n expressions.sort(sortCharClass);\n\n for (var i = 0; i < expressions.length; i++) {\n var expression = expressions[i];\n if (fitsInMetas(expression, metas, this._hasIUFlags) || combinesWithPrecedingClassRange(expression, expressions[i - 1]) || combinesWithFollowingClassRange(expression, expressions[i + 1])) {\n expressions.splice(i, 1);\n i--;\n } else {\n var nbMergedChars = charCombinesWithPrecedingChars(expression, i, expressions);\n expressions.splice(i - nbMergedChars + 1, nbMergedChars);\n i -= nbMergedChars;\n }\n }\n }\n};\n\n/**\n * Sorts expressions in char class in the following order:\n * - meta chars, ordered alphabetically by value\n * - chars (except `control` kind) and class ranges, ordered alphabetically (`from` char is used for class ranges)\n * - if ambiguous, class range comes before char\n * - if ambiguous between two class ranges, orders alphabetically by `to` char\n * - control chars, ordered alphabetically by value\n * @param {Object} a - Left Char or ClassRange node\n * @param {Object} b - Right Char or ClassRange node\n * @returns {number}\n */\nfunction sortCharClass(a, b) {\n var aValue = getSortValue(a);\n var bValue = getSortValue(b);\n\n if (aValue === bValue) {\n // We want ClassRange before Char\n // [bb-d] -> [b-db]\n if (a.type === 'ClassRange' && b.type !== 'ClassRange') {\n return -1;\n }\n if (b.type === 'ClassRange' && a.type !== 'ClassRange') {\n return 1;\n }\n if (a.type === 'ClassRange' && b.type === 'ClassRange') {\n return getSortValue(a.to) - getSortValue(b.to);\n }\n if (isMeta(a) && isMeta(b) || isControl(a) && isControl(b)) {\n return a.value < b.value ? -1 : 1;\n }\n }\n return aValue - bValue;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {number}\n */\nfunction getSortValue(expression) {\n if (expression.type === 'Char') {\n if (expression.value === '-') {\n return Infinity;\n }\n if (expression.kind === 'control') {\n return Infinity;\n }\n if (expression.kind === 'meta' && isNaN(expression.codePoint)) {\n return -1;\n }\n return expression.codePoint;\n }\n // ClassRange\n return expression.from.codePoint;\n}\n\n/**\n * Checks if a node is a meta char from the set \\d\\w\\s\\D\\W\\S\n * @param {Object} expression - Char or ClassRange node\n * @param {?string} value\n * @returns {boolean}\n */\nfunction isMeta(expression) {\n var value = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return expression.type === 'Char' && expression.kind === 'meta' && (value ? expression.value === value : /^\\\\[dws]$/i.test(expression.value));\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @returns {boolean}\n */\nfunction isControl(expression) {\n return expression.type === 'Char' && expression.kind === 'control';\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string[]} metas - Array of meta chars, e.g. [\"\\\\w\", \"\\\\s\"]\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetas(expression, metas, hasIUFlags) {\n for (var i = 0; i < metas.length; i++) {\n if (fitsInMeta(expression, metas[i], hasIUFlags)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {string} meta - e.g. \"\\\\w\"\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMeta(expression, meta, hasIUFlags) {\n if (expression.type === 'ClassRange') {\n return fitsInMeta(expression.from, meta, hasIUFlags) && fitsInMeta(expression.to, meta, hasIUFlags);\n }\n\n // Special cases:\n // \\S contains \\w and \\d\n if (meta === '\\\\S' && (isMeta(expression, '\\\\w') || isMeta(expression, '\\\\d'))) {\n return true;\n }\n // \\D contains \\W and \\s\n if (meta === '\\\\D' && (isMeta(expression, '\\\\W') || isMeta(expression, '\\\\s'))) {\n return true;\n }\n // \\w contains \\d\n if (meta === '\\\\w' && isMeta(expression, '\\\\d')) {\n return true;\n }\n // \\W contains \\s\n if (meta === '\\\\W' && isMeta(expression, '\\\\s')) {\n return true;\n }\n\n if (expression.type !== 'Char' || isNaN(expression.codePoint)) {\n return false;\n }\n\n if (meta === '\\\\s') {\n return fitsInMetaS(expression);\n }\n if (meta === '\\\\S') {\n return !fitsInMetaS(expression);\n }\n if (meta === '\\\\d') {\n return fitsInMetaD(expression);\n }\n if (meta === '\\\\D') {\n return !fitsInMetaD(expression);\n }\n if (meta === '\\\\w') {\n return fitsInMetaW(expression, hasIUFlags);\n }\n if (meta === '\\\\W') {\n return !fitsInMetaW(expression, hasIUFlags);\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaS(expression) {\n return expression.codePoint === 0x0009 || // \\t\n expression.codePoint === 0x000a || // \\n\n expression.codePoint === 0x000b || // \\v\n expression.codePoint === 0x000c || // \\f\n expression.codePoint === 0x000d || // \\r\n expression.codePoint === 0x0020 || // space\n expression.codePoint === 0x00a0 || // nbsp\n expression.codePoint === 0x1680 || // part of Zs\n expression.codePoint >= 0x2000 && expression.codePoint <= 0x200a || // part of Zs\n expression.codePoint === 0x2028 || // line separator\n expression.codePoint === 0x2029 || // paragraph separator\n expression.codePoint === 0x202f || // part of Zs\n expression.codePoint === 0x205f || // part of Zs\n expression.codePoint === 0x3000 || // part of Zs\n expression.codePoint === 0xfeff; // zwnbsp\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @returns {boolean}\n */\nfunction fitsInMetaD(expression) {\n return expression.codePoint >= 0x30 && expression.codePoint <= 0x39; // 0-9\n}\n\n/**\n * @param {Object} expression - Char node with codePoint\n * @param {boolean} hasIUFlags\n * @returns {boolean}\n */\nfunction fitsInMetaW(expression, hasIUFlags) {\n return fitsInMetaD(expression) || expression.codePoint >= 0x41 && expression.codePoint <= 0x5a || // A-Z\n expression.codePoint >= 0x61 && expression.codePoint <= 0x7a || // a-z\n expression.value === '_' || hasIUFlags && (expression.codePoint === 0x017f || expression.codePoint === 0x212a);\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithPrecedingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n if (fitsInClassRange(expression, classRange)) {\n // [a-gc] -> [a-g]\n // [a-gc-e] -> [a-g]\n return true;\n } else if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.to.codePoint === expression.codePoint - 1) {\n // [a-de] -> [a-e]\n classRange.to = expression;\n return true;\n } else if (expression.type === 'ClassRange' && expression.from.codePoint <= classRange.to.codePoint + 1 && expression.to.codePoint >= classRange.from.codePoint - 1) {\n // [a-db-f] -> [a-f]\n // [b-fa-d] -> [a-f]\n // [a-cd-f] -> [a-f]\n if (expression.from.codePoint < classRange.from.codePoint) {\n classRange.from = expression.from;\n }\n if (expression.to.codePoint > classRange.to.codePoint) {\n classRange.to = expression.to;\n }\n return true;\n }\n }\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - Char or ClassRange node\n * @returns {boolean}\n */\nfunction combinesWithFollowingClassRange(expression, classRange) {\n if (classRange && classRange.type === 'ClassRange') {\n // Considering the elements were ordered alphabetically,\n // there is only one case to handle\n // [ab-e] -> [a-e]\n if (\n // We only want \\w chars or char codes to keep readability\n isMetaWCharOrCode(expression) && classRange.from.codePoint === expression.codePoint + 1) {\n classRange.from = expression;\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Object} classRange - ClassRange node\n * @returns {boolean}\n */\nfunction fitsInClassRange(expression, classRange) {\n if (expression.type === 'Char' && isNaN(expression.codePoint)) {\n return false;\n }\n if (expression.type === 'ClassRange') {\n return fitsInClassRange(expression.from, classRange) && fitsInClassRange(expression.to, classRange);\n }\n return expression.codePoint >= classRange.from.codePoint && expression.codePoint <= classRange.to.codePoint;\n}\n\n/**\n * @param {Object} expression - Char or ClassRange node\n * @param {Number} index\n * @param {Object[]} expressions - expressions in CharClass\n * @returns {number} - Number of characters combined with expression\n */\nfunction charCombinesWithPrecedingChars(expression, index, expressions) {\n // We only want \\w chars or char codes to keep readability\n if (!isMetaWCharOrCode(expression)) {\n return 0;\n }\n var nbMergedChars = 0;\n while (index > 0) {\n var currentExpression = expressions[index];\n var precedingExpresion = expressions[index - 1];\n if (isMetaWCharOrCode(precedingExpresion) && precedingExpresion.codePoint === currentExpression.codePoint - 1) {\n nbMergedChars++;\n index--;\n } else {\n break;\n }\n }\n\n if (nbMergedChars > 1) {\n expressions[index] = {\n type: 'ClassRange',\n from: expressions[index],\n to: expression\n };\n return nbMergedChars;\n }\n return 0;\n}\n\nfunction isMetaWCharOrCode(expression) {\n return expression && expression.type === 'Char' && !isNaN(expression.codePoint) && (fitsInMetaW(expression, false) || expression.kind === 'unicode' || expression.kind === 'hex' || expression.kind === 'oct' || expression.kind === 'decimal');\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to simplify character classes\n * spanning only one or two chars.\n *\n * [a-a] -> [a]\n * [a-b] -> [ab]\n */\n\nmodule.exports = {\n ClassRange: function ClassRange(path) {\n var node = path.node;\n\n\n if (node.from.codePoint === node.to.codePoint) {\n\n path.replace(node.from);\n } else if (node.from.codePoint === node.to.codePoint - 1) {\n\n path.getParent().insertChildAt(node.to, path.index + 1);\n path.replace(node.from);\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove duplicates from character classes.\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n var sources = {};\n\n for (var i = 0; i < node.expressions.length; i++) {\n var childPath = path.getChild(i);\n var source = childPath.jsonEncode();\n\n if (sources.hasOwnProperty(source)) {\n childPath.remove();\n\n // Since we remove the current node.\n // TODO: make it simpler for users with a method.\n i--;\n }\n\n sources[source] = true;\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace standard character classes with\n * their meta symbols equivalents.\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n _hasIFlag: false,\n _hasUFlag: false,\n init: function init(ast) {\n this._hasIFlag = ast.flags.includes('i');\n this._hasUFlag = ast.flags.includes('u');\n },\n CharacterClass: function CharacterClass(path) {\n // [0-9] -> \\d\n rewriteNumberRanges(path);\n\n // [a-zA-Z_0-9] -> \\w\n rewriteWordRanges(path, this._hasIFlag, this._hasUFlag);\n\n // [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s\n rewriteWhitespaceRanges(path);\n }\n};\n\n/**\n * Rewrites number ranges: [0-9] -> \\d\n */\nfunction rewriteNumberRanges(path) {\n var node = path.node;\n\n\n node.expressions.forEach(function (expression, i) {\n if (isFullNumberRange(expression)) {\n path.getChild(i).replace({\n type: 'Char',\n value: '\\\\d',\n kind: 'meta'\n });\n }\n });\n}\n\n/**\n * Rewrites word ranges: [a-zA-Z_0-9] -> \\w\n * Thus, the ranges may go in any order, and other symbols/ranges\n * are kept untouched, e.g. [a-z_\\dA-Z$] -> [\\w$]\n */\nfunction rewriteWordRanges(path, hasIFlag, hasUFlag) {\n var node = path.node;\n\n\n var numberPath = null;\n var lowerCasePath = null;\n var upperCasePath = null;\n var underscorePath = null;\n var u017fPath = null;\n var u212aPath = null;\n\n node.expressions.forEach(function (expression, i) {\n // \\d\n if (isMetaChar(expression, '\\\\d')) {\n numberPath = path.getChild(i);\n }\n\n // a-z\n else if (isLowerCaseRange(expression)) {\n lowerCasePath = path.getChild(i);\n }\n\n // A-Z\n else if (isUpperCaseRange(expression)) {\n upperCasePath = path.getChild(i);\n }\n\n // _\n else if (isUnderscore(expression)) {\n underscorePath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x017f)) {\n u017fPath = path.getChild(i);\n } else if (hasIFlag && hasUFlag && isCodePoint(expression, 0x212a)) {\n u212aPath = path.getChild(i);\n }\n });\n\n // If we found the whole pattern, replace it.\n if (numberPath && (lowerCasePath && upperCasePath || hasIFlag && (lowerCasePath || upperCasePath)) && underscorePath && (!hasUFlag || !hasIFlag || u017fPath && u212aPath)) {\n // Put \\w in place of \\d.\n numberPath.replace({\n type: 'Char',\n value: '\\\\w',\n kind: 'meta'\n });\n\n // Other paths are removed.\n if (lowerCasePath) {\n lowerCasePath.remove();\n }\n if (upperCasePath) {\n upperCasePath.remove();\n }\n underscorePath.remove();\n if (u017fPath) {\n u017fPath.remove();\n }\n if (u212aPath) {\n u212aPath.remove();\n }\n }\n}\n\n/**\n * Rewrites whitespace ranges: [ \\f\\n\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff] -> \\s.\n */\nvar whitespaceRangeTests = [function (node) {\n return isChar(node, ' ');\n}].concat(_toConsumableArray(['\\\\f', '\\\\n', '\\\\r', '\\\\t', '\\\\v'].map(function (char) {\n return function (node) {\n return isMetaChar(node, char);\n };\n})), _toConsumableArray([0x00a0, 0x1680, 0x2028, 0x2029, 0x202f, 0x205f, 0x3000, 0xfeff].map(function (codePoint) {\n return function (node) {\n return isCodePoint(node, codePoint);\n };\n})), [function (node) {\n return node.type === 'ClassRange' && isCodePoint(node.from, 0x2000) && isCodePoint(node.to, 0x200a);\n}]);\n\nfunction rewriteWhitespaceRanges(path) {\n var node = path.node;\n\n\n if (node.expressions.length < whitespaceRangeTests.length || !whitespaceRangeTests.every(function (test) {\n return node.expressions.some(function (expression) {\n return test(expression);\n });\n })) {\n return;\n }\n\n // If we found the whole pattern, replace it.\n\n // Put \\s in place of \\n.\n var nNode = node.expressions.find(function (expression) {\n return isMetaChar(expression, '\\\\n');\n });\n nNode.value = '\\\\s';\n nNode.symbol = undefined;\n nNode.codePoint = NaN;\n\n // Other paths are removed.\n node.expressions.map(function (expression, i) {\n return whitespaceRangeTests.some(function (test) {\n return test(expression);\n }) ? path.getChild(i) : undefined;\n }).filter(Boolean).forEach(function (path) {\n return path.remove();\n });\n}\n\nfunction isFullNumberRange(node) {\n return node.type === 'ClassRange' && node.from.value === '0' && node.to.value === '9';\n}\n\nfunction isChar(node, value) {\n var kind = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'simple';\n\n return node.type === 'Char' && node.value === value && node.kind === kind;\n}\n\nfunction isMetaChar(node, value) {\n return isChar(node, value, 'meta');\n}\n\nfunction isLowerCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'a' && node.to.value === 'z';\n}\n\nfunction isUpperCaseRange(node) {\n return node.type === 'ClassRange' && node.from.value === 'A' && node.to.value === 'Z';\n}\n\nfunction isUnderscore(node) {\n return node.type === 'Char' && node.value === '_' && node.kind === 'simple';\n}\n\nfunction isCodePoint(node, codePoint) {\n return node.type === 'Char' && node.kind === 'unicode' && node.codePoint === codePoint;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char character classes with\n * just that character.\n *\n * [\\d] -> \\d, [^\\w] -> \\W\n */\n\nmodule.exports = {\n CharacterClass: function CharacterClass(path) {\n var node = path.node;\n\n\n if (node.expressions.length !== 1 || !hasAppropriateSiblings(path) || !isAppropriateChar(node.expressions[0])) {\n return;\n }\n\n var _node$expressions$ = node.expressions[0],\n value = _node$expressions$.value,\n kind = _node$expressions$.kind,\n escaped = _node$expressions$.escaped;\n\n\n if (node.negative) {\n // For negative can extract only meta chars like [^\\w] -> \\W\n // cannot do for [^a] -> a (wrong).\n if (!isMeta(value)) {\n return;\n }\n\n value = getInverseMeta(value);\n }\n\n path.replace({\n type: 'Char',\n value: value,\n kind: kind,\n escaped: escaped || shouldEscape(value)\n });\n }\n};\n\nfunction isAppropriateChar(node) {\n return node.type === 'Char' &&\n // We don't extract [\\b] (backspace) since \\b has different\n // semantics (word boundary).\n node.value !== '\\\\b';\n}\n\nfunction isMeta(value) {\n return (/^\\\\[dwsDWS]$/.test(value)\n );\n}\n\nfunction getInverseMeta(value) {\n return (/[dws]/.test(value) ? value.toUpperCase() : value.toLowerCase()\n );\n}\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1[0] to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2[0] to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}\n\n// Note: \\{ and \\} are always preserved to avoid `a[{]2[}]` turning\n// into `a{2}`.\nfunction shouldEscape(value) {\n return (/[*[()+?$./{}|]/.test(value)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar UPPER_A_CP = 'A'.codePointAt(0);\nvar UPPER_Z_CP = 'Z'.codePointAt(0);\nvar LOWER_A_CP = 'a'.codePointAt(0);\nvar LOWER_Z_CP = 'z'.codePointAt(0);\nvar DIGIT_0_CP = '0'.codePointAt(0);\nvar DIGIT_9_CP = '9'.codePointAt(0);\n\n/**\n * A regexp-tree plugin to transform coded chars into simple chars.\n *\n * \\u0061 -> a\n */\nmodule.exports = {\n Char: function Char(path) {\n var node = path.node,\n parent = path.parent;\n\n if (isNaN(node.codePoint) || node.kind === 'simple') {\n return;\n }\n\n if (parent.type === 'ClassRange') {\n if (!isSimpleRange(parent)) {\n return;\n }\n }\n\n if (!isPrintableASCIIChar(node.codePoint)) {\n return;\n }\n\n var symbol = String.fromCodePoint(node.codePoint);\n var newChar = {\n type: 'Char',\n kind: 'simple',\n value: symbol,\n symbol: symbol,\n codePoint: node.codePoint\n };\n if (needsEscape(symbol, parent.type)) {\n newChar.escaped = true;\n }\n path.replace(newChar);\n }\n};\n\n/**\n * Checks if a range is included either in 0-9, a-z or A-Z\n * @param classRange\n * @returns {boolean}\n */\nfunction isSimpleRange(classRange) {\n var from = classRange.from,\n to = classRange.to;\n\n return from.codePoint >= DIGIT_0_CP && from.codePoint <= DIGIT_9_CP && to.codePoint >= DIGIT_0_CP && to.codePoint <= DIGIT_9_CP || from.codePoint >= UPPER_A_CP && from.codePoint <= UPPER_Z_CP && to.codePoint >= UPPER_A_CP && to.codePoint <= UPPER_Z_CP || from.codePoint >= LOWER_A_CP && from.codePoint <= LOWER_Z_CP && to.codePoint >= LOWER_A_CP && to.codePoint <= LOWER_Z_CP;\n}\n\n/**\n * Checks if a code point in the range of printable ASCII chars\n * (DEL char excluded)\n * @param codePoint\n * @returns {boolean}\n */\nfunction isPrintableASCIIChar(codePoint) {\n return codePoint >= 0x20 && codePoint <= 0x7e;\n}\n\nfunction needsEscape(symbol, parentType) {\n if (parentType === 'ClassRange' || parentType === 'CharacterClass') {\n return (/[\\]\\\\^-]/.test(symbol)\n );\n }\n\n return (/[*[()+?^$./\\\\|{}]/.test(symbol)\n );\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary escape.\n *\n * \\e -> e\n *\n * [\\(] -> [(]\n */\n\nmodule.exports = {\n _hasXFlag: false,\n init: function init(ast) {\n this._hasXFlag = ast.flags.includes('x');\n },\n Char: function Char(path) {\n var node = path.node;\n\n\n if (!node.escaped) {\n return;\n }\n\n if (shouldUnescape(path, this._hasXFlag)) {\n delete node.escaped;\n }\n }\n};\n\nfunction shouldUnescape(path, hasXFlag) {\n var value = path.node.value,\n index = path.index,\n parent = path.parent;\n\n // In char class (, etc are allowed.\n\n if (parent.type !== 'CharacterClass' && parent.type !== 'ClassRange') {\n return !preservesEscape(value, index, parent, hasXFlag);\n }\n\n return !preservesInCharClass(value, index, parent);\n}\n\n/**\n * \\], \\\\, \\^, \\-\n */\nfunction preservesInCharClass(value, index, parent) {\n if (value === '^') {\n // Avoid [\\^a] turning into [^a]\n return index === 0 && !parent.negative;\n }\n if (value === '-') {\n // Avoid [a\\-z] turning into [a-z]\n return true;\n }\n return (/[\\]\\\\]/.test(value)\n );\n}\n\nfunction preservesEscape(value, index, parent, hasXFlag) {\n if (value === '{') {\n return preservesOpeningCurlyBraceEscape(index, parent);\n }\n\n if (value === '}') {\n return preservesClosingCurlyBraceEscape(index, parent);\n }\n\n if (hasXFlag && /[ #]/.test(value)) {\n return true;\n }\n\n return (/[*[()+?^$./\\\\|]/.test(value)\n );\n}\n\nfunction consumeNumbers(startIndex, parent, rtl) {\n var i = startIndex;\n var siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n\n while (siblingNode && siblingNode.type === 'Char' && siblingNode.kind === 'simple' && !siblingNode.escaped && /\\d/.test(siblingNode.value)) {\n rtl ? i-- : i++;\n siblingNode = (rtl ? i >= 0 : i < parent.expressions.length) && parent.expressions[i];\n }\n\n return Math.abs(startIndex - i);\n}\n\nfunction isSimpleChar(node, value) {\n return node && node.type === 'Char' && node.kind === 'simple' && !node.escaped && node.value === value;\n}\n\nfunction preservesOpeningCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbFollowingNumbers = consumeNumbers(index + 1, parent);\n var i = index + nbFollowingNumbers + 1;\n var nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n if (nbFollowingNumbers) {\n // Avoid \\{3} turning into {3}\n if (isSimpleChar(nextSiblingNode, '}')) {\n return true;\n }\n\n if (isSimpleChar(nextSiblingNode, ',')) {\n nbFollowingNumbers = consumeNumbers(i + 1, parent);\n i = i + nbFollowingNumbers + 1;\n nextSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid \\{3,} turning into {3,}\n return isSimpleChar(nextSiblingNode, '}');\n }\n }\n return false;\n}\n\nfunction preservesClosingCurlyBraceEscape(index, parent) {\n // (?:\\{) -> (?:{)\n if (index == null) {\n return false;\n }\n\n var nbPrecedingNumbers = consumeNumbers(index - 1, parent, true);\n var i = index - nbPrecedingNumbers - 1;\n var previousSiblingNode = i >= 0 && parent.expressions[i];\n\n // Avoid {3\\} turning into {3}\n if (nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{')) {\n return true;\n }\n\n if (isSimpleChar(previousSiblingNode, ',')) {\n nbPrecedingNumbers = consumeNumbers(i - 1, parent, true);\n i = i - nbPrecedingNumbers - 1;\n previousSiblingNode = i < parent.expressions.length && parent.expressions[i];\n\n // Avoid {3,\\} turning into {3,}\n return nbPrecedingNumbers && isSimpleChar(previousSiblingNode, '{');\n }\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to transform surrogate pairs into single unicode code point\n *\n * \\ud83d\\ude80 -> \\u{1f680}\n */\n\nmodule.exports = {\n shouldRun: function shouldRun(ast) {\n return ast.flags.includes('u');\n },\n Char: function Char(path) {\n var node = path.node;\n\n if (node.kind !== 'unicode' || !node.isSurrogatePair || isNaN(node.codePoint)) {\n return;\n }\n node.value = '\\\\u{' + node.codePoint.toString(16) + '}';\n delete node.isSurrogatePair;\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to combine repeating patterns.\n *\n * /^abcabcabc/ -> /^abc{3}/\n * /^(?:abc){2}abc/ -> /^(?:abc){3}/\n * /^abc(?:abc){2}/ -> /^(?:abc){3}/\n */\n\nmodule.exports = {\n Alternative: function Alternative(path) {\n var node = path.node;\n\n // We can skip the first child\n\n var index = 1;\n while (index < node.expressions.length) {\n var child = path.getChild(index);\n index = Math.max(1, combineRepeatingPatternLeft(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineWithPreviousRepetition(path, child, index));\n\n if (index >= node.expressions.length) {\n break;\n }\n\n child = path.getChild(index);\n index = Math.max(1, combineRepetitionWithPrevious(path, child, index));\n\n index++;\n }\n }\n};\n\n// abcabc -> (?:abc){2}\nfunction combineRepeatingPatternLeft(alternative, child, index) {\n var node = alternative.node;\n\n\n var nbPossibleLengths = Math.ceil(index / 2);\n var i = 0;\n\n while (i < nbPossibleLengths) {\n var startIndex = index - 2 * i - 1;\n var right = void 0,\n left = void 0;\n\n if (i === 0) {\n right = child;\n left = alternative.getChild(startIndex);\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - i, index)), [child.node])\n });\n\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(startIndex, index - i)))\n });\n }\n\n if (right.hasEqualSource(left)) {\n for (var j = 0; j < 2 * i + 1; j++) {\n alternative.getChild(startIndex).remove();\n }\n\n child.replace({\n type: 'Repetition',\n expression: i === 0 && right.node.type !== 'Repetition' ? right.node : {\n type: 'Group',\n capturing: false,\n expression: right.node\n },\n quantifier: {\n type: 'Quantifier',\n kind: 'Range',\n from: 2,\n to: 2,\n greedy: true\n }\n });\n return startIndex;\n }\n\n i++;\n }\n\n return index;\n}\n\n// (?:abc){2}abc -> (?:abc){3}\nfunction combineWithPreviousRepetition(alternative, child, index) {\n var node = alternative.node;\n\n\n var i = 0;\n while (i < index) {\n var previousChild = alternative.getChild(i);\n\n if (previousChild.node.type === 'Repetition' && previousChild.node.quantifier.greedy) {\n var left = previousChild.getChild();\n var right = void 0;\n\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n\n if (i + 1 === index) {\n right = child;\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n } else {\n right = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(i + 1, index + 1)))\n });\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = i; j < index; j++) {\n alternative.getChild(i + 1).remove();\n }\n\n increaseQuantifierByOne(previousChild.node.quantifier);\n\n return i;\n }\n }\n\n i++;\n }\n return index;\n}\n\n// abc(?:abc){2} -> (?:abc){3}\nfunction combineRepetitionWithPrevious(alternative, child, index) {\n var node = alternative.node;\n\n\n if (child.node.type === 'Repetition' && child.node.quantifier.greedy) {\n var right = child.getChild();\n var left = void 0;\n\n if (right.node.type === 'Group' && !right.node.capturing) {\n right = right.getChild();\n }\n\n var rightLength = void 0;\n if (right.node.type === 'Alternative') {\n rightLength = right.node.expressions.length;\n left = NodePath.getForNode({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(node.expressions.slice(index - rightLength, index)))\n });\n } else {\n rightLength = 1;\n left = alternative.getChild(index - 1);\n if (left.node.type === 'Group' && !left.node.capturing) {\n left = left.getChild();\n }\n }\n\n if (left.hasEqualSource(right)) {\n for (var j = index - rightLength; j < index; j++) {\n alternative.getChild(index - rightLength).remove();\n }\n\n increaseQuantifierByOne(child.node.quantifier);\n\n return index - rightLength;\n }\n }\n return index;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('../../traverse/node-path');\n\nvar _require = require('../../transform/utils'),\n disjunctionToList = _require.disjunctionToList,\n listToDisjunction = _require.listToDisjunction;\n\n/**\n * Removes duplicates from a disjunction sequence:\n *\n * /(ab|bc|ab)+(xy|xy)+/ -> /(ab|bc)+(xy)+/\n */\n\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node;\n\n // Make unique nodes.\n\n var uniqueNodesMap = {};\n\n var parts = disjunctionToList(node).filter(function (part) {\n var encoded = part ? NodePath.getForNode(part).jsonEncode() : 'null';\n\n // Already recorded this part, filter out.\n if (uniqueNodesMap.hasOwnProperty(encoded)) {\n return false;\n }\n\n uniqueNodesMap[encoded] = part;\n return true;\n });\n\n // Replace with the optimized disjunction.\n path.replace(listToDisjunction(parts));\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace single char group disjunction to char group\n *\n * a|b|c -> [abc]\n * [12]|3|4 -> [1234]\n * (a|b|c) -> ([abc])\n * (?:a|b|c) -> [abc]\n */\n\nmodule.exports = {\n Disjunction: function Disjunction(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (!handlers[parent.type]) {\n return;\n }\n\n var charset = new Map();\n\n if (!shouldProcess(node, charset) || !charset.size) {\n return;\n }\n\n var characterClass = {\n type: 'CharacterClass',\n expressions: Array.from(charset.keys()).sort().map(function (key) {\n return charset.get(key);\n })\n };\n\n handlers[parent.type](path.getParent(), characterClass);\n }\n};\n\nvar handlers = {\n RegExp: function RegExp(path, characterClass) {\n var node = path.node;\n\n\n node.body = characterClass;\n },\n Group: function Group(path, characterClass) {\n var node = path.node;\n\n\n if (node.capturing) {\n node.expression = characterClass;\n } else {\n path.replace(characterClass);\n }\n }\n};\n\nfunction shouldProcess(expression, charset) {\n if (!expression) {\n // Abort on empty disjunction part\n return false;\n }\n\n var type = expression.type;\n\n\n if (type === 'Disjunction') {\n var left = expression.left,\n right = expression.right;\n\n\n return shouldProcess(left, charset) && shouldProcess(right, charset);\n } else if (type === 'Char') {\n if (expression.kind === 'meta' && expression.symbol === '.') {\n return false;\n }\n\n var value = expression.value;\n\n\n charset.set(value, expression);\n\n return true;\n } else if (type === 'CharacterClass' && !expression.negative) {\n return expression.expressions.every(function (expression) {\n return shouldProcess(expression, charset);\n });\n }\n\n return false;\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = new Map([\n// \\ud83d\\ude80 -> \\u{1f680}\n['charSurrogatePairToSingleUnicode', require('./char-surrogate-pair-to-single-unicode-transform')],\n\n// \\u0061 -> a\n['charCodeToSimpleChar', require('./char-code-to-simple-char-transform')],\n\n// /Aa/i -> /aa/i\n['charCaseInsensitiveLowerCaseTransform', require('./char-case-insensitive-lowercase-transform')],\n\n// [\\d\\d] -> [\\d]\n['charClassRemoveDuplicates', require('./char-class-remove-duplicates-transform')],\n\n// a{1,2}a{2,3} -> a{3,5}\n['quantifiersMerge', require('./quantifiers-merge-transform')],\n\n// a{1,} -> a+, a{3,3} -> a{3}, a{1} -> a\n['quantifierRangeToSymbol', require('./quantifier-range-to-symbol-transform')],\n\n// [a-a] -> [a], [a-b] -> [ab]\n['charClassClassrangesToChars', require('./char-class-classranges-to-chars-transform')],\n\n// [0-9] -> [\\d]\n['charClassToMeta', require('./char-class-to-meta-transform')],\n\n// [\\d] -> \\d, [^\\w] -> \\W\n['charClassToSingleChar', require('./char-class-to-single-char-transform')],\n\n// \\e -> e\n['charEscapeUnescape', require('./char-escape-unescape-transform')],\n\n// [a-de-f] -> [a-f]\n['charClassClassrangesMerge', require('./char-class-classranges-merge-transform')],\n\n// (ab|ab) -> (ab)\n['disjunctionRemoveDuplicates', require('./disjunction-remove-duplicates-transform')],\n\n// (a|b|c) -> [abc]\n['groupSingleCharsToCharClass', require('./group-single-chars-to-char-class')],\n\n// (?:)a -> a\n['removeEmptyGroup', require('./remove-empty-group-transform')],\n\n// (?:a) -> a\n['ungroup', require('./ungroup-transform')],\n\n// abcabcabc -> (?:abc){3}\n['combineRepeatingPatterns', require('./combine-repeating-patterns-transform')]]);","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to replace different range-based quantifiers\n * with their symbol equivalents.\n *\n * a{0,} -> a*\n * a{1,} -> a+\n * a{1} -> a\n *\n * NOTE: the following is automatically handled in the generator:\n *\n * a{3,3} -> a{3}\n */\n\nmodule.exports = {\n Quantifier: function Quantifier(path) {\n var node = path.node;\n\n\n if (node.kind !== 'Range') {\n return;\n }\n\n // a{0,} -> a*\n rewriteOpenZero(path);\n\n // a{1,} -> a+\n rewriteOpenOne(path);\n\n // a{1} -> a\n rewriteExactOne(path);\n }\n};\n\nfunction rewriteOpenZero(path) {\n var node = path.node;\n\n\n if (node.from !== 0 || node.to) {\n return;\n }\n\n node.kind = '*';\n delete node.from;\n}\n\nfunction rewriteOpenOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to) {\n return;\n }\n\n node.kind = '+';\n delete node.from;\n}\n\nfunction rewriteExactOne(path) {\n var node = path.node;\n\n\n if (node.from !== 1 || node.to !== 1) {\n return;\n }\n\n path.parentPath.replace(path.parentPath.node.expression);\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _require = require('../../transform/utils'),\n increaseQuantifierByOne = _require.increaseQuantifierByOne;\n\n/**\n * A regexp-tree plugin to merge quantifiers\n *\n * a+a+ -> a{2,}\n * a{2}a{3} -> a{5}\n * a{1,2}a{2,3} -> a{3,5}\n */\n\n\nmodule.exports = {\n Repetition: function Repetition(path) {\n var node = path.node,\n parent = path.parent;\n\n\n if (parent.type !== 'Alternative' || !path.index) {\n return;\n }\n\n var previousSibling = path.getPreviousSibling();\n\n if (!previousSibling) {\n return;\n }\n\n if (previousSibling.node.type === 'Repetition') {\n if (!previousSibling.getChild().hasEqualSource(path.getChild())) {\n return;\n }\n\n var _extractFromTo = extractFromTo(previousSibling.node.quantifier),\n previousSiblingFrom = _extractFromTo.from,\n previousSiblingTo = _extractFromTo.to;\n\n var _extractFromTo2 = extractFromTo(node.quantifier),\n nodeFrom = _extractFromTo2.from,\n nodeTo = _extractFromTo2.to;\n\n // It's does not seem reliable to merge quantifiers with different greediness\n // when none of both is a greedy open range\n\n\n if (previousSibling.node.quantifier.greedy !== node.quantifier.greedy && !isGreedyOpenRange(previousSibling.node.quantifier) && !isGreedyOpenRange(node.quantifier)) {\n return;\n }\n\n // a*a* -> a*\n // a*a+ -> a+\n // a+a+ -> a{2,}\n // a{2}a{4} -> a{6}\n // a{1,2}a{2,3} -> a{3,5}\n // a{1,}a{2,} -> a{3,}\n // a+a{2,} -> a{3,}\n\n // a??a{2,} -> a{2,}\n // a*?a{2,} -> a{2,}\n // a+?a{2,} -> a{3,}\n\n node.quantifier.kind = 'Range';\n node.quantifier.from = previousSiblingFrom + nodeFrom;\n if (previousSiblingTo && nodeTo) {\n node.quantifier.to = previousSiblingTo + nodeTo;\n } else {\n delete node.quantifier.to;\n }\n if (isGreedyOpenRange(previousSibling.node.quantifier) || isGreedyOpenRange(node.quantifier)) {\n node.quantifier.greedy = true;\n }\n\n previousSibling.remove();\n } else {\n if (!previousSibling.hasEqualSource(path.getChild())) {\n return;\n }\n\n increaseQuantifierByOne(node.quantifier);\n previousSibling.remove();\n }\n }\n};\n\nfunction isGreedyOpenRange(quantifier) {\n return quantifier.greedy && (quantifier.kind === '+' || quantifier.kind === '*' || quantifier.kind === 'Range' && !quantifier.to);\n}\n\nfunction extractFromTo(quantifier) {\n var from = void 0,\n to = void 0;\n if (quantifier.kind === '*') {\n from = 0;\n } else if (quantifier.kind === '+') {\n from = 1;\n } else if (quantifier.kind === '?') {\n from = 0;\n to = 1;\n } else {\n from = quantifier.from;\n if (quantifier.to) {\n to = quantifier.to;\n }\n }\n return { from: from, to: to };\n}","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove non-capturing empty groups.\n *\n * /(?:)a/ -> /a/\n * /a|(?:)/ -> /a|/\n */\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || childPath) {\n return;\n }\n\n if (parent.type === 'Repetition') {\n\n path.getParent().replace(node);\n } else if (parent.type !== 'RegExp') {\n\n path.remove();\n }\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * A regexp-tree plugin to remove unnecessary groups.\n *\n * /(?:a)/ -> /a/\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nmodule.exports = {\n Group: function Group(path) {\n var node = path.node,\n parent = path.parent;\n\n var childPath = path.getChild();\n\n if (node.capturing || !childPath) {\n return;\n }\n\n // Don't optimize \\1(?:0) to \\10\n if (!hasAppropriateSiblings(path)) {\n return;\n }\n\n // Don't optimize /a(?:b|c)/ to /ab|c/\n // but /(?:b|c)/ to /b|c/ is ok\n if (childPath.node.type === 'Disjunction' && parent.type !== 'RegExp') {\n return;\n }\n\n // Don't optimize /(?:ab)+/ to /ab+/\n // but /(?:a)+/ to /a+/ is ok\n // and /(?:[a-d])+/ to /[a-d]+/ is ok too\n if (parent.type === 'Repetition' && childPath.node.type !== 'Char' && childPath.node.type !== 'CharacterClass') {\n return;\n }\n\n if (childPath.node.type === 'Alternative') {\n var parentPath = path.getParent();\n if (parentPath.node.type === 'Alternative') {\n // /abc(?:def)ghi/ When (?:def) is ungrouped its content must be merged with parent alternative\n\n parentPath.replace({\n type: 'Alternative',\n expressions: [].concat(_toConsumableArray(parent.expressions.slice(0, path.index)), _toConsumableArray(childPath.node.expressions), _toConsumableArray(parent.expressions.slice(path.index + 1)))\n });\n }\n } else {\n path.replace(childPath.node);\n }\n }\n};\n\nfunction hasAppropriateSiblings(path) {\n var parent = path.parent,\n index = path.index;\n\n\n if (parent.type !== 'Alternative') {\n return true;\n }\n\n var previousNode = parent.expressions[index - 1];\n if (previousNode == null) {\n return true;\n }\n\n // Don't optimized \\1(?:0) to \\10\n if (previousNode.type === 'Backreference' && previousNode.kind === 'number') {\n return false;\n }\n\n // Don't optimized \\2(?:0) to \\20\n if (previousNode.type === 'Char' && previousNode.kind === 'decimal') {\n return false;\n }\n\n return true;\n}","/**\n * LR parser generated by the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * npm install -g syntax-cli\n *\n * syntax-cli --help\n *\n * To regenerate run:\n *\n * syntax-cli \\\n * --grammar ~/path-to-grammar-file \\\n * --mode \\\n * --output ~/path-to-output-parser-file.js\n */\n\n'use strict';\n\n/**\n * Matched token text.\n */\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nvar yytext = void 0;\n\n/**\n * Length of the matched token text.\n */\nvar yyleng = void 0;\n\n/**\n * Storage object.\n */\nvar yy = {};\n\n/**\n * Result of semantic action.\n */\nvar __ = void 0;\n\n/**\n * Result location object.\n */\nvar __loc = void 0;\n\nfunction yyloc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n // Epsilon doesn't produce location.\n if (!start || !end) {\n return start || end;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nvar EOF = '$';\n\n/**\n * List of productions (generated by Syntax tool).\n */\nvar productions = [[-1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [0, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n __ = Node({\n type: 'RegExp',\n body: _2,\n flags: checkFlags(_4)\n }, loc(_1loc, _4loc || _3loc));\n}], [1, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [1, 0, function () {\n __loc = null;__ = '';\n}], [2, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [2, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1 + _2;\n}], [3, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [4, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n // Location for empty disjunction: /|/\n var _loc = null;\n\n if (_2loc) {\n _loc = loc(_1loc || _2loc, _3loc || _2loc);\n };\n\n __ = Node({\n type: 'Disjunction',\n left: _1,\n right: _3\n }, _loc);\n}], [5, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n if (_1.length === 0) {\n __ = null;\n return;\n }\n\n if (_1.length === 1) {\n __ = Node(_1[0], __loc);\n } else {\n __ = Node({\n type: 'Alternative',\n expressions: _1\n }, __loc);\n }\n}], [6, 0, function () {\n __loc = null;__ = [];\n}], [6, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = _1.concat(_2);\n}], [7, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Node(Object.assign({ type: 'Assertion' }, _1), __loc);\n}], [7, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n __ = _1;\n\n if (_2) {\n __ = Node({\n type: 'Repetition',\n expression: _1,\n quantifier: _2\n }, __loc);\n }\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '^' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '$' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\b' };\n}], [8, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = { kind: '\\\\B' };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookahead',\n negative: true,\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n assertion: _2\n };\n}], [8, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = {\n kind: 'Lookbehind',\n negative: true,\n assertion: _2\n };\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [9, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1.slice(1), 'simple', __loc);__.escaped = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);__.isSurrogatePair = true;\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'unicode', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = UnicodeProperty(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'control', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'hex', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'oct', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = GroupRefOrDecChar(_1, __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}], [10, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = NamedGroupRefOrChars(_1, _1loc);\n}], [11, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [11, 0], [12, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [12, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);\n _1.greedy = false;\n __ = _1;\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: _1,\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: getRange(_1)[0],\n greedy: true\n }, __loc);\n}], [13, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);\n var range = getRange(_1);\n __ = Node({\n type: 'Quantifier',\n kind: 'Range',\n from: range[0],\n to: range[1],\n greedy: true\n }, __loc);\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [14, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n var nameRaw = String(_1);\n var name = decodeUnicodeGroupName(nameRaw);\n if (!yy.options.allowGroupNameDuplicates && namedGroups.hasOwnProperty(name)) {\n throw new SyntaxError('Duplicate of the named group \"' + name + '\".');\n }\n\n namedGroups[name] = _1.groupNumber;\n\n __ = Node({\n type: 'Group',\n capturing: true,\n name: name,\n nameRaw: nameRaw,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [15, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: true,\n number: _1.groupNumber,\n expression: _2\n }, __loc);\n}], [16, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'Group',\n capturing: false,\n expression: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n negative: true,\n expressions: _2\n }, __loc);\n}], [17, 3, function (_1, _2, _3, _1loc, _2loc, _3loc) {\n __loc = yyloc(_1loc, _3loc);\n __ = Node({\n type: 'CharacterClass',\n expressions: _2\n }, __loc);\n}], [18, 0, function () {\n __loc = null;__ = [];\n}], [18, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [19, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = [_1];\n}], [19, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [19, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [20, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [20, 2, function (_1, _2, _1loc, _2loc) {\n __loc = yyloc(_1loc, _2loc);__ = [_1].concat(_2);\n}], [20, 4, function (_1, _2, _3, _4, _1loc, _2loc, _3loc, _4loc) {\n __loc = yyloc(_1loc, _4loc);\n checkClassRange(_1, _3);\n\n __ = [Node({\n type: 'ClassRange',\n from: _1,\n to: _3\n }, loc(_1loc, _3loc))];\n\n if (_4) {\n __ = __.concat(_4);\n }\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'simple', __loc);\n}], [21, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = _1;\n}], [22, 1, function (_1, _1loc) {\n __loc = yyloc(_1loc, _1loc);__ = Char(_1, 'meta', __loc);\n}]];\n\n/**\n * Encoded tokens map.\n */\nvar tokens = { \"SLASH\": \"23\", \"CHAR\": \"24\", \"BAR\": \"25\", \"BOS\": \"26\", \"EOS\": \"27\", \"ESC_b\": \"28\", \"ESC_B\": \"29\", \"POS_LA_ASSERT\": \"30\", \"R_PAREN\": \"31\", \"NEG_LA_ASSERT\": \"32\", \"POS_LB_ASSERT\": \"33\", \"NEG_LB_ASSERT\": \"34\", \"ESC_CHAR\": \"35\", \"U_CODE_SURROGATE\": \"36\", \"U_CODE\": \"37\", \"U_PROP_VALUE_EXP\": \"38\", \"CTRL_CH\": \"39\", \"HEX_CODE\": \"40\", \"OCT_CODE\": \"41\", \"DEC_CODE\": \"42\", \"META_CHAR\": \"43\", \"ANY\": \"44\", \"NAMED_GROUP_REF\": \"45\", \"Q_MARK\": \"46\", \"STAR\": \"47\", \"PLUS\": \"48\", \"RANGE_EXACT\": \"49\", \"RANGE_OPEN\": \"50\", \"RANGE_CLOSED\": \"51\", \"NAMED_CAPTURE_GROUP\": \"52\", \"L_PAREN\": \"53\", \"NON_CAPTURE_GROUP\": \"54\", \"NEG_CLASS\": \"55\", \"R_BRACKET\": \"56\", \"L_BRACKET\": \"57\", \"DASH\": \"58\", \"$\": \"59\" };\n\n/**\n * Parsing table (generated by Syntax tool).\n */\nvar table = [{ \"0\": 1, \"23\": \"s2\" }, { \"59\": \"acc\" }, { \"3\": 3, \"4\": 4, \"5\": 5, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"s7\" }, { \"23\": \"r6\", \"25\": \"s12\" }, { \"23\": \"r7\", \"25\": \"r7\", \"31\": \"r7\" }, { \"7\": 14, \"8\": 15, \"9\": 16, \"10\": 25, \"14\": 27, \"15\": 42, \"16\": 43, \"17\": 26, \"23\": \"r9\", \"24\": \"s28\", \"25\": \"r9\", \"26\": \"s17\", \"27\": \"s18\", \"28\": \"s19\", \"29\": \"s20\", \"30\": \"s21\", \"31\": \"r9\", \"32\": \"s22\", \"33\": \"s23\", \"34\": \"s24\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"52\": \"s44\", \"53\": \"s45\", \"54\": \"s46\", \"55\": \"s40\", \"57\": \"s41\" }, { \"1\": 8, \"2\": 9, \"24\": \"s10\", \"59\": \"r3\" }, { \"59\": \"r1\" }, { \"24\": \"s11\", \"59\": \"r2\" }, { \"24\": \"r4\", \"59\": \"r4\" }, { \"24\": \"r5\", \"59\": \"r5\" }, { \"5\": 13, \"6\": 6, \"23\": \"r10\", \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r8\", \"25\": \"r8\", \"31\": \"r8\" }, { \"23\": \"r11\", \"24\": \"r11\", \"25\": \"r11\", \"26\": \"r11\", \"27\": \"r11\", \"28\": \"r11\", \"29\": \"r11\", \"30\": \"r11\", \"31\": \"r11\", \"32\": \"r11\", \"33\": \"r11\", \"34\": \"r11\", \"35\": \"r11\", \"36\": \"r11\", \"37\": \"r11\", \"38\": \"r11\", \"39\": \"r11\", \"40\": \"r11\", \"41\": \"r11\", \"42\": \"r11\", \"43\": \"r11\", \"44\": \"r11\", \"45\": \"r11\", \"52\": \"r11\", \"53\": \"r11\", \"54\": \"r11\", \"55\": \"r11\", \"57\": \"r11\" }, { \"23\": \"r12\", \"24\": \"r12\", \"25\": \"r12\", \"26\": \"r12\", \"27\": \"r12\", \"28\": \"r12\", \"29\": \"r12\", \"30\": \"r12\", \"31\": \"r12\", \"32\": \"r12\", \"33\": \"r12\", \"34\": \"r12\", \"35\": \"r12\", \"36\": \"r12\", \"37\": \"r12\", \"38\": \"r12\", \"39\": \"r12\", \"40\": \"r12\", \"41\": \"r12\", \"42\": \"r12\", \"43\": \"r12\", \"44\": \"r12\", \"45\": \"r12\", \"52\": \"r12\", \"53\": \"r12\", \"54\": \"r12\", \"55\": \"r12\", \"57\": \"r12\" }, { \"11\": 47, \"12\": 48, \"13\": 49, \"23\": \"r38\", \"24\": \"r38\", \"25\": \"r38\", \"26\": \"r38\", \"27\": \"r38\", \"28\": \"r38\", \"29\": \"r38\", \"30\": \"r38\", \"31\": \"r38\", \"32\": \"r38\", \"33\": \"r38\", \"34\": \"r38\", \"35\": \"r38\", \"36\": \"r38\", \"37\": \"r38\", \"38\": \"r38\", \"39\": \"r38\", \"40\": \"r38\", \"41\": \"r38\", \"42\": \"r38\", \"43\": \"r38\", \"44\": \"r38\", \"45\": \"r38\", \"46\": \"s52\", \"47\": \"s50\", \"48\": \"s51\", \"49\": \"s53\", \"50\": \"s54\", \"51\": \"s55\", \"52\": \"r38\", \"53\": \"r38\", \"54\": \"r38\", \"55\": \"r38\", \"57\": \"r38\" }, { \"23\": \"r14\", \"24\": \"r14\", \"25\": \"r14\", \"26\": \"r14\", \"27\": \"r14\", \"28\": \"r14\", \"29\": \"r14\", \"30\": \"r14\", \"31\": \"r14\", \"32\": \"r14\", \"33\": \"r14\", \"34\": \"r14\", \"35\": \"r14\", \"36\": \"r14\", \"37\": \"r14\", \"38\": \"r14\", \"39\": \"r14\", \"40\": \"r14\", \"41\": \"r14\", \"42\": \"r14\", \"43\": \"r14\", \"44\": \"r14\", \"45\": \"r14\", \"52\": \"r14\", \"53\": \"r14\", \"54\": \"r14\", \"55\": \"r14\", \"57\": \"r14\" }, { \"23\": \"r15\", \"24\": \"r15\", \"25\": \"r15\", \"26\": \"r15\", \"27\": \"r15\", \"28\": \"r15\", \"29\": \"r15\", \"30\": \"r15\", \"31\": \"r15\", \"32\": \"r15\", \"33\": \"r15\", \"34\": \"r15\", \"35\": \"r15\", \"36\": \"r15\", \"37\": \"r15\", \"38\": \"r15\", \"39\": \"r15\", \"40\": \"r15\", \"41\": \"r15\", \"42\": \"r15\", \"43\": \"r15\", \"44\": \"r15\", \"45\": \"r15\", \"52\": \"r15\", \"53\": \"r15\", \"54\": \"r15\", \"55\": \"r15\", \"57\": \"r15\" }, { \"23\": \"r16\", \"24\": \"r16\", \"25\": \"r16\", \"26\": \"r16\", \"27\": \"r16\", \"28\": \"r16\", \"29\": \"r16\", \"30\": \"r16\", \"31\": \"r16\", \"32\": \"r16\", \"33\": \"r16\", \"34\": \"r16\", \"35\": \"r16\", \"36\": \"r16\", \"37\": \"r16\", \"38\": \"r16\", \"39\": \"r16\", \"40\": \"r16\", \"41\": \"r16\", \"42\": \"r16\", \"43\": \"r16\", \"44\": \"r16\", \"45\": \"r16\", \"52\": \"r16\", \"53\": \"r16\", \"54\": \"r16\", \"55\": \"r16\", \"57\": \"r16\" }, { \"23\": \"r17\", \"24\": \"r17\", \"25\": \"r17\", \"26\": \"r17\", \"27\": \"r17\", \"28\": \"r17\", \"29\": \"r17\", \"30\": \"r17\", \"31\": \"r17\", \"32\": \"r17\", \"33\": \"r17\", \"34\": \"r17\", \"35\": \"r17\", \"36\": \"r17\", \"37\": \"r17\", \"38\": \"r17\", \"39\": \"r17\", \"40\": \"r17\", \"41\": \"r17\", \"42\": \"r17\", \"43\": \"r17\", \"44\": \"r17\", \"45\": \"r17\", \"52\": \"r17\", \"53\": \"r17\", \"54\": \"r17\", \"55\": \"r17\", \"57\": \"r17\" }, { \"4\": 57, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 59, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 61, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 63, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r22\", \"24\": \"r22\", \"25\": \"r22\", \"26\": \"r22\", \"27\": \"r22\", \"28\": \"r22\", \"29\": \"r22\", \"30\": \"r22\", \"31\": \"r22\", \"32\": \"r22\", \"33\": \"r22\", \"34\": \"r22\", \"35\": \"r22\", \"36\": \"r22\", \"37\": \"r22\", \"38\": \"r22\", \"39\": \"r22\", \"40\": \"r22\", \"41\": \"r22\", \"42\": \"r22\", \"43\": \"r22\", \"44\": \"r22\", \"45\": \"r22\", \"46\": \"r22\", \"47\": \"r22\", \"48\": \"r22\", \"49\": \"r22\", \"50\": \"r22\", \"51\": \"r22\", \"52\": \"r22\", \"53\": \"r22\", \"54\": \"r22\", \"55\": \"r22\", \"57\": \"r22\" }, { \"23\": \"r23\", \"24\": \"r23\", \"25\": \"r23\", \"26\": \"r23\", \"27\": \"r23\", \"28\": \"r23\", \"29\": \"r23\", \"30\": \"r23\", \"31\": \"r23\", \"32\": \"r23\", \"33\": \"r23\", \"34\": \"r23\", \"35\": \"r23\", \"36\": \"r23\", \"37\": \"r23\", \"38\": \"r23\", \"39\": \"r23\", \"40\": \"r23\", \"41\": \"r23\", \"42\": \"r23\", \"43\": \"r23\", \"44\": \"r23\", \"45\": \"r23\", \"46\": \"r23\", \"47\": \"r23\", \"48\": \"r23\", \"49\": \"r23\", \"50\": \"r23\", \"51\": \"r23\", \"52\": \"r23\", \"53\": \"r23\", \"54\": \"r23\", \"55\": \"r23\", \"57\": \"r23\" }, { \"23\": \"r24\", \"24\": \"r24\", \"25\": \"r24\", \"26\": \"r24\", \"27\": \"r24\", \"28\": \"r24\", \"29\": \"r24\", \"30\": \"r24\", \"31\": \"r24\", \"32\": \"r24\", \"33\": \"r24\", \"34\": \"r24\", \"35\": \"r24\", \"36\": \"r24\", \"37\": \"r24\", \"38\": \"r24\", \"39\": \"r24\", \"40\": \"r24\", \"41\": \"r24\", \"42\": \"r24\", \"43\": \"r24\", \"44\": \"r24\", \"45\": \"r24\", \"46\": \"r24\", \"47\": \"r24\", \"48\": \"r24\", \"49\": \"r24\", \"50\": \"r24\", \"51\": \"r24\", \"52\": \"r24\", \"53\": \"r24\", \"54\": \"r24\", \"55\": \"r24\", \"57\": \"r24\" }, { \"23\": \"r25\", \"24\": \"r25\", \"25\": \"r25\", \"26\": \"r25\", \"27\": \"r25\", \"28\": \"r25\", \"29\": \"r25\", \"30\": \"r25\", \"31\": \"r25\", \"32\": \"r25\", \"33\": \"r25\", \"34\": \"r25\", \"35\": \"r25\", \"36\": \"r25\", \"37\": \"r25\", \"38\": \"r25\", \"39\": \"r25\", \"40\": \"r25\", \"41\": \"r25\", \"42\": \"r25\", \"43\": \"r25\", \"44\": \"r25\", \"45\": \"r25\", \"46\": \"r25\", \"47\": \"r25\", \"48\": \"r25\", \"49\": \"r25\", \"50\": \"r25\", \"51\": \"r25\", \"52\": \"r25\", \"53\": \"r25\", \"54\": \"r25\", \"55\": \"r25\", \"56\": \"r25\", \"57\": \"r25\", \"58\": \"r25\" }, { \"23\": \"r26\", \"24\": \"r26\", \"25\": \"r26\", \"26\": \"r26\", \"27\": \"r26\", \"28\": \"r26\", \"29\": \"r26\", \"30\": \"r26\", \"31\": \"r26\", \"32\": \"r26\", \"33\": \"r26\", \"34\": \"r26\", \"35\": \"r26\", \"36\": \"r26\", \"37\": \"r26\", \"38\": \"r26\", \"39\": \"r26\", \"40\": \"r26\", \"41\": \"r26\", \"42\": \"r26\", \"43\": \"r26\", \"44\": \"r26\", \"45\": \"r26\", \"46\": \"r26\", \"47\": \"r26\", \"48\": \"r26\", \"49\": \"r26\", \"50\": \"r26\", \"51\": \"r26\", \"52\": \"r26\", \"53\": \"r26\", \"54\": \"r26\", \"55\": \"r26\", \"56\": \"r26\", \"57\": \"r26\", \"58\": \"r26\" }, { \"23\": \"r27\", \"24\": \"r27\", \"25\": \"r27\", \"26\": \"r27\", \"27\": \"r27\", \"28\": \"r27\", \"29\": \"r27\", \"30\": \"r27\", \"31\": \"r27\", \"32\": \"r27\", \"33\": \"r27\", \"34\": \"r27\", \"35\": \"r27\", \"36\": \"r27\", \"37\": \"r27\", \"38\": \"r27\", \"39\": \"r27\", \"40\": \"r27\", \"41\": \"r27\", \"42\": \"r27\", \"43\": \"r27\", \"44\": \"r27\", \"45\": \"r27\", \"46\": \"r27\", \"47\": \"r27\", \"48\": \"r27\", \"49\": \"r27\", \"50\": \"r27\", \"51\": \"r27\", \"52\": \"r27\", \"53\": \"r27\", \"54\": \"r27\", \"55\": \"r27\", \"56\": \"r27\", \"57\": \"r27\", \"58\": \"r27\" }, { \"23\": \"r28\", \"24\": \"r28\", \"25\": \"r28\", \"26\": \"r28\", \"27\": \"r28\", \"28\": \"r28\", \"29\": \"r28\", \"30\": \"r28\", \"31\": \"r28\", \"32\": \"r28\", \"33\": \"r28\", \"34\": \"r28\", \"35\": \"r28\", \"36\": \"r28\", \"37\": \"r28\", \"38\": \"r28\", \"39\": \"r28\", \"40\": \"r28\", \"41\": \"r28\", \"42\": \"r28\", \"43\": \"r28\", \"44\": \"r28\", \"45\": \"r28\", \"46\": \"r28\", \"47\": \"r28\", \"48\": \"r28\", \"49\": \"r28\", \"50\": \"r28\", \"51\": \"r28\", \"52\": \"r28\", \"53\": \"r28\", \"54\": \"r28\", \"55\": \"r28\", \"56\": \"r28\", \"57\": \"r28\", \"58\": \"r28\" }, { \"23\": \"r29\", \"24\": \"r29\", \"25\": \"r29\", \"26\": \"r29\", \"27\": \"r29\", \"28\": \"r29\", \"29\": \"r29\", \"30\": \"r29\", \"31\": \"r29\", \"32\": \"r29\", \"33\": \"r29\", \"34\": \"r29\", \"35\": \"r29\", \"36\": \"r29\", \"37\": \"r29\", \"38\": \"r29\", \"39\": \"r29\", \"40\": \"r29\", \"41\": \"r29\", \"42\": \"r29\", \"43\": \"r29\", \"44\": \"r29\", \"45\": \"r29\", \"46\": \"r29\", \"47\": \"r29\", \"48\": \"r29\", \"49\": \"r29\", \"50\": \"r29\", \"51\": \"r29\", \"52\": \"r29\", \"53\": \"r29\", \"54\": \"r29\", \"55\": \"r29\", \"56\": \"r29\", \"57\": \"r29\", \"58\": \"r29\" }, { \"23\": \"r30\", \"24\": \"r30\", \"25\": \"r30\", \"26\": \"r30\", \"27\": \"r30\", \"28\": \"r30\", \"29\": \"r30\", \"30\": \"r30\", \"31\": \"r30\", \"32\": \"r30\", \"33\": \"r30\", \"34\": \"r30\", \"35\": \"r30\", \"36\": \"r30\", \"37\": \"r30\", \"38\": \"r30\", \"39\": \"r30\", \"40\": \"r30\", \"41\": \"r30\", \"42\": \"r30\", \"43\": \"r30\", \"44\": \"r30\", \"45\": \"r30\", \"46\": \"r30\", \"47\": \"r30\", \"48\": \"r30\", \"49\": \"r30\", \"50\": \"r30\", \"51\": \"r30\", \"52\": \"r30\", \"53\": \"r30\", \"54\": \"r30\", \"55\": \"r30\", \"56\": \"r30\", \"57\": \"r30\", \"58\": \"r30\" }, { \"23\": \"r31\", \"24\": \"r31\", \"25\": \"r31\", \"26\": \"r31\", \"27\": \"r31\", \"28\": \"r31\", \"29\": \"r31\", \"30\": \"r31\", \"31\": \"r31\", \"32\": \"r31\", \"33\": \"r31\", \"34\": \"r31\", \"35\": \"r31\", \"36\": \"r31\", \"37\": \"r31\", \"38\": \"r31\", \"39\": \"r31\", \"40\": \"r31\", \"41\": \"r31\", \"42\": \"r31\", \"43\": \"r31\", \"44\": \"r31\", \"45\": \"r31\", \"46\": \"r31\", \"47\": \"r31\", \"48\": \"r31\", \"49\": \"r31\", \"50\": \"r31\", \"51\": \"r31\", \"52\": \"r31\", \"53\": \"r31\", \"54\": \"r31\", \"55\": \"r31\", \"56\": \"r31\", \"57\": \"r31\", \"58\": \"r31\" }, { \"23\": \"r32\", \"24\": \"r32\", \"25\": \"r32\", \"26\": \"r32\", \"27\": \"r32\", \"28\": \"r32\", \"29\": \"r32\", \"30\": \"r32\", \"31\": \"r32\", \"32\": \"r32\", \"33\": \"r32\", \"34\": \"r32\", \"35\": \"r32\", \"36\": \"r32\", \"37\": \"r32\", \"38\": \"r32\", \"39\": \"r32\", \"40\": \"r32\", \"41\": \"r32\", \"42\": \"r32\", \"43\": \"r32\", \"44\": \"r32\", \"45\": \"r32\", \"46\": \"r32\", \"47\": \"r32\", \"48\": \"r32\", \"49\": \"r32\", \"50\": \"r32\", \"51\": \"r32\", \"52\": \"r32\", \"53\": \"r32\", \"54\": \"r32\", \"55\": \"r32\", \"56\": \"r32\", \"57\": \"r32\", \"58\": \"r32\" }, { \"23\": \"r33\", \"24\": \"r33\", \"25\": \"r33\", \"26\": \"r33\", \"27\": \"r33\", \"28\": \"r33\", \"29\": \"r33\", \"30\": \"r33\", \"31\": \"r33\", \"32\": \"r33\", \"33\": \"r33\", \"34\": \"r33\", \"35\": \"r33\", \"36\": \"r33\", \"37\": \"r33\", \"38\": \"r33\", \"39\": \"r33\", \"40\": \"r33\", \"41\": \"r33\", \"42\": \"r33\", \"43\": \"r33\", \"44\": \"r33\", \"45\": \"r33\", \"46\": \"r33\", \"47\": \"r33\", \"48\": \"r33\", \"49\": \"r33\", \"50\": \"r33\", \"51\": \"r33\", \"52\": \"r33\", \"53\": \"r33\", \"54\": \"r33\", \"55\": \"r33\", \"56\": \"r33\", \"57\": \"r33\", \"58\": \"r33\" }, { \"23\": \"r34\", \"24\": \"r34\", \"25\": \"r34\", \"26\": \"r34\", \"27\": \"r34\", \"28\": \"r34\", \"29\": \"r34\", \"30\": \"r34\", \"31\": \"r34\", \"32\": \"r34\", \"33\": \"r34\", \"34\": \"r34\", \"35\": \"r34\", \"36\": \"r34\", \"37\": \"r34\", \"38\": \"r34\", \"39\": \"r34\", \"40\": \"r34\", \"41\": \"r34\", \"42\": \"r34\", \"43\": \"r34\", \"44\": \"r34\", \"45\": \"r34\", \"46\": \"r34\", \"47\": \"r34\", \"48\": \"r34\", \"49\": \"r34\", \"50\": \"r34\", \"51\": \"r34\", \"52\": \"r34\", \"53\": \"r34\", \"54\": \"r34\", \"55\": \"r34\", \"56\": \"r34\", \"57\": \"r34\", \"58\": \"r34\" }, { \"23\": \"r35\", \"24\": \"r35\", \"25\": \"r35\", \"26\": \"r35\", \"27\": \"r35\", \"28\": \"r35\", \"29\": \"r35\", \"30\": \"r35\", \"31\": \"r35\", \"32\": \"r35\", \"33\": \"r35\", \"34\": \"r35\", \"35\": \"r35\", \"36\": \"r35\", \"37\": \"r35\", \"38\": \"r35\", \"39\": \"r35\", \"40\": \"r35\", \"41\": \"r35\", \"42\": \"r35\", \"43\": \"r35\", \"44\": \"r35\", \"45\": \"r35\", \"46\": \"r35\", \"47\": \"r35\", \"48\": \"r35\", \"49\": \"r35\", \"50\": \"r35\", \"51\": \"r35\", \"52\": \"r35\", \"53\": \"r35\", \"54\": \"r35\", \"55\": \"r35\", \"56\": \"r35\", \"57\": \"r35\", \"58\": \"r35\" }, { \"23\": \"r36\", \"24\": \"r36\", \"25\": \"r36\", \"26\": \"r36\", \"27\": \"r36\", \"28\": \"r36\", \"29\": \"r36\", \"30\": \"r36\", \"31\": \"r36\", \"32\": \"r36\", \"33\": \"r36\", \"34\": \"r36\", \"35\": \"r36\", \"36\": \"r36\", \"37\": \"r36\", \"38\": \"r36\", \"39\": \"r36\", \"40\": \"r36\", \"41\": \"r36\", \"42\": \"r36\", \"43\": \"r36\", \"44\": \"r36\", \"45\": \"r36\", \"46\": \"r36\", \"47\": \"r36\", \"48\": \"r36\", \"49\": \"r36\", \"50\": \"r36\", \"51\": \"r36\", \"52\": \"r36\", \"53\": \"r36\", \"54\": \"r36\", \"55\": \"r36\", \"56\": \"r36\", \"57\": \"r36\", \"58\": \"r36\" }, { \"10\": 70, \"18\": 65, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 83, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"23\": \"r47\", \"24\": \"r47\", \"25\": \"r47\", \"26\": \"r47\", \"27\": \"r47\", \"28\": \"r47\", \"29\": \"r47\", \"30\": \"r47\", \"31\": \"r47\", \"32\": \"r47\", \"33\": \"r47\", \"34\": \"r47\", \"35\": \"r47\", \"36\": \"r47\", \"37\": \"r47\", \"38\": \"r47\", \"39\": \"r47\", \"40\": \"r47\", \"41\": \"r47\", \"42\": \"r47\", \"43\": \"r47\", \"44\": \"r47\", \"45\": \"r47\", \"46\": \"r47\", \"47\": \"r47\", \"48\": \"r47\", \"49\": \"r47\", \"50\": \"r47\", \"51\": \"r47\", \"52\": \"r47\", \"53\": \"r47\", \"54\": \"r47\", \"55\": \"r47\", \"57\": \"r47\" }, { \"23\": \"r48\", \"24\": \"r48\", \"25\": \"r48\", \"26\": \"r48\", \"27\": \"r48\", \"28\": \"r48\", \"29\": \"r48\", \"30\": \"r48\", \"31\": \"r48\", \"32\": \"r48\", \"33\": \"r48\", \"34\": \"r48\", \"35\": \"r48\", \"36\": \"r48\", \"37\": \"r48\", \"38\": \"r48\", \"39\": \"r48\", \"40\": \"r48\", \"41\": \"r48\", \"42\": \"r48\", \"43\": \"r48\", \"44\": \"r48\", \"45\": \"r48\", \"46\": \"r48\", \"47\": \"r48\", \"48\": \"r48\", \"49\": \"r48\", \"50\": \"r48\", \"51\": \"r48\", \"52\": \"r48\", \"53\": \"r48\", \"54\": \"r48\", \"55\": \"r48\", \"57\": \"r48\" }, { \"4\": 85, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 87, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"4\": 89, \"5\": 5, \"6\": 6, \"24\": \"r10\", \"25\": \"r10\", \"26\": \"r10\", \"27\": \"r10\", \"28\": \"r10\", \"29\": \"r10\", \"30\": \"r10\", \"31\": \"r10\", \"32\": \"r10\", \"33\": \"r10\", \"34\": \"r10\", \"35\": \"r10\", \"36\": \"r10\", \"37\": \"r10\", \"38\": \"r10\", \"39\": \"r10\", \"40\": \"r10\", \"41\": \"r10\", \"42\": \"r10\", \"43\": \"r10\", \"44\": \"r10\", \"45\": \"r10\", \"52\": \"r10\", \"53\": \"r10\", \"54\": \"r10\", \"55\": \"r10\", \"57\": \"r10\" }, { \"23\": \"r13\", \"24\": \"r13\", \"25\": \"r13\", \"26\": \"r13\", \"27\": \"r13\", \"28\": \"r13\", \"29\": \"r13\", \"30\": \"r13\", \"31\": \"r13\", \"32\": \"r13\", \"33\": \"r13\", \"34\": \"r13\", \"35\": \"r13\", \"36\": \"r13\", \"37\": \"r13\", \"38\": \"r13\", \"39\": \"r13\", \"40\": \"r13\", \"41\": \"r13\", \"42\": \"r13\", \"43\": \"r13\", \"44\": \"r13\", \"45\": \"r13\", \"52\": \"r13\", \"53\": \"r13\", \"54\": \"r13\", \"55\": \"r13\", \"57\": \"r13\" }, { \"23\": \"r37\", \"24\": \"r37\", \"25\": \"r37\", \"26\": \"r37\", \"27\": \"r37\", \"28\": \"r37\", \"29\": \"r37\", \"30\": \"r37\", \"31\": \"r37\", \"32\": \"r37\", \"33\": \"r37\", \"34\": \"r37\", \"35\": \"r37\", \"36\": \"r37\", \"37\": \"r37\", \"38\": \"r37\", \"39\": \"r37\", \"40\": \"r37\", \"41\": \"r37\", \"42\": \"r37\", \"43\": \"r37\", \"44\": \"r37\", \"45\": \"r37\", \"52\": \"r37\", \"53\": \"r37\", \"54\": \"r37\", \"55\": \"r37\", \"57\": \"r37\" }, { \"23\": \"r39\", \"24\": \"r39\", \"25\": \"r39\", \"26\": \"r39\", \"27\": \"r39\", \"28\": \"r39\", \"29\": \"r39\", \"30\": \"r39\", \"31\": \"r39\", \"32\": \"r39\", \"33\": \"r39\", \"34\": \"r39\", \"35\": \"r39\", \"36\": \"r39\", \"37\": \"r39\", \"38\": \"r39\", \"39\": \"r39\", \"40\": \"r39\", \"41\": \"r39\", \"42\": \"r39\", \"43\": \"r39\", \"44\": \"r39\", \"45\": \"r39\", \"46\": \"s56\", \"52\": \"r39\", \"53\": \"r39\", \"54\": \"r39\", \"55\": \"r39\", \"57\": \"r39\" }, { \"23\": \"r41\", \"24\": \"r41\", \"25\": \"r41\", \"26\": \"r41\", \"27\": \"r41\", \"28\": \"r41\", \"29\": \"r41\", \"30\": \"r41\", \"31\": \"r41\", \"32\": \"r41\", \"33\": \"r41\", \"34\": \"r41\", \"35\": \"r41\", \"36\": \"r41\", \"37\": \"r41\", \"38\": \"r41\", \"39\": \"r41\", \"40\": \"r41\", \"41\": \"r41\", \"42\": \"r41\", \"43\": \"r41\", \"44\": \"r41\", \"45\": \"r41\", \"46\": \"r41\", \"52\": \"r41\", \"53\": \"r41\", \"54\": \"r41\", \"55\": \"r41\", \"57\": \"r41\" }, { \"23\": \"r42\", \"24\": \"r42\", \"25\": \"r42\", \"26\": \"r42\", \"27\": \"r42\", \"28\": \"r42\", \"29\": \"r42\", \"30\": \"r42\", \"31\": \"r42\", \"32\": \"r42\", \"33\": \"r42\", \"34\": \"r42\", \"35\": \"r42\", \"36\": \"r42\", \"37\": \"r42\", \"38\": \"r42\", \"39\": \"r42\", \"40\": \"r42\", \"41\": \"r42\", \"42\": \"r42\", \"43\": \"r42\", \"44\": \"r42\", \"45\": \"r42\", \"46\": \"r42\", \"52\": \"r42\", \"53\": \"r42\", \"54\": \"r42\", \"55\": \"r42\", \"57\": \"r42\" }, { \"23\": \"r43\", \"24\": \"r43\", \"25\": \"r43\", \"26\": \"r43\", \"27\": \"r43\", \"28\": \"r43\", \"29\": \"r43\", \"30\": \"r43\", \"31\": \"r43\", \"32\": \"r43\", \"33\": \"r43\", \"34\": \"r43\", \"35\": \"r43\", \"36\": \"r43\", \"37\": \"r43\", \"38\": \"r43\", \"39\": \"r43\", \"40\": \"r43\", \"41\": \"r43\", \"42\": \"r43\", \"43\": \"r43\", \"44\": \"r43\", \"45\": \"r43\", \"46\": \"r43\", \"52\": \"r43\", \"53\": \"r43\", \"54\": \"r43\", \"55\": \"r43\", \"57\": \"r43\" }, { \"23\": \"r44\", \"24\": \"r44\", \"25\": \"r44\", \"26\": \"r44\", \"27\": \"r44\", \"28\": \"r44\", \"29\": \"r44\", \"30\": \"r44\", \"31\": \"r44\", \"32\": \"r44\", \"33\": \"r44\", \"34\": \"r44\", \"35\": \"r44\", \"36\": \"r44\", \"37\": \"r44\", \"38\": \"r44\", \"39\": \"r44\", \"40\": \"r44\", \"41\": \"r44\", \"42\": \"r44\", \"43\": \"r44\", \"44\": \"r44\", \"45\": \"r44\", \"46\": \"r44\", \"52\": \"r44\", \"53\": \"r44\", \"54\": \"r44\", \"55\": \"r44\", \"57\": \"r44\" }, { \"23\": \"r45\", \"24\": \"r45\", \"25\": \"r45\", \"26\": \"r45\", \"27\": \"r45\", \"28\": \"r45\", \"29\": \"r45\", \"30\": \"r45\", \"31\": \"r45\", \"32\": \"r45\", \"33\": \"r45\", \"34\": \"r45\", \"35\": \"r45\", \"36\": \"r45\", \"37\": \"r45\", \"38\": \"r45\", \"39\": \"r45\", \"40\": \"r45\", \"41\": \"r45\", \"42\": \"r45\", \"43\": \"r45\", \"44\": \"r45\", \"45\": \"r45\", \"46\": \"r45\", \"52\": \"r45\", \"53\": \"r45\", \"54\": \"r45\", \"55\": \"r45\", \"57\": \"r45\" }, { \"23\": \"r46\", \"24\": \"r46\", \"25\": \"r46\", \"26\": \"r46\", \"27\": \"r46\", \"28\": \"r46\", \"29\": \"r46\", \"30\": \"r46\", \"31\": \"r46\", \"32\": \"r46\", \"33\": \"r46\", \"34\": \"r46\", \"35\": \"r46\", \"36\": \"r46\", \"37\": \"r46\", \"38\": \"r46\", \"39\": \"r46\", \"40\": \"r46\", \"41\": \"r46\", \"42\": \"r46\", \"43\": \"r46\", \"44\": \"r46\", \"45\": \"r46\", \"46\": \"r46\", \"52\": \"r46\", \"53\": \"r46\", \"54\": \"r46\", \"55\": \"r46\", \"57\": \"r46\" }, { \"23\": \"r40\", \"24\": \"r40\", \"25\": \"r40\", \"26\": \"r40\", \"27\": \"r40\", \"28\": \"r40\", \"29\": \"r40\", \"30\": \"r40\", \"31\": \"r40\", \"32\": \"r40\", \"33\": \"r40\", \"34\": \"r40\", \"35\": \"r40\", \"36\": \"r40\", \"37\": \"r40\", \"38\": \"r40\", \"39\": \"r40\", \"40\": \"r40\", \"41\": \"r40\", \"42\": \"r40\", \"43\": \"r40\", \"44\": \"r40\", \"45\": \"r40\", \"52\": \"r40\", \"53\": \"r40\", \"54\": \"r40\", \"55\": \"r40\", \"57\": \"r40\" }, { \"25\": \"s12\", \"31\": \"s58\" }, { \"23\": \"r18\", \"24\": \"r18\", \"25\": \"r18\", \"26\": \"r18\", \"27\": \"r18\", \"28\": \"r18\", \"29\": \"r18\", \"30\": \"r18\", \"31\": \"r18\", \"32\": \"r18\", \"33\": \"r18\", \"34\": \"r18\", \"35\": \"r18\", \"36\": \"r18\", \"37\": \"r18\", \"38\": \"r18\", \"39\": \"r18\", \"40\": \"r18\", \"41\": \"r18\", \"42\": \"r18\", \"43\": \"r18\", \"44\": \"r18\", \"45\": \"r18\", \"52\": \"r18\", \"53\": \"r18\", \"54\": \"r18\", \"55\": \"r18\", \"57\": \"r18\" }, { \"25\": \"s12\", \"31\": \"s60\" }, { \"23\": \"r19\", \"24\": \"r19\", \"25\": \"r19\", \"26\": \"r19\", \"27\": \"r19\", \"28\": \"r19\", \"29\": \"r19\", \"30\": \"r19\", \"31\": \"r19\", \"32\": \"r19\", \"33\": \"r19\", \"34\": \"r19\", \"35\": \"r19\", \"36\": \"r19\", \"37\": \"r19\", \"38\": \"r19\", \"39\": \"r19\", \"40\": \"r19\", \"41\": \"r19\", \"42\": \"r19\", \"43\": \"r19\", \"44\": \"r19\", \"45\": \"r19\", \"52\": \"r19\", \"53\": \"r19\", \"54\": \"r19\", \"55\": \"r19\", \"57\": \"r19\" }, { \"25\": \"s12\", \"31\": \"s62\" }, { \"23\": \"r20\", \"24\": \"r20\", \"25\": \"r20\", \"26\": \"r20\", \"27\": \"r20\", \"28\": \"r20\", \"29\": \"r20\", \"30\": \"r20\", \"31\": \"r20\", \"32\": \"r20\", \"33\": \"r20\", \"34\": \"r20\", \"35\": \"r20\", \"36\": \"r20\", \"37\": \"r20\", \"38\": \"r20\", \"39\": \"r20\", \"40\": \"r20\", \"41\": \"r20\", \"42\": \"r20\", \"43\": \"r20\", \"44\": \"r20\", \"45\": \"r20\", \"52\": \"r20\", \"53\": \"r20\", \"54\": \"r20\", \"55\": \"r20\", \"57\": \"r20\" }, { \"25\": \"s12\", \"31\": \"s64\" }, { \"23\": \"r21\", \"24\": \"r21\", \"25\": \"r21\", \"26\": \"r21\", \"27\": \"r21\", \"28\": \"r21\", \"29\": \"r21\", \"30\": \"r21\", \"31\": \"r21\", \"32\": \"r21\", \"33\": \"r21\", \"34\": \"r21\", \"35\": \"r21\", \"36\": \"r21\", \"37\": \"r21\", \"38\": \"r21\", \"39\": \"r21\", \"40\": \"r21\", \"41\": \"r21\", \"42\": \"r21\", \"43\": \"r21\", \"44\": \"r21\", \"45\": \"r21\", \"52\": \"r21\", \"53\": \"r21\", \"54\": \"r21\", \"55\": \"r21\", \"57\": \"r21\" }, { \"56\": \"s72\" }, { \"56\": \"r55\" }, { \"10\": 70, \"20\": 73, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r56\", \"58\": \"s74\" }, { \"24\": \"r62\", \"28\": \"r62\", \"35\": \"r62\", \"36\": \"r62\", \"37\": \"r62\", \"38\": \"r62\", \"39\": \"r62\", \"40\": \"r62\", \"41\": \"r62\", \"42\": \"r62\", \"43\": \"r62\", \"44\": \"r62\", \"45\": \"r62\", \"56\": \"r62\", \"58\": \"r62\" }, { \"24\": \"r63\", \"28\": \"r63\", \"35\": \"r63\", \"36\": \"r63\", \"37\": \"r63\", \"38\": \"r63\", \"39\": \"r63\", \"40\": \"r63\", \"41\": \"r63\", \"42\": \"r63\", \"43\": \"r63\", \"44\": \"r63\", \"45\": \"r63\", \"56\": \"r63\", \"58\": \"r63\" }, { \"24\": \"r64\", \"28\": \"r64\", \"35\": \"r64\", \"36\": \"r64\", \"37\": \"r64\", \"38\": \"r64\", \"39\": \"r64\", \"40\": \"r64\", \"41\": \"r64\", \"42\": \"r64\", \"43\": \"r64\", \"44\": \"r64\", \"45\": \"r64\", \"56\": \"r64\", \"58\": \"r64\" }, { \"24\": \"r65\", \"28\": \"r65\", \"35\": \"r65\", \"36\": \"r65\", \"37\": \"r65\", \"38\": \"r65\", \"39\": \"r65\", \"40\": \"r65\", \"41\": \"r65\", \"42\": \"r65\", \"43\": \"r65\", \"44\": \"r65\", \"45\": \"r65\", \"56\": \"r65\", \"58\": \"r65\" }, { \"23\": \"r52\", \"24\": \"r52\", \"25\": \"r52\", \"26\": \"r52\", \"27\": \"r52\", \"28\": \"r52\", \"29\": \"r52\", \"30\": \"r52\", \"31\": \"r52\", \"32\": \"r52\", \"33\": \"r52\", \"34\": \"r52\", \"35\": \"r52\", \"36\": \"r52\", \"37\": \"r52\", \"38\": \"r52\", \"39\": \"r52\", \"40\": \"r52\", \"41\": \"r52\", \"42\": \"r52\", \"43\": \"r52\", \"44\": \"r52\", \"45\": \"r52\", \"46\": \"r52\", \"47\": \"r52\", \"48\": \"r52\", \"49\": \"r52\", \"50\": \"r52\", \"51\": \"r52\", \"52\": \"r52\", \"53\": \"r52\", \"54\": \"r52\", \"55\": \"r52\", \"57\": \"r52\" }, { \"56\": \"r57\" }, { \"10\": 70, \"21\": 77, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"56\": \"r59\" }, { \"10\": 70, \"20\": 79, \"21\": 75, \"22\": 76, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r63\", \"58\": \"s80\" }, { \"10\": 70, \"18\": 78, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r58\" }, { \"56\": \"r60\" }, { \"10\": 70, \"21\": 81, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r62\", \"58\": \"s68\" }, { \"10\": 70, \"18\": 82, \"19\": 66, \"21\": 67, \"22\": 69, \"24\": \"s28\", \"28\": \"s71\", \"35\": \"s29\", \"36\": \"s30\", \"37\": \"s31\", \"38\": \"s32\", \"39\": \"s33\", \"40\": \"s34\", \"41\": \"s35\", \"42\": \"s36\", \"43\": \"s37\", \"44\": \"s38\", \"45\": \"s39\", \"56\": \"r54\", \"58\": \"s68\" }, { \"56\": \"r61\" }, { \"56\": \"s84\" }, { \"23\": \"r53\", \"24\": \"r53\", \"25\": \"r53\", \"26\": \"r53\", \"27\": \"r53\", \"28\": \"r53\", \"29\": \"r53\", \"30\": \"r53\", \"31\": \"r53\", \"32\": \"r53\", \"33\": \"r53\", \"34\": \"r53\", \"35\": \"r53\", \"36\": \"r53\", \"37\": \"r53\", \"38\": \"r53\", \"39\": \"r53\", \"40\": \"r53\", \"41\": \"r53\", \"42\": \"r53\", \"43\": \"r53\", \"44\": \"r53\", \"45\": \"r53\", \"46\": \"r53\", \"47\": \"r53\", \"48\": \"r53\", \"49\": \"r53\", \"50\": \"r53\", \"51\": \"r53\", \"52\": \"r53\", \"53\": \"r53\", \"54\": \"r53\", \"55\": \"r53\", \"57\": \"r53\" }, { \"25\": \"s12\", \"31\": \"s86\" }, { \"23\": \"r49\", \"24\": \"r49\", \"25\": \"r49\", \"26\": \"r49\", \"27\": \"r49\", \"28\": \"r49\", \"29\": \"r49\", \"30\": \"r49\", \"31\": \"r49\", \"32\": \"r49\", \"33\": \"r49\", \"34\": \"r49\", \"35\": \"r49\", \"36\": \"r49\", \"37\": \"r49\", \"38\": \"r49\", \"39\": \"r49\", \"40\": \"r49\", \"41\": \"r49\", \"42\": \"r49\", \"43\": \"r49\", \"44\": \"r49\", \"45\": \"r49\", \"46\": \"r49\", \"47\": \"r49\", \"48\": \"r49\", \"49\": \"r49\", \"50\": \"r49\", \"51\": \"r49\", \"52\": \"r49\", \"53\": \"r49\", \"54\": \"r49\", \"55\": \"r49\", \"57\": \"r49\" }, { \"25\": \"s12\", \"31\": \"s88\" }, { \"23\": \"r50\", \"24\": \"r50\", \"25\": \"r50\", \"26\": \"r50\", \"27\": \"r50\", \"28\": \"r50\", \"29\": \"r50\", \"30\": \"r50\", \"31\": \"r50\", \"32\": \"r50\", \"33\": \"r50\", \"34\": \"r50\", \"35\": \"r50\", \"36\": \"r50\", \"37\": \"r50\", \"38\": \"r50\", \"39\": \"r50\", \"40\": \"r50\", \"41\": \"r50\", \"42\": \"r50\", \"43\": \"r50\", \"44\": \"r50\", \"45\": \"r50\", \"46\": \"r50\", \"47\": \"r50\", \"48\": \"r50\", \"49\": \"r50\", \"50\": \"r50\", \"51\": \"r50\", \"52\": \"r50\", \"53\": \"r50\", \"54\": \"r50\", \"55\": \"r50\", \"57\": \"r50\" }, { \"25\": \"s12\", \"31\": \"s90\" }, { \"23\": \"r51\", \"24\": \"r51\", \"25\": \"r51\", \"26\": \"r51\", \"27\": \"r51\", \"28\": \"r51\", \"29\": \"r51\", \"30\": \"r51\", \"31\": \"r51\", \"32\": \"r51\", \"33\": \"r51\", \"34\": \"r51\", \"35\": \"r51\", \"36\": \"r51\", \"37\": \"r51\", \"38\": \"r51\", \"39\": \"r51\", \"40\": \"r51\", \"41\": \"r51\", \"42\": \"r51\", \"43\": \"r51\", \"44\": \"r51\", \"45\": \"r51\", \"46\": \"r51\", \"47\": \"r51\", \"48\": \"r51\", \"49\": \"r51\", \"50\": \"r51\", \"51\": \"r51\", \"52\": \"r51\", \"53\": \"r51\", \"54\": \"r51\", \"55\": \"r51\", \"57\": \"r51\" }];\n\n/**\n * Parsing stack.\n */\nvar stack = [];\n\n/**\n * Tokenizer instance.\n */\nvar tokenizer = void 0;\n/**\n * Generic tokenizer used by the parser in the Syntax tool.\n *\n * https://www.npmjs.com/package/syntax-cli\n *\n * See `--custom-tokinzer` to skip this generation, and use a custom one.\n */\n\nvar lexRules = [[/^#[^\\n]+/, function () {/* skip comments */}], [/^\\s+/, function () {/* skip whitespace */}], [/^-/, function () {\n return 'DASH';\n}], [/^\\//, function () {\n return 'CHAR';\n}], [/^#/, function () {\n return 'CHAR';\n}], [/^\\|/, function () {\n return 'CHAR';\n}], [/^\\./, function () {\n return 'CHAR';\n}], [/^\\{/, function () {\n return 'CHAR';\n}], [/^\\{\\d+\\}/, function () {\n return 'RANGE_EXACT';\n}], [/^\\{\\d+,\\}/, function () {\n return 'RANGE_OPEN';\n}], [/^\\{\\d+,\\d+\\}/, function () {\n return 'RANGE_CLOSED';\n}], [/^\\\\k<(([\\u0041-\\u005a\\u0061-\\u007a\\u00aa\\u00b5\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e-\\u066f\\u0671-\\u06d3\\u06d5\\u06e5-\\u06e6\\u06ee-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4-\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc-\\u09dd\\u09df-\\u09e1\\u09f0-\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0-\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c-\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c60-\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cde\\u0ce0-\\u0ce1\\u0cf1-\\u0cf2\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32-\\u0e33\\u0e40-\\u0e46\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2-\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065-\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4b\\u1b83-\\u1ba0\\u1bae-\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5-\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cee\\u2cf2-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a-\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd-\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5-\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd23\\udf00-\\udf1c\\udf27\\udf30-\\udf45\\udfe0-\\udff6]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd44\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc5f\\udc80-\\udcaf\\udcc4-\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udeb8\\udf00-\\udf1a]|\\ud806[\\udc00-\\udc2b\\udca0-\\udcdf\\udcff\\udda0-\\udda7\\uddaa-\\uddd0\\udde1\\udde3\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude89\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd30\\udd46\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd89\\udd98\\udee0-\\udef2]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf50\\udf93-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udd00-\\udd2c\\udd37-\\udd3d\\udd4e\\udec0-\\udeeb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd4b]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\}))(([\\u0030-\\u0039\\u0041-\\u005a\\u005f\\u0061-\\u007a\\u00aa\\u00b5\\u00b7\\u00ba\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0300-\\u0374\\u0376-\\u0377\\u037a-\\u037d\\u037f\\u0386-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u0483-\\u0487\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u0591-\\u05bd\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0610-\\u061a\\u0620-\\u0669\\u066e-\\u06d3\\u06d5-\\u06dc\\u06df-\\u06e8\\u06ea-\\u06fc\\u06ff\\u0710-\\u074a\\u074d-\\u07b1\\u07c0-\\u07f5\\u07fa\\u07fd\\u0800-\\u082d\\u0840-\\u085b\\u0860-\\u086a\\u08a0-\\u08b4\\u08b6-\\u08bd\\u08d3-\\u08e1\\u08e3-\\u0963\\u0966-\\u096f\\u0971-\\u0983\\u0985-\\u098c\\u098f-\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bc-\\u09c4\\u09c7-\\u09c8\\u09cb-\\u09ce\\u09d7\\u09dc-\\u09dd\\u09df-\\u09e3\\u09e6-\\u09f1\\u09fc\\u09fe\\u0a01-\\u0a03\\u0a05-\\u0a0a\\u0a0f-\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32-\\u0a33\\u0a35-\\u0a36\\u0a38-\\u0a39\\u0a3c\\u0a3e-\\u0a42\\u0a47-\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a59-\\u0a5c\\u0a5e\\u0a66-\\u0a75\\u0a81-\\u0a83\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2-\\u0ab3\\u0ab5-\\u0ab9\\u0abc-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ad0\\u0ae0-\\u0ae3\\u0ae6-\\u0aef\\u0af9-\\u0aff\\u0b01-\\u0b03\\u0b05-\\u0b0c\\u0b0f-\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32-\\u0b33\\u0b35-\\u0b39\\u0b3c-\\u0b44\\u0b47-\\u0b48\\u0b4b-\\u0b4d\\u0b56-\\u0b57\\u0b5c-\\u0b5d\\u0b5f-\\u0b63\\u0b66-\\u0b6f\\u0b71\\u0b82-\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99-\\u0b9a\\u0b9c\\u0b9e-\\u0b9f\\u0ba3-\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd0\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55-\\u0c56\\u0c58-\\u0c5a\\u0c60-\\u0c63\\u0c66-\\u0c6f\\u0c80-\\u0c83\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbc-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5-\\u0cd6\\u0cde\\u0ce0-\\u0ce3\\u0ce6-\\u0cef\\u0cf1-\\u0cf2\\u0d00-\\u0d03\\u0d05-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4e\\u0d54-\\u0d57\\u0d5f-\\u0d63\\u0d66-\\u0d6f\\u0d7a-\\u0d7f\\u0d82-\\u0d83\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2-\\u0df3\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u0e50-\\u0e59\\u0e81-\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0ec8-\\u0ecd\\u0ed0-\\u0ed9\\u0edc-\\u0edf\\u0f00\\u0f18-\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e-\\u0f47\\u0f49-\\u0f6c\\u0f71-\\u0f84\\u0f86-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u1000-\\u1049\\u1050-\\u109d\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u135d-\\u135f\\u1369-\\u1371\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u170c\\u170e-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176c\\u176e-\\u1770\\u1772-\\u1773\\u1780-\\u17d3\\u17d7\\u17dc-\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u1810-\\u1819\\u1820-\\u1878\\u1880-\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u19d0-\\u19da\\u1a00-\\u1a1b\\u1a20-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1aa7\\u1ab0-\\u1abd\\u1b00-\\u1b4b\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1bf3\\u1c00-\\u1c37\\u1c40-\\u1c49\\u1c4d-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1cd0-\\u1cd2\\u1cd4-\\u1cfa\\u1d00-\\u1df9\\u1dfb-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u203f-\\u2040\\u2054\\u2071\\u207f\\u2090-\\u209c\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2c2e\\u2c30-\\u2c5e\\u2c60-\\u2ce4\\u2ceb-\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d7f-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u2de0-\\u2dff\\u3005-\\u3007\\u3021-\\u302f\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u3099-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31ba\\u31f0-\\u31ff\\u3400-\\u4db5\\u4e00-\\u9fef\\ua000-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua62b\\ua640-\\ua66f\\ua674-\\ua67d\\ua67f-\\ua6f1\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7bf\\ua7c2-\\ua7c6\\ua7f7-\\ua827\\ua840-\\ua873\\ua880-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f7\\ua8fb\\ua8fd-\\ua92d\\ua930-\\ua953\\ua960-\\ua97c\\ua980-\\ua9c0\\ua9cf-\\ua9d9\\ua9e0-\\ua9fe\\uaa00-\\uaa36\\uaa40-\\uaa4d\\uaa50-\\uaa59\\uaa60-\\uaa76\\uaa7a-\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaef\\uaaf2-\\uaaf6\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab67\\uab70-\\uabea\\uabec-\\uabed\\uabf0-\\uabf9\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33-\\ufe34\\ufe4d-\\ufe4f\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff10-\\uff19\\uff21-\\uff3a\\uff3f\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc]|\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c-\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\uddfd\\ude80-\\ude9c\\udea0-\\uded0\\udee0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udca0-\\udca9\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37-\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4-\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe-\\uddbf\\ude00-\\ude03\\ude05-\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude35\\ude38-\\ude3a\\ude3f\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee6\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2\\udd00-\\udd27\\udd30-\\udd39\\udf00-\\udf1c\\udf27\\udf30-\\udf50\\udfe0-\\udff6]|\\ud804[\\udc00-\\udc46\\udc66-\\udc6f\\udc7f-\\udcba\\udcd0-\\udce8\\udcf0-\\udcf9\\udd00-\\udd34\\udd36-\\udd3f\\udd44-\\udd46\\udd50-\\udd73\\udd76\\udd80-\\uddc4\\uddc9-\\uddcc\\uddd0-\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udeea\\udef0-\\udef9\\udf00-\\udf03\\udf05-\\udf0c\\udf0f-\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32-\\udf33\\udf35-\\udf39\\udf3b-\\udf44\\udf47-\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc00-\\udc4a\\udc50-\\udc59\\udc5e-\\udc5f\\udc80-\\udcc5\\udcc7\\udcd0-\\udcd9\\udd80-\\uddb5\\uddb8-\\uddc0\\uddd8-\\udddd\\ude00-\\ude40\\ude44\\ude50-\\ude59\\ude80-\\udeb8\\udec0-\\udec9\\udf00-\\udf1a\\udf1d-\\udf2b\\udf30-\\udf39]|\\ud806[\\udc00-\\udc3a\\udca0-\\udce9\\udcff\\udda0-\\udda7\\uddaa-\\uddd7\\uddda-\\udde1\\udde3-\\udde4\\ude00-\\ude3e\\ude47\\ude50-\\ude99\\ude9d\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc40\\udc50-\\udc59\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08-\\udd09\\udd0b-\\udd36\\udd3a\\udd3c-\\udd3d\\udd3f-\\udd47\\udd50-\\udd59\\udd60-\\udd65\\udd67-\\udd68\\udd6a-\\udd8e\\udd90-\\udd91\\udd93-\\udd98\\udda0-\\udda9\\udee0-\\udef6]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\ude60-\\ude69\\uded0-\\udeed\\udef0-\\udef4\\udf00-\\udf36\\udf40-\\udf43\\udf50-\\udf59\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\ude40-\\ude7f\\udf00-\\udf4a\\udf4f-\\udf87\\udf8f-\\udf9f\\udfe0-\\udfe1\\udfe3]|\\ud81c[\\udc00-\\udfff]|\\ud81d[\\udc00-\\udfff]|\\ud81e[\\udc00-\\udfff]|\\ud81f[\\udc00-\\udfff]|\\ud820[\\udc00-\\udfff]|\\ud821[\\udc00-\\udff7]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd50-\\udd52\\udd64-\\udd67\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9d-\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e-\\udc9f\\udca2\\udca5-\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb\\udfce-\\udfff]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23-\\udc24\\udc26-\\udc2a\\udd00-\\udd2c\\udd30-\\udd3d\\udd40-\\udd49\\udd4e\\udec0-\\udef9]|\\ud83a[\\udc00-\\udcc4\\udcd0-\\udcd6\\udd00-\\udd4b\\udd50-\\udd59]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21-\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51-\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61-\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud840[\\udc00-\\udfff]|\\ud841[\\udc00-\\udfff]|\\ud842[\\udc00-\\udfff]|\\ud843[\\udc00-\\udfff]|\\ud844[\\udc00-\\udfff]|\\ud845[\\udc00-\\udfff]|\\ud846[\\udc00-\\udfff]|\\ud847[\\udc00-\\udfff]|\\ud848[\\udc00-\\udfff]|\\ud849[\\udc00-\\udfff]|\\ud84a[\\udc00-\\udfff]|\\ud84b[\\udc00-\\udfff]|\\ud84c[\\udc00-\\udfff]|\\ud84d[\\udc00-\\udfff]|\\ud84e[\\udc00-\\udfff]|\\ud84f[\\udc00-\\udfff]|\\ud850[\\udc00-\\udfff]|\\ud851[\\udc00-\\udfff]|\\ud852[\\udc00-\\udfff]|\\ud853[\\udc00-\\udfff]|\\ud854[\\udc00-\\udfff]|\\ud855[\\udc00-\\udfff]|\\ud856[\\udc00-\\udfff]|\\ud857[\\udc00-\\udfff]|\\ud858[\\udc00-\\udfff]|\\ud859[\\udc00-\\udfff]|\\ud85a[\\udc00-\\udfff]|\\ud85b[\\udc00-\\udfff]|\\ud85c[\\udc00-\\udfff]|\\ud85d[\\udc00-\\udfff]|\\ud85e[\\udc00-\\udfff]|\\ud85f[\\udc00-\\udfff]|\\ud860[\\udc00-\\udfff]|\\ud861[\\udc00-\\udfff]|\\ud862[\\udc00-\\udfff]|\\ud863[\\udc00-\\udfff]|\\ud864[\\udc00-\\udfff]|\\ud865[\\udc00-\\udfff]|\\ud866[\\udc00-\\udfff]|\\ud867[\\udc00-\\udfff]|\\ud868[\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86a[\\udc00-\\udfff]|\\ud86b[\\udc00-\\udfff]|\\ud86c[\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud86f[\\udc00-\\udfff]|\\ud870[\\udc00-\\udfff]|\\ud871[\\udc00-\\udfff]|\\ud872[\\udc00-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud874[\\udc00-\\udfff]|\\ud875[\\udc00-\\udfff]|\\ud876[\\udc00-\\udfff]|\\ud877[\\udc00-\\udfff]|\\ud878[\\udc00-\\udfff]|\\ud879[\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]|\\udb40[\\udd00-\\uddef])|[$_]|(\\\\u[0-9a-fA-F]{4}|\\\\u\\{[0-9a-fA-F]{1,}\\})|[\\u200c\\u200d])*>/, function () {\n var groupName = yytext.slice(3, -1);\n validateUnicodeGroupName(groupName, this.getCurrentState());\n return 'NAMED_GROUP_REF';\n}], [/^\\\\b/, function () {\n return 'ESC_b';\n}], [/^\\\\B/, function () {\n return 'ESC_B';\n}], [/^\\\\c[a-zA-Z]/, function () {\n return 'CTRL_CH';\n}], [/^\\\\0\\d{1,2}/, function () {\n return 'OCT_CODE';\n}], [/^\\\\0/, function () {\n return 'DEC_CODE';\n}], [/^\\\\\\d{1,3}/, function () {\n return 'DEC_CODE';\n}], [/^\\\\u[dD][89abAB][0-9a-fA-F]{2}\\\\u[dD][c-fC-F][0-9a-fA-F]{2}/, function () {\n return 'U_CODE_SURROGATE';\n}], [/^\\\\u\\{[0-9a-fA-F]{1,}\\}/, function () {\n return 'U_CODE';\n}], [/^\\\\u[0-9a-fA-F]{4}/, function () {\n return 'U_CODE';\n}], [/^\\\\[pP]\\{\\w+(?:=\\w+)?\\}/, function () {\n return 'U_PROP_VALUE_EXP';\n}], [/^\\\\x[0-9a-fA-F]{2}/, function () {\n return 'HEX_CODE';\n}], [/^\\\\[tnrdDsSwWvf]/, function () {\n return 'META_CHAR';\n}], [/^\\\\\\//, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[ #]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/, function () {\n return 'ESC_CHAR';\n}], [/^\\\\[^*?+\\[()\\\\|]/, function () {\n var s = this.getCurrentState();\n if (s === 'u_class' && yytext === \"\\\\-\") {\n return 'ESC_CHAR';\n } else if (s === 'u' || s === 'xu' || s === 'u_class') {\n throw new SyntaxError('invalid Unicode escape ' + yytext);\n }\n return 'ESC_CHAR';\n}], [/^\\(/, function () {\n return 'CHAR';\n}], [/^\\)/, function () {\n return 'CHAR';\n}], [/^\\(\\?=/, function () {\n return 'POS_LA_ASSERT';\n}], [/^\\(\\?!/, function () {\n return 'NEG_LA_ASSERT';\n}], [/^\\(\\?<=/, function () {\n return 'POS_LB_ASSERT';\n}], [/^\\(\\?/, function () {\n yytext = yytext.slice(3, -1);\n validateUnicodeGroupName(yytext, this.getCurrentState());\n return 'NAMED_CAPTURE_GROUP';\n}], [/^\\(/, function () {\n return 'L_PAREN';\n}], [/^\\)/, function () {\n return 'R_PAREN';\n}], [/^[*?+[^$]/, function () {\n return 'CHAR';\n}], [/^\\\\\\]/, function () {\n return 'ESC_CHAR';\n}], [/^\\]/, function () {\n this.popState();return 'R_BRACKET';\n}], [/^\\^/, function () {\n return 'BOS';\n}], [/^\\$/, function () {\n return 'EOS';\n}], [/^\\*/, function () {\n return 'STAR';\n}], [/^\\?/, function () {\n return 'Q_MARK';\n}], [/^\\+/, function () {\n return 'PLUS';\n}], [/^\\|/, function () {\n return 'BAR';\n}], [/^\\./, function () {\n return 'ANY';\n}], [/^\\//, function () {\n return 'SLASH';\n}], [/^[^*?+\\[()\\\\|]/, function () {\n return 'CHAR';\n}], [/^\\[\\^/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'NEG_CLASS';\n}], [/^\\[/, function () {\n var s = this.getCurrentState();this.pushState(s === 'u' || s === 'xu' ? 'u_class' : 'class');return 'L_BRACKET';\n}]];\nvar lexRulesByConditions = { \"INITIAL\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u\": [8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"xu\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"x\": [0, 1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34, 35, 36, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51], \"u_class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 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], \"class\": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 20, 22, 23, 24, 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] };\n\nvar EOF_TOKEN = {\n type: EOF,\n value: ''\n};\n\ntokenizer = {\n initString: function initString(string) {\n this._string = string;\n this._cursor = 0;\n\n this._states = ['INITIAL'];\n this._tokensQueue = [];\n\n this._currentLine = 1;\n this._currentColumn = 0;\n this._currentLineBeginOffset = 0;\n\n /**\n * Matched token location data.\n */\n this._tokenStartOffset = 0;\n this._tokenEndOffset = 0;\n this._tokenStartLine = 1;\n this._tokenEndLine = 1;\n this._tokenStartColumn = 0;\n this._tokenEndColumn = 0;\n\n return this;\n },\n\n\n /**\n * Returns tokenizer states.\n */\n getStates: function getStates() {\n return this._states;\n },\n getCurrentState: function getCurrentState() {\n return this._states[this._states.length - 1];\n },\n pushState: function pushState(state) {\n this._states.push(state);\n },\n begin: function begin(state) {\n this.pushState(state);\n },\n popState: function popState() {\n if (this._states.length > 1) {\n return this._states.pop();\n }\n return this._states[0];\n },\n getNextToken: function getNextToken() {\n // Something was queued, return it.\n if (this._tokensQueue.length > 0) {\n return this.onToken(this._toToken(this._tokensQueue.shift()));\n }\n\n if (!this.hasMoreTokens()) {\n return this.onToken(EOF_TOKEN);\n }\n\n var string = this._string.slice(this._cursor);\n var lexRulesForState = lexRulesByConditions[this.getCurrentState()];\n\n for (var i = 0; i < lexRulesForState.length; i++) {\n var lexRuleIndex = lexRulesForState[i];\n var lexRule = lexRules[lexRuleIndex];\n\n var matched = this._match(string, lexRule[0]);\n\n // Manual handling of EOF token (the end of string). Return it\n // as `EOF` symbol.\n if (string === '' && matched === '') {\n this._cursor++;\n }\n\n if (matched !== null) {\n yytext = matched;\n yyleng = yytext.length;\n var token = lexRule[1].call(this);\n\n if (!token) {\n return this.getNextToken();\n }\n\n // If multiple tokens are returned, save them to return\n // on next `getNextToken` call.\n\n if (Array.isArray(token)) {\n var tokensToQueue = token.slice(1);\n token = token[0];\n if (tokensToQueue.length > 0) {\n var _tokensQueue;\n\n (_tokensQueue = this._tokensQueue).unshift.apply(_tokensQueue, _toConsumableArray(tokensToQueue));\n }\n }\n\n return this.onToken(this._toToken(token, yytext));\n }\n }\n\n if (this.isEOF()) {\n this._cursor++;\n return EOF_TOKEN;\n }\n\n this.throwUnexpectedToken(string[0], this._currentLine, this._currentColumn);\n },\n\n\n /**\n * Throws default \"Unexpected token\" exception, showing the actual\n * line from the source, pointing with the ^ marker to the bad token.\n * In addition, shows `line:column` location.\n */\n throwUnexpectedToken: function throwUnexpectedToken(symbol, line, column) {\n var lineSource = this._string.split('\\n')[line - 1];\n var lineData = '';\n\n if (lineSource) {\n var pad = ' '.repeat(column);\n lineData = '\\n\\n' + lineSource + '\\n' + pad + '^\\n';\n }\n\n throw new SyntaxError(lineData + 'Unexpected token: \"' + symbol + '\" ' + ('at ' + line + ':' + column + '.'));\n },\n getCursor: function getCursor() {\n return this._cursor;\n },\n getCurrentLine: function getCurrentLine() {\n return this._currentLine;\n },\n getCurrentColumn: function getCurrentColumn() {\n return this._currentColumn;\n },\n _captureLocation: function _captureLocation(matched) {\n var nlRe = /\\n/g;\n\n // Absolute offsets.\n this._tokenStartOffset = this._cursor;\n\n // Line-based locations, start.\n this._tokenStartLine = this._currentLine;\n this._tokenStartColumn = this._tokenStartOffset - this._currentLineBeginOffset;\n\n // Extract `\\n` in the matched token.\n var nlMatch = void 0;\n while ((nlMatch = nlRe.exec(matched)) !== null) {\n this._currentLine++;\n this._currentLineBeginOffset = this._tokenStartOffset + nlMatch.index + 1;\n }\n\n this._tokenEndOffset = this._cursor + matched.length;\n\n // Line-based locations, end.\n this._tokenEndLine = this._currentLine;\n this._tokenEndColumn = this._currentColumn = this._tokenEndOffset - this._currentLineBeginOffset;\n },\n _toToken: function _toToken(tokenType) {\n var yytext = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return {\n // Basic data.\n type: tokenType,\n value: yytext,\n\n // Location data.\n startOffset: this._tokenStartOffset,\n endOffset: this._tokenEndOffset,\n startLine: this._tokenStartLine,\n endLine: this._tokenEndLine,\n startColumn: this._tokenStartColumn,\n endColumn: this._tokenEndColumn\n };\n },\n isEOF: function isEOF() {\n return this._cursor === this._string.length;\n },\n hasMoreTokens: function hasMoreTokens() {\n return this._cursor <= this._string.length;\n },\n _match: function _match(string, regexp) {\n var matched = string.match(regexp);\n if (matched) {\n // Handle `\\n` in the matched token to track line numbers.\n this._captureLocation(matched[0]);\n this._cursor += matched[0].length;\n return matched[0];\n }\n return null;\n },\n\n\n /**\n * Allows analyzing, and transforming token. Default implementation\n * just passes the token through.\n */\n onToken: function onToken(token) {\n return token;\n }\n};\n\n/**\n * Expose tokenizer so it can be accessed in semantic actions.\n */\nyy.lexer = tokenizer;\nyy.tokenizer = tokenizer;\n\n/**\n * Global parsing options. Some options can be shadowed per\n * each `parse` call, if the optations are passed.\n *\n * Initalized to the `captureLocations` which is passed\n * from the generator. Other options can be added at runtime.\n */\nyy.options = {\n captureLocations: true\n};\n\n/**\n * Parsing module.\n */\nvar yyparse = {\n /**\n * Sets global parsing options.\n */\n setOptions: function setOptions(options) {\n yy.options = options;\n return this;\n },\n\n\n /**\n * Returns parsing options.\n */\n getOptions: function getOptions() {\n return yy.options;\n },\n\n\n /**\n * Parses a string.\n */\n parse: function parse(string, parseOptions) {\n if (!tokenizer) {\n throw new Error('Tokenizer instance wasn\\'t specified.');\n }\n\n tokenizer.initString(string);\n\n /**\n * If parse options are passed, override global parse options for\n * this call, and later restore global options.\n */\n var globalOptions = yy.options;\n if (parseOptions) {\n yy.options = Object.assign({}, yy.options, parseOptions);\n }\n\n /**\n * Allow callers to do setup work based on the\n * parsing string, and passed options.\n */\n yyparse.onParseBegin(string, tokenizer, yy.options);\n\n stack.length = 0;\n stack.push(0);\n\n var token = tokenizer.getNextToken();\n var shiftedToken = null;\n\n do {\n if (!token) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedEndOfInput();\n }\n\n var state = stack[stack.length - 1];\n var column = tokens[token.type];\n\n if (!table[state].hasOwnProperty(column)) {\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n var entry = table[state][column];\n\n // Shift action.\n if (entry[0] === 's') {\n var _loc2 = null;\n\n if (yy.options.captureLocations) {\n _loc2 = {\n startOffset: token.startOffset,\n endOffset: token.endOffset,\n startLine: token.startLine,\n endLine: token.endLine,\n startColumn: token.startColumn,\n endColumn: token.endColumn\n };\n }\n\n shiftedToken = this.onShift(token);\n\n stack.push({ symbol: tokens[shiftedToken.type], semanticValue: shiftedToken.value, loc: _loc2 }, Number(entry.slice(1)));\n\n token = tokenizer.getNextToken();\n }\n\n // Reduce action.\n else if (entry[0] === 'r') {\n var productionNumber = entry.slice(1);\n var production = productions[productionNumber];\n var hasSemanticAction = typeof production[2] === 'function';\n var semanticValueArgs = hasSemanticAction ? [] : null;\n\n var locationArgs = hasSemanticAction && yy.options.captureLocations ? [] : null;\n\n if (production[1] !== 0) {\n var rhsLength = production[1];\n while (rhsLength-- > 0) {\n stack.pop();\n var stackEntry = stack.pop();\n\n if (hasSemanticAction) {\n semanticValueArgs.unshift(stackEntry.semanticValue);\n\n if (locationArgs) {\n locationArgs.unshift(stackEntry.loc);\n }\n }\n }\n }\n\n var reduceStackEntry = { symbol: production[0] };\n\n if (hasSemanticAction) {\n yytext = shiftedToken ? shiftedToken.value : null;\n yyleng = shiftedToken ? shiftedToken.value.length : null;\n\n var semanticActionArgs = locationArgs !== null ? semanticValueArgs.concat(locationArgs) : semanticValueArgs;\n\n production[2].apply(production, _toConsumableArray(semanticActionArgs));\n\n reduceStackEntry.semanticValue = __;\n\n if (locationArgs) {\n reduceStackEntry.loc = __loc;\n }\n }\n\n var nextState = stack[stack.length - 1];\n var symbolToReduceWith = production[0];\n\n stack.push(reduceStackEntry, table[nextState][symbolToReduceWith]);\n }\n\n // Accept.\n else if (entry === 'acc') {\n stack.pop();\n var parsed = stack.pop();\n\n if (stack.length !== 1 || stack[0] !== 0 || tokenizer.hasMoreTokens()) {\n // Restore options.\n yy.options = globalOptions;\n unexpectedToken(token);\n }\n\n if (parsed.hasOwnProperty('semanticValue')) {\n yy.options = globalOptions;\n yyparse.onParseEnd(parsed.semanticValue);\n return parsed.semanticValue;\n }\n\n yyparse.onParseEnd();\n\n // Restore options.\n yy.options = globalOptions;\n return true;\n }\n } while (tokenizer.hasMoreTokens() || stack.length > 1);\n },\n setTokenizer: function setTokenizer(customTokenizer) {\n tokenizer = customTokenizer;\n return yyparse;\n },\n getTokenizer: function getTokenizer() {\n return tokenizer;\n },\n onParseBegin: function onParseBegin(string, tokenizer, options) {},\n onParseEnd: function onParseEnd(parsed) {},\n\n\n /**\n * Allows analyzing, and transforming shifted token. Default implementation\n * just passes the token through.\n */\n onShift: function onShift(token) {\n return token;\n }\n};\n\n/**\n * Tracks capturing groups.\n */\nvar capturingGroupsCount = 0;\n\n/**\n * Tracks named groups.\n */\nvar namedGroups = {};\n\n/**\n * Parsing string.\n */\nvar parsingString = '';\n\nyyparse.onParseBegin = function (string, lexer) {\n parsingString = string;\n capturingGroupsCount = 0;\n namedGroups = {};\n\n var lastSlash = string.lastIndexOf('/');\n var flags = string.slice(lastSlash);\n\n if (flags.includes('x') && flags.includes('u')) {\n lexer.pushState('xu');\n } else {\n if (flags.includes('x')) {\n lexer.pushState('x');\n }\n if (flags.includes('u')) {\n lexer.pushState('u');\n }\n }\n};\n\n/**\n * On shifting `(` remember its number to used on reduce.\n */\nyyparse.onShift = function (token) {\n if (token.type === 'L_PAREN' || token.type === 'NAMED_CAPTURE_GROUP') {\n token.value = new String(token.value);\n token.value.groupNumber = ++capturingGroupsCount;\n }\n return token;\n};\n\n/**\n * Extracts ranges from the range string.\n */\nfunction getRange(text) {\n var range = text.match(/\\d+/g).map(Number);\n\n if (Number.isFinite(range[1]) && range[1] < range[0]) {\n throw new SyntaxError('Numbers out of order in ' + text + ' quantifier');\n }\n\n return range;\n}\n\n/**\n * Checks class range\n */\nfunction checkClassRange(from, to) {\n if (from.kind === 'control' || to.kind === 'control' || !isNaN(from.codePoint) && !isNaN(to.codePoint) && from.codePoint > to.codePoint) {\n throw new SyntaxError('Range ' + from.value + '-' + to.value + ' out of order in character class');\n }\n}\n\n// ---------------------- Unicode property -------------------------------------------\n\nvar unicodeProperties = require('../unicode/parser-unicode-properties.js');\n\n/**\n * Unicode property.\n */\nfunction UnicodeProperty(matched, loc) {\n var negative = matched[1] === 'P';\n var separatorIdx = matched.indexOf('=');\n\n var name = matched.slice(3, separatorIdx !== -1 ? separatorIdx : -1);\n var value = void 0;\n\n // General_Category allows using only value as a shorthand.\n var isShorthand = separatorIdx === -1 && unicodeProperties.isGeneralCategoryValue(name);\n\n // Binary propery name.\n var isBinaryProperty = separatorIdx === -1 && unicodeProperties.isBinaryPropertyName(name);\n\n if (isShorthand) {\n value = name;\n name = 'General_Category';\n } else if (isBinaryProperty) {\n value = name;\n } else {\n if (!unicodeProperties.isValidName(name)) {\n throw new SyntaxError('Invalid unicode property name: ' + name + '.');\n }\n\n value = matched.slice(separatorIdx + 1, -1);\n\n if (!unicodeProperties.isValidValue(name, value)) {\n throw new SyntaxError('Invalid ' + name + ' unicode property value: ' + value + '.');\n }\n }\n\n return Node({\n type: 'UnicodeProperty',\n name: name,\n value: value,\n negative: negative,\n shorthand: isShorthand,\n binary: isBinaryProperty,\n canonicalName: unicodeProperties.getCanonicalName(name) || name,\n canonicalValue: unicodeProperties.getCanonicalValue(value) || value\n }, loc);\n}\n\n// ----------------------------------------------------------------------------------\n\n\n/**\n * Creates a character node.\n */\nfunction Char(value, kind, loc) {\n var symbol = void 0;\n var codePoint = void 0;\n\n switch (kind) {\n case 'decimal':\n {\n codePoint = Number(value.slice(1));\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'oct':\n {\n codePoint = parseInt(value.slice(1), 8);\n symbol = String.fromCodePoint(codePoint);\n break;\n }\n case 'hex':\n case 'unicode':\n {\n if (value.lastIndexOf('\\\\u') > 0) {\n var _value$split$slice = value.split('\\\\u').slice(1),\n _value$split$slice2 = _slicedToArray(_value$split$slice, 2),\n lead = _value$split$slice2[0],\n trail = _value$split$slice2[1];\n\n lead = parseInt(lead, 16);\n trail = parseInt(trail, 16);\n codePoint = (lead - 0xd800) * 0x400 + (trail - 0xdc00) + 0x10000;\n\n symbol = String.fromCodePoint(codePoint);\n } else {\n var hex = value.slice(2).replace('{', '');\n codePoint = parseInt(hex, 16);\n if (codePoint > 0x10ffff) {\n throw new SyntaxError('Bad character escape sequence: ' + value);\n }\n\n symbol = String.fromCodePoint(codePoint);\n }\n break;\n }\n case 'meta':\n {\n switch (value) {\n case '\\\\t':\n symbol = '\\t';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\n':\n symbol = '\\n';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\r':\n symbol = '\\r';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\v':\n symbol = '\\v';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\f':\n symbol = '\\f';\n codePoint = symbol.codePointAt(0);\n break;\n case '\\\\b':\n symbol = '\\b';\n codePoint = symbol.codePointAt(0);\n case '\\\\0':\n symbol = '\\0';\n codePoint = 0;\n case '.':\n symbol = '.';\n codePoint = NaN;\n break;\n default:\n codePoint = NaN;\n }\n break;\n }\n case 'simple':\n {\n symbol = value;\n codePoint = symbol.codePointAt(0);\n break;\n }\n }\n\n return Node({\n type: 'Char',\n value: value,\n kind: kind,\n symbol: symbol,\n codePoint: codePoint\n }, loc);\n}\n\n/**\n * Valid flags per current ECMAScript spec and\n * stage 3+ proposals.\n */\nvar validFlags = 'gimsuxy';\n\n/**\n * Checks the flags are valid, and that\n * we don't duplicate flags.\n */\nfunction checkFlags(flags) {\n var seen = new Set();\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = flags[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var flag = _step.value;\n\n if (seen.has(flag) || !validFlags.includes(flag)) {\n throw new SyntaxError('Invalid flags: ' + flags);\n }\n seen.add(flag);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return flags.split('').sort().join('');\n}\n\n/**\n * Parses patterns like \\1, \\2, etc. either as a backreference\n * to a group, or a deciaml char code.\n */\nfunction GroupRefOrDecChar(text, textLoc) {\n var reference = Number(text.slice(1));\n\n if (reference > 0 && reference <= capturingGroupsCount) {\n return Node({\n type: 'Backreference',\n kind: 'number',\n number: reference,\n reference: reference\n }, textLoc);\n }\n\n return Char(text, 'decimal', textLoc);\n}\n\n/**\n * Unicode names.\n */\nvar uReStart = /^\\\\u[0-9a-fA-F]{4}/; // only matches start of string\nvar ucpReStart = /^\\\\u\\{[0-9a-fA-F]{1,}\\}/; // only matches start of string\nvar ucpReAnywhere = /\\\\u\\{[0-9a-fA-F]{1,}\\}/; // matches anywhere in string\n\n/**\n * Validates Unicode group name.\n */\nfunction validateUnicodeGroupName(name, state) {\n var isUnicodeName = ucpReAnywhere.test(name);\n var isUnicodeState = state === 'u' || state === 'xu' || state === 'u_class';\n\n if (isUnicodeName && !isUnicodeState) {\n throw new SyntaxError('invalid group Unicode name \"' + name + '\", use `u` flag.');\n }\n\n return name;\n}\n\n// Matches the following production: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n//\n// RegExpUnicodeEscapeSequence ::\n// `u` LeadSurrogate `\\u` TrailSurrogate # as 'leadSurrogate', 'trailSurrogate'\n// `u` LeadSurrogate # as 'leadSurrogateOnly'\n// `u` TrailSurrogate # as 'trailSurrogateOnly'\n// `u` NonSurrogate # as 'nonSurrogate'\n// `u` `{` CodePoint `}` # as 'codePoint'\n//\n// LeadSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xD800 to 0xDBFF # [dD][89aAbB][0-9a-fA-F]{2}\n//\n// TrailSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is in the inclusive range 0xDC00 to 0xDFFF # [dD][c-fC-F][0-9a-fA-F]{2}\n//\n// NonSurrogate ::\n// Hex4Digits but only if the SV of Hex4Digits is not in the inclusive range 0xD800 to 0xDFFF # [0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2}\n//\n// CodePoint ::\n// HexDigits but only if MV of HexDigits ≤ 0x10FFFF # 0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4})\n//\nvar uidRe = /\\\\u(?:([dD][89aAbB][0-9a-fA-F]{2})\\\\u([dD][c-fC-F][0-9a-fA-F]{2})|([dD][89aAbB][0-9a-fA-F]{2})|([dD][c-fC-F][0-9a-fA-F]{2})|([0-9a-ce-fA-CE-F][0-9a-fA-F]{3}|[dD][0-7][0-9a-fA-F]{2})|\\{(0*(?:[0-9a-fA-F]{1,5}|10[0-9a-fA-F]{4}))\\})/;\n\nfunction decodeUnicodeGroupName(name) {\n return name.replace(new RegExp(uidRe, 'g'), function (_, leadSurrogate, trailSurrogate, leadSurrogateOnly, trailSurrogateOnly, nonSurrogate, codePoint) {\n if (leadSurrogate) {\n return String.fromCodePoint(parseInt(leadSurrogate, 16), parseInt(trailSurrogate, 16));\n }\n if (leadSurrogateOnly) {\n return String.fromCodePoint(parseInt(leadSurrogateOnly, 16));\n }\n if (trailSurrogateOnly) {\n // TODO: Per the spec: https://tc39.es/ecma262/#prod-RegExpUnicodeEscapeSequence\n // > Each `\\u` TrailSurrogate for which the choice of associated `u` LeadSurrogate is ambiguous shall be associated with the nearest possible `u` LeadSurrogate that would otherwise have no corresponding `\\u` TrailSurrogate.\n return String.fromCodePoint(parseInt(trailSurrogateOnly, 16));\n }\n if (nonSurrogate) {\n return String.fromCodePoint(parseInt(nonSurrogate, 16));\n }\n if (codePoint) {\n return String.fromCodePoint(parseInt(codePoint, 16));\n }\n return _;\n });\n}\n\n/**\n * Extracts from `\\k` pattern either a backreference\n * to a named capturing group (if it presents), or parses it\n * as a list of char: `\\k`, `<`, `f`, etc.\n */\nfunction NamedGroupRefOrChars(text, textLoc) {\n var referenceRaw = text.slice(3, -1);\n var reference = decodeUnicodeGroupName(referenceRaw);\n\n if (namedGroups.hasOwnProperty(reference)) {\n return Node({\n type: 'Backreference',\n kind: 'name',\n number: namedGroups[reference],\n reference: reference,\n referenceRaw: referenceRaw\n }, textLoc);\n }\n\n // Else `\\k` should be parsed as a list of `Char`s.\n // This is really a 0.01% edge case, but we should handle it.\n\n var startOffset = null;\n var startLine = null;\n var endLine = null;\n var startColumn = null;\n\n if (textLoc) {\n startOffset = textLoc.startOffset;\n startLine = textLoc.startLine;\n endLine = textLoc.endLine;\n startColumn = textLoc.startColumn;\n }\n\n var charRe = /^[\\w$<>]/;\n var loc = void 0;\n\n var chars = [\n // Init to first \\k, taking 2 symbols.\n Char(text.slice(1, 2), 'simple', startOffset ? {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += 2,\n endColumn: startColumn += 2\n } : null)];\n\n // For \\k\n chars[0].escaped = true;\n\n // Other symbols.\n text = text.slice(2);\n\n while (text.length > 0) {\n var matched = null;\n\n // Unicode, \\u003B or \\u{003B}\n if ((matched = text.match(uReStart)) || (matched = text.match(ucpReStart))) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: startOffset += matched[0].length,\n endColumn: startColumn += matched[0].length\n };\n }\n chars.push(Char(matched[0], 'unicode', loc));\n text = text.slice(matched[0].length);\n }\n\n // Simple char.\n else if (matched = text.match(charRe)) {\n if (startOffset) {\n loc = {\n startLine: startLine,\n endLine: endLine,\n startColumn: startColumn,\n startOffset: startOffset,\n endOffset: ++startOffset,\n endColumn: ++startColumn\n };\n }\n chars.push(Char(matched[0], 'simple', loc));\n text = text.slice(1);\n }\n }\n\n return chars;\n}\n\n/**\n * Creates an AST node with a location.\n */\nfunction Node(node, loc) {\n if (yy.options.captureLocations) {\n node.loc = {\n source: parsingString.slice(loc.startOffset, loc.endOffset),\n start: {\n line: loc.startLine,\n column: loc.startColumn,\n offset: loc.startOffset\n },\n end: {\n line: loc.endLine,\n column: loc.endColumn,\n offset: loc.endOffset\n }\n };\n }\n return node;\n}\n\n/**\n * Creates location node.\n */\nfunction loc(start, end) {\n if (!yy.options.captureLocations) {\n return null;\n }\n\n return {\n startOffset: start.startOffset,\n endOffset: end.endOffset,\n startLine: start.startLine,\n endLine: end.endLine,\n startColumn: start.startColumn,\n endColumn: end.endColumn\n };\n}\n\nfunction unexpectedToken(token) {\n if (token.type === EOF) {\n unexpectedEndOfInput();\n }\n\n tokenizer.throwUnexpectedToken(token.value, token.startLine, token.startColumn);\n}\n\nfunction unexpectedEndOfInput() {\n parseError('Unexpected end of input.');\n}\n\nfunction parseError(message) {\n throw new SyntaxError(message);\n}\n\nmodule.exports = yyparse;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar regexpTreeParser = require('./generated/regexp-tree');\n\n/**\n * Original parse function.\n */\nvar generatedParseFn = regexpTreeParser.parse.bind(regexpTreeParser);\n\n/**\n * Parses a regular expression.\n *\n * Override original `regexpTreeParser.parse` to convert a value to a string,\n * since in regexp-tree we may pass strings, and RegExp instance.\n */\nregexpTreeParser.parse = function (regexp, options) {\n return generatedParseFn('' + regexp, options);\n};\n\n// By default do not capture locations; callers may override.\nregexpTreeParser.setOptions({ captureLocations: false });\n\nmodule.exports = regexpTreeParser;","'use strict';\n\n/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\nvar NON_BINARY_PROP_NAMES_TO_ALIASES = {\n General_Category: 'gc',\n Script: 'sc',\n Script_Extensions: 'scx'\n};\n\nvar NON_BINARY_ALIASES_TO_PROP_NAMES = inverseMap(NON_BINARY_PROP_NAMES_TO_ALIASES);\n\nvar BINARY_PROP_NAMES_TO_ALIASES = {\n ASCII: 'ASCII',\n ASCII_Hex_Digit: 'AHex',\n Alphabetic: 'Alpha',\n Any: 'Any',\n Assigned: 'Assigned',\n Bidi_Control: 'Bidi_C',\n Bidi_Mirrored: 'Bidi_M',\n Case_Ignorable: 'CI',\n Cased: 'Cased',\n Changes_When_Casefolded: 'CWCF',\n Changes_When_Casemapped: 'CWCM',\n Changes_When_Lowercased: 'CWL',\n Changes_When_NFKC_Casefolded: 'CWKCF',\n Changes_When_Titlecased: 'CWT',\n Changes_When_Uppercased: 'CWU',\n Dash: 'Dash',\n Default_Ignorable_Code_Point: 'DI',\n Deprecated: 'Dep',\n Diacritic: 'Dia',\n Emoji: 'Emoji',\n Emoji_Component: 'Emoji_Component',\n Emoji_Modifier: 'Emoji_Modifier',\n Emoji_Modifier_Base: 'Emoji_Modifier_Base',\n Emoji_Presentation: 'Emoji_Presentation',\n Extended_Pictographic: 'Extended_Pictographic',\n Extender: 'Ext',\n Grapheme_Base: 'Gr_Base',\n Grapheme_Extend: 'Gr_Ext',\n Hex_Digit: 'Hex',\n IDS_Binary_Operator: 'IDSB',\n IDS_Trinary_Operator: 'IDST',\n ID_Continue: 'IDC',\n ID_Start: 'IDS',\n Ideographic: 'Ideo',\n Join_Control: 'Join_C',\n Logical_Order_Exception: 'LOE',\n Lowercase: 'Lower',\n Math: 'Math',\n Noncharacter_Code_Point: 'NChar',\n Pattern_Syntax: 'Pat_Syn',\n Pattern_White_Space: 'Pat_WS',\n Quotation_Mark: 'QMark',\n Radical: 'Radical',\n Regional_Indicator: 'RI',\n Sentence_Terminal: 'STerm',\n Soft_Dotted: 'SD',\n Terminal_Punctuation: 'Term',\n Unified_Ideograph: 'UIdeo',\n Uppercase: 'Upper',\n Variation_Selector: 'VS',\n White_Space: 'space',\n XID_Continue: 'XIDC',\n XID_Start: 'XIDS'\n};\n\nvar BINARY_ALIASES_TO_PROP_NAMES = inverseMap(BINARY_PROP_NAMES_TO_ALIASES);\n\nvar GENERAL_CATEGORY_VALUE_TO_ALIASES = {\n Cased_Letter: 'LC',\n Close_Punctuation: 'Pe',\n Connector_Punctuation: 'Pc',\n Control: ['Cc', 'cntrl'],\n Currency_Symbol: 'Sc',\n Dash_Punctuation: 'Pd',\n Decimal_Number: ['Nd', 'digit'],\n Enclosing_Mark: 'Me',\n Final_Punctuation: 'Pf',\n Format: 'Cf',\n Initial_Punctuation: 'Pi',\n Letter: 'L',\n Letter_Number: 'Nl',\n Line_Separator: 'Zl',\n Lowercase_Letter: 'Ll',\n Mark: ['M', 'Combining_Mark'],\n Math_Symbol: 'Sm',\n Modifier_Letter: 'Lm',\n Modifier_Symbol: 'Sk',\n Nonspacing_Mark: 'Mn',\n Number: 'N',\n Open_Punctuation: 'Ps',\n Other: 'C',\n Other_Letter: 'Lo',\n Other_Number: 'No',\n Other_Punctuation: 'Po',\n Other_Symbol: 'So',\n Paragraph_Separator: 'Zp',\n Private_Use: 'Co',\n Punctuation: ['P', 'punct'],\n Separator: 'Z',\n Space_Separator: 'Zs',\n Spacing_Mark: 'Mc',\n Surrogate: 'Cs',\n Symbol: 'S',\n Titlecase_Letter: 'Lt',\n Unassigned: 'Cn',\n Uppercase_Letter: 'Lu'\n};\n\nvar GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES = inverseMap(GENERAL_CATEGORY_VALUE_TO_ALIASES);\n\nvar SCRIPT_VALUE_TO_ALIASES = {\n Adlam: 'Adlm',\n Ahom: 'Ahom',\n Anatolian_Hieroglyphs: 'Hluw',\n Arabic: 'Arab',\n Armenian: 'Armn',\n Avestan: 'Avst',\n Balinese: 'Bali',\n Bamum: 'Bamu',\n Bassa_Vah: 'Bass',\n Batak: 'Batk',\n Bengali: 'Beng',\n Bhaiksuki: 'Bhks',\n Bopomofo: 'Bopo',\n Brahmi: 'Brah',\n Braille: 'Brai',\n Buginese: 'Bugi',\n Buhid: 'Buhd',\n Canadian_Aboriginal: 'Cans',\n Carian: 'Cari',\n Caucasian_Albanian: 'Aghb',\n Chakma: 'Cakm',\n Cham: 'Cham',\n Cherokee: 'Cher',\n Common: 'Zyyy',\n Coptic: ['Copt', 'Qaac'],\n Cuneiform: 'Xsux',\n Cypriot: 'Cprt',\n Cyrillic: 'Cyrl',\n Deseret: 'Dsrt',\n Devanagari: 'Deva',\n Dogra: 'Dogr',\n Duployan: 'Dupl',\n Egyptian_Hieroglyphs: 'Egyp',\n Elbasan: 'Elba',\n Ethiopic: 'Ethi',\n Georgian: 'Geor',\n Glagolitic: 'Glag',\n Gothic: 'Goth',\n Grantha: 'Gran',\n Greek: 'Grek',\n Gujarati: 'Gujr',\n Gunjala_Gondi: 'Gong',\n Gurmukhi: 'Guru',\n Han: 'Hani',\n Hangul: 'Hang',\n Hanifi_Rohingya: 'Rohg',\n Hanunoo: 'Hano',\n Hatran: 'Hatr',\n Hebrew: 'Hebr',\n Hiragana: 'Hira',\n Imperial_Aramaic: 'Armi',\n Inherited: ['Zinh', 'Qaai'],\n Inscriptional_Pahlavi: 'Phli',\n Inscriptional_Parthian: 'Prti',\n Javanese: 'Java',\n Kaithi: 'Kthi',\n Kannada: 'Knda',\n Katakana: 'Kana',\n Kayah_Li: 'Kali',\n Kharoshthi: 'Khar',\n Khmer: 'Khmr',\n Khojki: 'Khoj',\n Khudawadi: 'Sind',\n Lao: 'Laoo',\n Latin: 'Latn',\n Lepcha: 'Lepc',\n Limbu: 'Limb',\n Linear_A: 'Lina',\n Linear_B: 'Linb',\n Lisu: 'Lisu',\n Lycian: 'Lyci',\n Lydian: 'Lydi',\n Mahajani: 'Mahj',\n Makasar: 'Maka',\n Malayalam: 'Mlym',\n Mandaic: 'Mand',\n Manichaean: 'Mani',\n Marchen: 'Marc',\n Medefaidrin: 'Medf',\n Masaram_Gondi: 'Gonm',\n Meetei_Mayek: 'Mtei',\n Mende_Kikakui: 'Mend',\n Meroitic_Cursive: 'Merc',\n Meroitic_Hieroglyphs: 'Mero',\n Miao: 'Plrd',\n Modi: 'Modi',\n Mongolian: 'Mong',\n Mro: 'Mroo',\n Multani: 'Mult',\n Myanmar: 'Mymr',\n Nabataean: 'Nbat',\n New_Tai_Lue: 'Talu',\n Newa: 'Newa',\n Nko: 'Nkoo',\n Nushu: 'Nshu',\n Ogham: 'Ogam',\n Ol_Chiki: 'Olck',\n Old_Hungarian: 'Hung',\n Old_Italic: 'Ital',\n Old_North_Arabian: 'Narb',\n Old_Permic: 'Perm',\n Old_Persian: 'Xpeo',\n Old_Sogdian: 'Sogo',\n Old_South_Arabian: 'Sarb',\n Old_Turkic: 'Orkh',\n Oriya: 'Orya',\n Osage: 'Osge',\n Osmanya: 'Osma',\n Pahawh_Hmong: 'Hmng',\n Palmyrene: 'Palm',\n Pau_Cin_Hau: 'Pauc',\n Phags_Pa: 'Phag',\n Phoenician: 'Phnx',\n Psalter_Pahlavi: 'Phlp',\n Rejang: 'Rjng',\n Runic: 'Runr',\n Samaritan: 'Samr',\n Saurashtra: 'Saur',\n Sharada: 'Shrd',\n Shavian: 'Shaw',\n Siddham: 'Sidd',\n SignWriting: 'Sgnw',\n Sinhala: 'Sinh',\n Sogdian: 'Sogd',\n Sora_Sompeng: 'Sora',\n Soyombo: 'Soyo',\n Sundanese: 'Sund',\n Syloti_Nagri: 'Sylo',\n Syriac: 'Syrc',\n Tagalog: 'Tglg',\n Tagbanwa: 'Tagb',\n Tai_Le: 'Tale',\n Tai_Tham: 'Lana',\n Tai_Viet: 'Tavt',\n Takri: 'Takr',\n Tamil: 'Taml',\n Tangut: 'Tang',\n Telugu: 'Telu',\n Thaana: 'Thaa',\n Thai: 'Thai',\n Tibetan: 'Tibt',\n Tifinagh: 'Tfng',\n Tirhuta: 'Tirh',\n Ugaritic: 'Ugar',\n Vai: 'Vaii',\n Warang_Citi: 'Wara',\n Yi: 'Yiii',\n Zanabazar_Square: 'Zanb'\n};\n\nvar SCRIPT_VALUE_ALIASES_TO_VALUE = inverseMap(SCRIPT_VALUE_TO_ALIASES);\n\nfunction inverseMap(data) {\n var inverse = {};\n\n for (var name in data) {\n if (!data.hasOwnProperty(name)) {\n continue;\n }\n var value = data[name];\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n inverse[value[i]] = name;\n }\n } else {\n inverse[value] = name;\n }\n }\n\n return inverse;\n}\n\nfunction isValidName(name) {\n return NON_BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isValidValue(name, value) {\n if (isGeneralCategoryName(name)) {\n return isGeneralCategoryValue(value);\n }\n\n if (isScriptCategoryName(name)) {\n return isScriptCategoryValue(value);\n }\n\n return false;\n}\n\nfunction isAlias(name) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction isGeneralCategoryName(name) {\n return name === 'General_Category' || name == 'gc';\n}\n\nfunction isScriptCategoryName(name) {\n return name === 'Script' || name === 'Script_Extensions' || name === 'sc' || name === 'scx';\n}\n\nfunction isGeneralCategoryValue(value) {\n return GENERAL_CATEGORY_VALUE_TO_ALIASES.hasOwnProperty(value) || GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value);\n}\n\nfunction isScriptCategoryValue(value) {\n return SCRIPT_VALUE_TO_ALIASES.hasOwnProperty(value) || SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value);\n}\n\nfunction isBinaryPropertyName(name) {\n return BINARY_PROP_NAMES_TO_ALIASES.hasOwnProperty(name) || BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name);\n}\n\nfunction getCanonicalName(name) {\n if (NON_BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return NON_BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(name)) {\n return BINARY_ALIASES_TO_PROP_NAMES[name];\n }\n\n return null;\n}\n\nfunction getCanonicalValue(value) {\n if (GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES.hasOwnProperty(value)) {\n return GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES[value];\n }\n\n if (SCRIPT_VALUE_ALIASES_TO_VALUE.hasOwnProperty(value)) {\n return SCRIPT_VALUE_ALIASES_TO_VALUE[value];\n }\n\n if (BINARY_ALIASES_TO_PROP_NAMES.hasOwnProperty(value)) {\n return BINARY_ALIASES_TO_PROP_NAMES[value];\n }\n\n return null;\n}\n\nmodule.exports = {\n isAlias: isAlias,\n isValidName: isValidName,\n isValidValue: isValidValue,\n isGeneralCategoryValue: isGeneralCategoryValue,\n isScriptCategoryValue: isScriptCategoryValue,\n isBinaryPropertyName: isBinaryPropertyName,\n getCanonicalName: getCanonicalName,\n getCanonicalValue: getCanonicalValue,\n\n NON_BINARY_PROP_NAMES_TO_ALIASES: NON_BINARY_PROP_NAMES_TO_ALIASES,\n NON_BINARY_ALIASES_TO_PROP_NAMES: NON_BINARY_ALIASES_TO_PROP_NAMES,\n\n BINARY_PROP_NAMES_TO_ALIASES: BINARY_PROP_NAMES_TO_ALIASES,\n BINARY_ALIASES_TO_PROP_NAMES: BINARY_ALIASES_TO_PROP_NAMES,\n\n GENERAL_CATEGORY_VALUE_TO_ALIASES: GENERAL_CATEGORY_VALUE_TO_ALIASES,\n GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES: GENERAL_CATEGORY_VALUE_ALIASES_TO_VALUES,\n\n SCRIPT_VALUE_TO_ALIASES: SCRIPT_VALUE_TO_ALIASES,\n SCRIPT_VALUE_ALIASES_TO_VALUE: SCRIPT_VALUE_ALIASES_TO_VALUE\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar compatTranspiler = require('./compat-transpiler');\nvar generator = require('./generator');\nvar optimizer = require('./optimizer');\nvar parser = require('./parser');\nvar _transform = require('./transform');\nvar _traverse = require('./traverse');\nvar fa = require('./interpreter/finite-automaton');\n\nvar _require = require('./compat-transpiler/runtime'),\n RegExpTree = _require.RegExpTree;\n\n/**\n * An API object for RegExp processing (parsing/transform/generation).\n */\n\n\nvar regexpTree = {\n /**\n * Parser module exposed.\n */\n parser: parser,\n\n /**\n * Expose finite-automaton module.\n */\n fa: fa,\n\n /**\n * `TransformResult` exposed.\n */\n TransformResult: _transform.TransformResult,\n\n /**\n * Parses a regexp string, producing an AST.\n *\n * @param string regexp\n *\n * a regular expression in different formats: string, AST, RegExp.\n *\n * @param Object options\n *\n * parsing options for this parse call. Default are:\n *\n * - captureLocations: boolean\n * - any other custom options\n *\n * @return Object AST\n */\n parse: function parse(regexp, options) {\n return parser.parse('' + regexp, options);\n },\n\n\n /**\n * Traverses a RegExp AST.\n *\n * @param Object ast\n * @param Object | Array handlers\n *\n * Each `handler` is an object containing handler function for needed\n * node types. Example:\n *\n * regexpTree.traverse(ast, {\n * onChar(node) {\n * ...\n * },\n * });\n *\n * The value for a node type may also be an object with functions pre and post.\n * This enables more context-aware analyses, e.g. measuring star height.\n */\n traverse: function traverse(ast, handlers, options) {\n return _traverse.traverse(ast, handlers, options);\n },\n\n\n /**\n * Transforms a regular expression.\n *\n * A regexp can be passed in different formats (string, regexp or AST),\n * applying a set of transformations. It is a convenient wrapper\n * on top of \"parse-traverse-generate\" tool chain.\n *\n * @param string | AST | RegExp regexp - a regular expression;\n * @param Object | Array handlers - a list of handlers.\n *\n * @return TransformResult - a transformation result.\n */\n transform: function transform(regexp, handlers) {\n return _transform.transform(regexp, handlers);\n },\n\n\n /**\n * Generates a RegExp string from an AST.\n *\n * @param Object ast\n *\n * Invariant:\n *\n * regexpTree.generate(regexpTree.parse('/[a-z]+/i')); // '/[a-z]+/i'\n */\n generate: function generate(ast) {\n return generator.generate(ast);\n },\n\n\n /**\n * Creates a RegExp object from a regexp string.\n *\n * @param string regexp\n */\n toRegExp: function toRegExp(regexp) {\n var compat = this.compatTranspile(regexp);\n return new RegExp(compat.getSource(), compat.getFlags());\n },\n\n\n /**\n * Optimizes a regular expression by replacing some\n * sub-expressions with their idiomatic patterns.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n optimize: function optimize(regexp, whitelist) {\n var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n blacklist = _ref.blacklist;\n\n return optimizer.optimize(regexp, { whitelist: whitelist, blacklist: blacklist });\n },\n\n\n /**\n * Translates a regular expression in new syntax or in new format\n * into equivalent expressions in old syntax.\n *\n * @param string regexp\n *\n * @return TransformResult object\n */\n compatTranspile: function compatTranspile(regexp, whitelist) {\n return compatTranspiler.transform(regexp, whitelist);\n },\n\n\n /**\n * Executes a regular expression on a string.\n *\n * @param RegExp|string re - a regular expression.\n * @param string string - a testing string.\n */\n exec: function exec(re, string) {\n if (typeof re === 'string') {\n var compat = this.compatTranspile(re);\n var extra = compat.getExtra();\n\n if (extra.namedCapturingGroups) {\n re = new RegExpTree(compat.toRegExp(), {\n flags: compat.getFlags(),\n source: compat.getSource(),\n groups: extra.namedCapturingGroups\n });\n } else {\n re = compat.toRegExp();\n }\n }\n\n return re.exec(string);\n }\n};\n\nmodule.exports = regexpTree;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar generator = require('../generator');\nvar parser = require('../parser');\nvar traverse = require('../traverse');\n\n/**\n * Transform result.\n */\n\nvar TransformResult = function () {\n /**\n * Initializes a transform result for an AST.\n *\n * @param Object ast - an AST node\n * @param mixed extra - any extra data a transform may return\n */\n function TransformResult(ast) {\n var extra = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n _classCallCheck(this, TransformResult);\n\n this._ast = ast;\n this._source = null;\n this._string = null;\n this._regexp = null;\n this._extra = extra;\n }\n\n _createClass(TransformResult, [{\n key: 'getAST',\n value: function getAST() {\n return this._ast;\n }\n }, {\n key: 'setExtra',\n value: function setExtra(extra) {\n this._extra = extra;\n }\n }, {\n key: 'getExtra',\n value: function getExtra() {\n return this._extra;\n }\n }, {\n key: 'toRegExp',\n value: function toRegExp() {\n if (!this._regexp) {\n this._regexp = new RegExp(this.getSource(), this._ast.flags);\n }\n return this._regexp;\n }\n }, {\n key: 'getSource',\n value: function getSource() {\n if (!this._source) {\n this._source = generator.generate(this._ast.body);\n }\n return this._source;\n }\n }, {\n key: 'getFlags',\n value: function getFlags() {\n return this._ast.flags;\n }\n }, {\n key: 'toString',\n value: function toString() {\n if (!this._string) {\n this._string = generator.generate(this._ast);\n }\n return this._string;\n }\n }]);\n\n return TransformResult;\n}();\n\nmodule.exports = {\n /**\n * Expose `TransformResult`.\n */\n TransformResult: TransformResult,\n\n /**\n * Transforms a regular expression applying a set of\n * transformation handlers.\n *\n * @param string | AST | RegExp:\n *\n * a regular expression in different representations: a string,\n * a RegExp object, or an AST.\n *\n * @param Object | Array:\n *\n * a handler (or a list of handlers) from `traverse` API.\n *\n * @return TransformResult instance.\n *\n * Example:\n *\n * transform(/[a-z]/i, {\n * onChar(path) {\n * const {node} = path;\n *\n * if (...) {\n * path.remove();\n * }\n * }\n * });\n */\n transform: function transform(regexp, handlers) {\n var ast = regexp;\n\n if (regexp instanceof RegExp) {\n regexp = '' + regexp;\n }\n\n if (typeof regexp === 'string') {\n ast = parser.parse(regexp, {\n captureLocations: true\n });\n }\n\n traverse.traverse(ast, handlers);\n\n return new TransformResult(ast);\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Flattens a nested disjunction node to a list.\n *\n * /a|b|c|d/\n *\n * {{{a, b}, c}, d} -> [a, b, c, d]\n */\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction disjunctionToList(node) {\n if (node.type !== 'Disjunction') {\n throw new TypeError('Expected \"Disjunction\" node, got \"' + node.type + '\"');\n }\n\n var list = [];\n\n if (node.left && node.left.type === 'Disjunction') {\n list.push.apply(list, _toConsumableArray(disjunctionToList(node.left)).concat([node.right]));\n } else {\n list.push(node.left, node.right);\n }\n\n return list;\n}\n\n/**\n * Builds a nested disjunction node from a list.\n *\n * /a|b|c|d/\n *\n * [a, b, c, d] -> {{{a, b}, c}, d}\n */\nfunction listToDisjunction(list) {\n return list.reduce(function (left, right) {\n return {\n type: 'Disjunction',\n left: left,\n right: right\n };\n });\n}\n\n/**\n * Increases a quantifier by one.\n * Does not change greediness.\n * * -> +\n * + -> {2,}\n * ? -> {1,2}\n * {2} -> {3}\n * {2,} -> {3,}\n * {2,3} -> {3,4}\n */\nfunction increaseQuantifierByOne(quantifier) {\n if (quantifier.kind === '*') {\n\n quantifier.kind = '+';\n } else if (quantifier.kind === '+') {\n\n quantifier.kind = 'Range';\n quantifier.from = 2;\n delete quantifier.to;\n } else if (quantifier.kind === '?') {\n\n quantifier.kind = 'Range';\n quantifier.from = 1;\n quantifier.to = 2;\n } else if (quantifier.kind === 'Range') {\n\n quantifier.from += 1;\n if (quantifier.to) {\n quantifier.to += 1;\n }\n }\n}\n\nmodule.exports = {\n disjunctionToList: disjunctionToList,\n listToDisjunction: listToDisjunction,\n increaseQuantifierByOne: increaseQuantifierByOne\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar NodePath = require('./node-path');\n\n/**\n * Does an actual AST traversal, using visitor pattern,\n * and calling set of callbacks.\n *\n * Based on https://github.com/olov/ast-traverse\n *\n * Expects AST in Mozilla Parser API: nodes which are supposed to be\n * handled should have `type` property.\n *\n * @param Object root - a root node to start traversal from.\n *\n * @param Object options - an object with set of callbacks:\n *\n * - `pre(node, parent, prop, index)` - a hook called on node enter\n * - `post`(node, parent, prop, index) - a hook called on node exit\n * - `skipProperty(prop)` - a predicated whether a property should be skipped\n */\nfunction astTraverse(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var pre = options.pre;\n var post = options.post;\n var skipProperty = options.skipProperty;\n\n function visit(node, parent, prop, idx) {\n if (!node || typeof node.type !== 'string') {\n return;\n }\n\n var res = undefined;\n if (pre) {\n res = pre(node, parent, prop, idx);\n }\n\n if (res !== false) {\n\n // A node can be replaced during traversal, so we have to\n // recalculate it from the parent, to avoid traversing \"dead\" nodes.\n if (parent && parent[prop]) {\n if (!isNaN(idx)) {\n node = parent[prop][idx];\n } else {\n node = parent[prop];\n }\n }\n\n for (var _prop in node) {\n if (node.hasOwnProperty(_prop)) {\n if (skipProperty ? skipProperty(_prop, node) : _prop[0] === '$') {\n continue;\n }\n\n var child = node[_prop];\n\n // Collection node.\n //\n // NOTE: a node (or several nodes) can be removed or inserted\n // during traversal.\n //\n // Current traversing index is stored on top of the\n // `NodePath.traversingIndexStack`. The stack is used to support\n // recursive nature of the traversal.\n //\n // In this case `NodePath.traversingIndex` (which we use here) is\n // updated in the NodePath remove/insert methods.\n //\n if (Array.isArray(child)) {\n var index = 0;\n NodePath.traversingIndexStack.push(index);\n while (index < child.length) {\n visit(child[index], node, _prop, index);\n index = NodePath.updateTraversingIndex(+1);\n }\n NodePath.traversingIndexStack.pop();\n }\n\n // Simple node.\n else {\n visit(child, node, _prop);\n }\n }\n }\n }\n\n if (post) {\n post(node, parent, prop, idx);\n }\n }\n\n visit(root, null);\n}\n\nmodule.exports = {\n /**\n * Traverses an AST.\n *\n * @param Object ast - an AST node\n *\n * @param Object | Array handlers:\n *\n * an object (or an array of objects)\n *\n * Each such object contains a handler function per node.\n * In case of an array of handlers, they are applied in order.\n * A handler may return a transformed node (or a different type).\n *\n * The per-node function may instead be an object with functions pre and post.\n * pre is called before visiting the node, post after.\n * If a handler is a function, it is treated as the pre function, with an empty post.\n *\n * @param Object options:\n *\n * a config object, specifying traversal options:\n *\n * `asNodes`: boolean - whether handlers should receives raw AST nodes\n * (false by default), instead of a `NodePath` wrapper. Note, by default\n * `NodePath` wrapper provides a set of convenient method to manipulate\n * a traversing AST, and also has access to all parents list. A raw\n * nodes traversal should be used in rare cases, when no `NodePath`\n * features are needed.\n *\n * Special hooks:\n *\n * - `shouldRun(ast)` - a predicate determining whether the handler\n * should be applied.\n *\n * NOTE: Multiple handlers are used as an optimization of applying all of\n * them in one AST traversal pass.\n */\n traverse: function traverse(ast, handlers) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { asNodes: false };\n\n\n if (!Array.isArray(handlers)) {\n handlers = [handlers];\n }\n\n // Filter out handlers by result of `shouldRun`, if the method is present.\n handlers = handlers.filter(function (handler) {\n if (typeof handler.shouldRun !== 'function') {\n return true;\n }\n return handler.shouldRun(ast);\n });\n\n NodePath.initRegistry();\n\n // Allow handlers to initializer themselves.\n handlers.forEach(function (handler) {\n if (typeof handler.init === 'function') {\n handler.init(ast);\n }\n });\n\n function getPathFor(node, parent, prop, index) {\n var parentPath = NodePath.getForNode(parent);\n var nodePath = NodePath.getForNode(node, parentPath, prop, index);\n\n return nodePath;\n }\n\n // Handle actual nodes.\n astTraverse(ast, {\n /**\n * Handler on node enter.\n */\n pre: function pre(node, parent, prop, index) {\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = handlers[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var handler = _step.value;\n\n // \"Catch-all\" `*` handler.\n if (typeof handler['*'] === 'function') {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handler['*'](nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handler['*'](node, parent, prop, index);\n }\n }\n\n // Per-node handler.\n var handlerFuncPre = void 0;\n if (typeof handler[node.type] === 'function') {\n handlerFuncPre = handler[node.type];\n } else if (typeof handler[node.type] === 'object' && typeof handler[node.type].pre === 'function') {\n handlerFuncPre = handler[node.type].pre;\n }\n\n if (handlerFuncPre) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var _handlerResult = handlerFuncPre.call(handler, nodePath);\n // Explicitly stop traversal.\n if (_handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPre.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n },\n // pre func\n\n /**\n * Handler on node exit.\n */\n post: function post(node, parent, prop, index) {\n if (!node) {\n return;\n }\n\n var nodePath = void 0;\n if (!options.asNodes) {\n nodePath = getPathFor(node, parent, prop, index);\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = handlers[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var handler = _step2.value;\n\n // Per-node handler.\n var handlerFuncPost = void 0;\n if (typeof handler[node.type] === 'object' && typeof handler[node.type].post === 'function') {\n handlerFuncPost = handler[node.type].post;\n }\n\n if (handlerFuncPost) {\n if (nodePath) {\n // A path/node can be removed by some previous handler.\n if (!nodePath.isRemoved()) {\n var handlerResult = handlerFuncPost.call(handler, nodePath);\n // Explicitly stop traversal.\n if (handlerResult === false) {\n return false;\n }\n }\n } else {\n handlerFuncPost.call(handler, node, parent, prop, index);\n }\n }\n } // Loop over handlers\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n },\n // post func\n\n /**\n * Skip locations by default.\n */\n skipProperty: function skipProperty(prop) {\n return prop === 'loc';\n }\n });\n }\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nvar _createClass = function () { function 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_COLLECTION_PROP = 'expressions';\nvar DEFAULT_SINGLE_PROP = 'expression';\n\n/**\n * NodePath class encapsulates a traversing node,\n * its parent node, property name in the parent node, and\n * an index (in case if a node is part of a collection).\n * It also provides set of methods for AST manipulation.\n */\n\nvar NodePath = function () {\n /**\n * NodePath constructor.\n *\n * @param Object node - an AST node\n * @param NodePath parentPath - a nullable parent path\n * @param string property - property name of the node in the parent\n * @param number index - index of the node in a collection.\n */\n function NodePath(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n _classCallCheck(this, NodePath);\n\n this.node = node;\n this.parentPath = parentPath;\n this.parent = parentPath ? parentPath.node : null;\n this.property = property;\n this.index = index;\n }\n\n _createClass(NodePath, [{\n key: '_enforceProp',\n value: function _enforceProp(property) {\n if (!this.node.hasOwnProperty(property)) {\n throw new Error('Node of type ' + this.node.type + ' doesn\\'t have \"' + property + '\" collection.');\n }\n }\n\n /**\n * Sets a node into a children collection or the single child.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param number index - index at which to set\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'setChild',\n value: function setChild(node) {\n var index = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n\n\n var childPath = void 0;\n if (index != null) {\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n this.node[property][index] = node;\n childPath = NodePath.getForNode(node, this, property, index);\n } else {\n if (!property) {\n property = DEFAULT_SINGLE_PROP;\n }\n this._enforceProp(property);\n this.node[property] = node;\n childPath = NodePath.getForNode(node, this, property, null);\n }\n return childPath;\n }\n\n /**\n * Appends a node to a children collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to set into a collection or as single child\n * @param string property - name of the collection or single property\n */\n\n }, {\n key: 'appendChild',\n value: function appendChild(node) {\n var property = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n\n if (!property) {\n property = DEFAULT_COLLECTION_PROP;\n }\n this._enforceProp(property);\n var end = this.node[property].length;\n return this.setChild(node, end, property);\n }\n\n /**\n * Inserts a node into a collection.\n * By default child nodes are supposed to be under `expressions` property.\n * An explicit property can be passed.\n *\n * @param Object node - a node to insert into a collection\n * @param number index - index at which to insert\n * @param string property - name of the collection property\n */\n\n }, {\n key: 'insertChildAt',\n value: function insertChildAt(node, index) {\n var property = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEFAULT_COLLECTION_PROP;\n\n this._enforceProp(property);\n\n this.node[property].splice(index, 0, node);\n\n // If we inserted a node before the traversing index,\n // we should increase the later.\n if (index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(+1);\n }\n\n this._rebuildIndex(this.node, property);\n }\n\n /**\n * Removes a node.\n */\n\n }, {\n key: 'remove',\n value: function remove() {\n if (this.isRemoved()) {\n return;\n }\n NodePath.registry.delete(this.node);\n\n this.node = null;\n\n if (!this.parent) {\n return;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property].splice(this.index, 1);\n\n // If we remove a node before the traversing index,\n // we should increase the later.\n if (this.index <= NodePath.getTraversingIndex()) {\n NodePath.updateTraversingIndex(-1);\n }\n\n // Rebuild index.\n this._rebuildIndex(this.parent, this.property);\n\n this.index = null;\n this.property = null;\n\n return;\n }\n\n // A simple node.\n delete this.parent[this.property];\n this.property = null;\n }\n\n /**\n * Rebuilds child nodes index (used on remove/insert).\n */\n\n }, {\n key: '_rebuildIndex',\n value: function _rebuildIndex(parent, property) {\n var parentPath = NodePath.getForNode(parent);\n\n for (var i = 0; i < parent[property].length; i++) {\n var path = NodePath.getForNode(parent[property][i], parentPath, property, i);\n path.index = i;\n }\n }\n\n /**\n * Whether the path was removed.\n */\n\n }, {\n key: 'isRemoved',\n value: function isRemoved() {\n return this.node === null;\n }\n\n /**\n * Replaces a node with the passed one.\n */\n\n }, {\n key: 'replace',\n value: function replace(newNode) {\n NodePath.registry.delete(this.node);\n\n this.node = newNode;\n\n if (!this.parent) {\n return null;\n }\n\n // A node is in a collection.\n if (this.index !== null) {\n this.parent[this.property][this.index] = newNode;\n }\n\n // A simple node.\n else {\n this.parent[this.property] = newNode;\n }\n\n // Rebuild the node path for the new node.\n return NodePath.getForNode(newNode, this.parentPath, this.property, this.index);\n }\n\n /**\n * Updates a node inline.\n */\n\n }, {\n key: 'update',\n value: function update(nodeProps) {\n Object.assign(this.node, nodeProps);\n }\n\n /**\n * Returns parent.\n */\n\n }, {\n key: 'getParent',\n value: function getParent() {\n return this.parentPath;\n }\n\n /**\n * Returns nth child.\n */\n\n }, {\n key: 'getChild',\n value: function getChild() {\n var n = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n if (this.node.expressions) {\n return NodePath.getForNode(this.node.expressions[n], this, DEFAULT_COLLECTION_PROP, n);\n } else if (this.node.expression && n == 0) {\n return NodePath.getForNode(this.node.expression, this, DEFAULT_SINGLE_PROP);\n }\n return null;\n }\n\n /**\n * Whether a path node is syntactically equal to the passed one.\n *\n * NOTE: we don't rely on `source` property from the `loc` data\n * (which would be the fastest comparison), since it might be unsync\n * after several modifications. We use here simple `JSON.stringify`\n * excluding the `loc` data.\n *\n * @param NodePath other - path to compare to.\n * @return boolean\n */\n\n }, {\n key: 'hasEqualSource',\n value: function hasEqualSource(path) {\n return JSON.stringify(this.node, jsonSkipLoc) === JSON.stringify(path.node, jsonSkipLoc);\n }\n\n /**\n * JSON-encodes a node skipping location.\n */\n\n }, {\n key: 'jsonEncode',\n value: function jsonEncode() {\n var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n format = _ref.format,\n useLoc = _ref.useLoc;\n\n return JSON.stringify(this.node, useLoc ? null : jsonSkipLoc, format);\n }\n\n /**\n * Returns previous sibling.\n */\n\n }, {\n key: 'getPreviousSibling',\n value: function getPreviousSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index - 1], NodePath.getForNode(this.parent), this.property, this.index - 1);\n }\n\n /**\n * Returns next sibling.\n */\n\n }, {\n key: 'getNextSibling',\n value: function getNextSibling() {\n if (!this.parent || this.index == null) {\n return null;\n }\n return NodePath.getForNode(this.parent[this.property][this.index + 1], NodePath.getForNode(this.parent), this.property, this.index + 1);\n }\n\n /**\n * Returns a NodePath instance for a node.\n *\n * The same NodePath can be reused in several places, e.g.\n * a parent node passed for all its children.\n */\n\n }], [{\n key: 'getForNode',\n value: function getForNode(node) {\n var parentPath = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var prop = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var index = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : -1;\n\n if (!node) {\n return null;\n }\n\n if (!NodePath.registry.has(node)) {\n NodePath.registry.set(node, new NodePath(node, parentPath, prop, index == -1 ? null : index));\n }\n\n var path = NodePath.registry.get(node);\n\n if (parentPath !== null) {\n path.parentPath = parentPath;\n path.parent = path.parentPath.node;\n }\n\n if (prop !== null) {\n path.property = prop;\n }\n\n if (index >= 0) {\n path.index = index;\n }\n\n return path;\n }\n\n /**\n * Initializes the NodePath registry. The registry is a map from\n * a node to its NodePath instance.\n */\n\n }, {\n key: 'initRegistry',\n value: function initRegistry() {\n if (!NodePath.registry) {\n NodePath.registry = new Map();\n }\n NodePath.registry.clear();\n }\n\n /**\n * Updates index of a currently traversing collection.\n */\n\n }, {\n key: 'updateTraversingIndex',\n value: function updateTraversingIndex(dx) {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1] += dx;\n }\n\n /**\n * Returns current traversing index.\n */\n\n }, {\n key: 'getTraversingIndex',\n value: function getTraversingIndex() {\n return NodePath.traversingIndexStack[NodePath.traversingIndexStack.length - 1];\n }\n }]);\n\n return NodePath;\n}();\n\nNodePath.initRegistry();\n\n/**\n * Index of a currently traversing collection is stored on top of the\n * `NodePath.traversingIndexStack`. Remove/insert methods can adjust\n * this index.\n */\nNodePath.traversingIndexStack = [];\n\n// Helper function used to skip `loc` in JSON operations.\nfunction jsonSkipLoc(prop, value) {\n if (prop === 'loc') {\n return undefined;\n }\n return value;\n}\n\nmodule.exports = NodePath;","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\n/**\n * Performs a deep copy of an simple object.\n * Only handles scalar values, arrays and objects.\n *\n * @param obj Object\n */\n\nmodule.exports = function clone(obj) {\n if (obj === null || typeof obj !== 'object') {\n return obj;\n }\n var res = void 0;\n if (Array.isArray(obj)) {\n res = [];\n } else {\n res = {};\n }\n for (var i in obj) {\n res[i] = clone(obj[i]);\n }\n return res;\n};","/**\n * The MIT License (MIT)\n * Copyright (c) 2017-present Dmitry Soshnikov \n */\n\n'use strict';\n\nmodule.exports = require('./dist/regexp-tree');","/* (ignored) */","import browserslist from 'browserslist';\nimport RegexpTree from 'regexp-tree';\nimport { regexes } from 'ua-regexes-lite';\n\n/**\n * Array of numbers to array of first and last elements.\n * @param numbers - Array of numbers.\n * @returns Number or two numbers.\n */ function numbersToRanges(numbers) {\n if (typeof numbers === \"number\") {\n return numbers;\n }\n if (numbers.length === 1) {\n return numbers[0];\n }\n return [\n numbers[0],\n numbers[numbers.length - 1]\n ];\n}\n\nvar SemverPart;\n(function(SemverPart) {\n SemverPart[SemverPart[\"Major\"] = 0] = \"Major\";\n SemverPart[SemverPart[\"Minor\"] = 1] = \"Minor\";\n SemverPart[SemverPart[\"Patch\"] = 2] = \"Patch\";\n})(SemverPart || (SemverPart = {}));\n\n/**\n * Get semver from string or array.\n * @param version - Target to convert.\n * @returns Array with semver parts.\n */ function semverify(version) {\n const versionParts = Array.isArray(version) ? version : version.toString().split(\".\");\n if (versionParts[0] === \"all\") {\n return [\n Infinity,\n 0,\n 0\n ];\n }\n let versionPart = null;\n let semverPart = null;\n const semver = [\n 0,\n 0,\n 0\n ];\n for(let i = 0; i < 3; i++){\n versionPart = versionParts[i];\n if (typeof versionPart === \"undefined\") {\n continue;\n }\n semverPart = typeof versionPart === \"number\" ? versionPart : parseInt(versionPart, 10);\n if (isNaN(semverPart)) {\n return null;\n }\n semver[i] = semverPart;\n }\n return semver;\n}\n/**\n * Get semver range.\n * @param from\n * @param to\n * @returns Semver range.\n */ function rangeSemver(from, to) {\n let partIndex = 0;\n const range = [];\n for(let i = 2; i >= 0; i--){\n if (from[i] !== to[i]) {\n partIndex = i;\n break;\n }\n }\n for(let i1 = from[partIndex], max = to[partIndex]; i1 <= max; i1++){\n range.push(from.map((v, j)=>j === partIndex ? i1 : v));\n }\n return range;\n}\n/**\n * Compare semvers.\n * @param a - Semver to compare.\n * @param b - Semver to compare with.\n * @param options - Compare options.\n * @returns Equals or not.\n */ function compareSemvers(a, b, options) {\n const [major, minor, patch] = a;\n const [majorBase, minorBase, patchBase] = b;\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n if (majorBase === Infinity) {\n return true;\n }\n const compareMinor = !ignoreMinor;\n const comparePatch = compareMinor && !ignorePatch;\n if (allowHigherVersions) {\n if (comparePatch && patch < patchBase || compareMinor && minor < minorBase) {\n return false;\n }\n return major >= majorBase;\n }\n if (comparePatch && patch !== patchBase || compareMinor && minor !== minorBase) {\n return false;\n }\n return major === majorBase;\n}\n/**\n * Get required semver parts count.\n * @param version - Semver parts or ranges.\n * @param options - Semver compare options.\n * @returns Required semver parts count.\n */ function getRequiredSemverPartsCount(version, options) {\n const { ignoreMinor , ignorePatch , allowZeroSubversions } = options;\n let shouldRepeatCount = ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowZeroSubversions) {\n for(let i = shouldRepeatCount - 1; i > 0; i--){\n if (version[i] !== 0 || shouldRepeatCount === 1) {\n break;\n }\n shouldRepeatCount--;\n }\n }\n return shouldRepeatCount;\n}\n\n/**\n * Browsers strings to info objects.\n * @param browsersList - Browsers strings with family and version.\n * @returns Browser info objects.\n */ function parseBrowsersList(browsersList) {\n return browsersList.reduce((browsers, browser)=>{\n const [family, versionString, versionStringTo] = browser.split(/ |-/);\n const version = semverify(versionString);\n const versions = !version ? [] : versionStringTo ? rangeSemver(version, semverify(versionStringTo)) : [\n version\n ];\n return versions.reduce((browsers, semver)=>{\n if (semver) {\n browsers.push({\n family,\n version: semver\n });\n }\n return browsers;\n }, browsers);\n }, []);\n}\n/**\n * Request browsers list.\n * @param options - Options to get browsers list.\n * @returns Browser info objects.\n */ function getBrowsersList(options = {}) {\n const { browsers , ...browserslistOptions } = options;\n const browsersList = browserslist(browsers, browserslistOptions);\n const parsedBrowsers = parseBrowsersList(browsersList);\n return parsedBrowsers;\n}\n\n/**\n * Compare two arrays.\n * @param a - Array to compare.\n * @param b - Array to compare.\n * @param from - Index to start compare from.\n * @returns Equals or not.\n */ function compareArrays(a, b, from = 0) {\n const len = a.length;\n for(let i = from; i < len; i++){\n if (a[i] !== b[i]) {\n return false;\n }\n }\n return true;\n}\n/**\n * Clone simple object.\n * @param value\n * @returns Object clone.\n */ function clone(value) {\n if (value === null || typeof value !== \"object\") {\n return value;\n }\n /* eslint-disable */ const copy = Array.isArray(value) ? [] : {};\n let i;\n for(i in value){\n copy[i] = clone(value[i]);\n }\n /* eslint-enable */ return copy;\n}\n/**\n * Concat arrays.\n * @param items\n * @returns Concatinated arrays.\n */ function concat(items) {\n return [].concat(...items);\n}\n\n/**\n * Merge browser info object to map with versions.\n * @param browsers - Browser info object to merge.\n * @returns Merged browsers map.\n */ function mergeBrowserVersions(browsers) {\n const merge = new Map();\n browsers.forEach(({ family , version })=>{\n const versions = merge.get(family);\n if (versions) {\n const strVersion = version.join(\".\");\n if (versions.every((_)=>_.join(\".\") !== strVersion)) {\n versions.push(version);\n }\n return;\n }\n merge.set(family, [\n version\n ]);\n });\n merge.forEach((versions)=>{\n versions.sort((a, b)=>{\n for(const i in a){\n if (a[i] !== b[i]) {\n return a[i] - b[i];\n }\n }\n return 0;\n });\n });\n return merge;\n}\n/**\n * Versions to ranged versions.\n * @param versions - Semver versions list.\n * @returns Ranged versions list.\n */ function versionsListToRanges(versions) {\n if (versions.length < 2) {\n return versions;\n }\n const max = versions.length + 1;\n const ranges = [];\n let prev = null;\n let current = versions[0];\n let major = [\n current[SemverPart.Major]\n ];\n let minor = [\n current[SemverPart.Minor]\n ];\n let patch = [\n current[SemverPart.Patch]\n ];\n let part = null;\n for(let i = 1; i < max; i++){\n prev = versions[i - 1];\n current = versions[i] || [];\n for(let p = SemverPart.Major; p <= SemverPart.Patch; p++){\n if ((p === part || part === null) && prev[p] + 1 === current[p] && compareArrays(prev, current, p + 1)) {\n part = p;\n if (p === SemverPart.Major) {\n major.push(current[SemverPart.Major]);\n } else {\n major = current[SemverPart.Major];\n }\n if (p === SemverPart.Minor) {\n minor.push(current[SemverPart.Minor]);\n } else {\n minor = current[SemverPart.Minor];\n }\n if (p === SemverPart.Patch) {\n patch.push(current[SemverPart.Patch]);\n } else {\n patch = current[SemverPart.Patch];\n }\n break;\n }\n if (part === p || prev[p] !== current[p]) {\n ranges.push([\n numbersToRanges(major),\n numbersToRanges(minor),\n numbersToRanges(patch)\n ]);\n major = [\n current[SemverPart.Major]\n ];\n minor = [\n current[SemverPart.Minor]\n ];\n patch = [\n current[SemverPart.Patch]\n ];\n part = null;\n break;\n }\n }\n }\n return ranges;\n}\n\nfunction AstRegExpNode(body) {\n return {\n type: \"RegExp\",\n body,\n flags: \"\"\n };\n}\nfunction AlternativeNode(...expressions) {\n const exps = concat(expressions).filter(Boolean);\n if (exps.length === 1) {\n return exps[0];\n }\n return {\n type: \"Alternative\",\n expressions: exps\n };\n}\nfunction SimpleCharNode(value) {\n return {\n type: \"Char\",\n kind: \"simple\",\n value: String(value),\n codePoint: NaN\n };\n}\nfunction MetaCharNode(value) {\n return {\n type: \"Char\",\n kind: \"meta\",\n value,\n codePoint: NaN\n };\n}\nfunction ClassRangeNode(from, to) {\n return {\n type: \"ClassRange\",\n from,\n to\n };\n}\nfunction CharacterClassNode(...expressions) {\n return {\n type: \"CharacterClass\",\n expressions: concat(expressions).filter(Boolean)\n };\n}\nfunction SimpleQuantifierNode(kind) {\n return {\n type: \"Quantifier\",\n kind,\n greedy: true\n };\n}\nfunction RangeQuantifierNode(from, to) {\n return {\n type: \"Quantifier\",\n kind: \"Range\",\n from,\n to,\n greedy: true\n };\n}\nfunction CapturingGroupNode(expression) {\n return {\n type: \"Group\",\n capturing: true,\n expression,\n number: null\n };\n}\nfunction RepetitionNode(expression, quantifier) {\n return {\n type: \"Repetition\",\n expression,\n quantifier\n };\n}\nfunction DisjunctionNode(...expressions) {\n const exprs = concat(expressions).filter(Boolean);\n if (exprs.length === 1) {\n return exprs[0];\n }\n const disjunction = {\n type: \"Disjunction\",\n left: null,\n right: exprs.pop()\n };\n exprs.reduceRight((disjunction, expr, i)=>{\n if (i === 0) {\n disjunction.left = expr;\n return disjunction;\n }\n disjunction.left = {\n type: \"Disjunction\",\n left: null,\n right: expr\n };\n return disjunction.left;\n }, disjunction);\n return disjunction;\n}\nfunction DisjunctionCapturingGroupNode(...expressions) {\n const expr = DisjunctionNode(...expressions);\n if (expr.type === \"Disjunction\") {\n return CapturingGroupNode(expr);\n }\n return expr;\n}\nfunction DigitPatternNode() {\n return MetaCharNode(\"\\\\d\");\n}\nfunction NumberPatternNode(quantifier = SimpleQuantifierNode(\"+\")) {\n const numberPattern = RepetitionNode(DigitPatternNode(), quantifier);\n return numberPattern;\n}\nfunction NumberCharsNode(value) {\n return AlternativeNode(Array.from(String(value), SimpleCharNode));\n}\n\n/**\n * Check node whether is number pattern.\n * @param node - AST node to check.\n * @returns Is number pattern or not.\n */ function isNumberPatternNode(node) {\n if (node.type === \"Group\" && node.expression.type === \"Repetition\") {\n const { expression , quantifier } = node.expression;\n return expression.type === \"Char\" && expression.value === \"\\\\d\" && quantifier.kind === \"+\" && quantifier.greedy;\n }\n return false;\n}\n/**\n * Check node whether is char node.\n * @param node - AST node to check.\n * @param value - Value to compare.\n * @returns Is char node or not.\n */ function isCharNode(node, value) {\n if (node && node.type === \"Char\") {\n return typeof value === \"undefined\" || value instanceof RegExp && value.test(node.value) || String(value) === node.value;\n }\n return false;\n}\n/**\n * Check node whether is digit range.\n * @param node - AST node to check.\n * @returns Is digit range or not.\n */ function isDigitRangeNode(node) {\n if (node.type === \"CharacterClass\" && node.expressions.length === 1) {\n const [expression] = node.expressions;\n return expression.type === \"ClassRange\" && isCharNode(expression.from, /\\d/) && isCharNode(expression.to, /\\d/);\n }\n return false;\n}\n/**\n * Check node whether is expression.\n * @param node - AST node to check.\n * @returns Is expression node or not.\n */ function isExpressionNode(node) {\n return node.type !== \"RegExp\" && node.type !== \"ClassRange\" && node.type !== \"Quantifier\";\n}\nfunction parseRegex(regex) {\n return typeof regex === \"string\" ? RegexpTree.parse(regex.replace(/^([^/])/, \"/$1\").replace(/([^/])$/, \"$1/\")) : regex instanceof RegExp ? RegexpTree.parse(regex) : regex;\n}\n/**\n * Get regex from string or AST.\n * @param src - String or AST.\n * @returns RegExp.\n */ function toRegex(src) {\n return typeof src === \"string\" ? new RegExp(src) : new RegExp(RegexpTree.generate(src.body), src.flags);\n}\n/**\n * Get string from regex or AST.\n * @param src - RegExp or AST.\n * @returns String.\n */ function toString(src) {\n return typeof src === \"string\" ? src : src instanceof RegExp ? src.toString() : RegexpTree.generate(src);\n}\n\nconst classes = [\n \"RegExp\",\n \"Disjunction\",\n \"Alternative\",\n \"Assertion\",\n \"Char\",\n \"CharacterClass\",\n \"ClassRange\",\n \"Backreference\",\n \"Group\",\n \"Repetition\",\n \"Quantifier\"\n];\n/**\n * Create traversal visitors.\n * @param visitors\n * @returns Traversal handlers.\n */ function visitors(visitors) {\n const { every } = visitors;\n if (!every) {\n return visitors;\n }\n if (typeof every === \"function\") {\n return {\n // eslint-disable-next-line @typescript-eslint/naming-convention\n \"*\": every,\n ...visitors\n };\n }\n return classes.reduce((newVisitors, className)=>{\n const visitor = visitors[className];\n const visitorPre = visitor ? \"pre\" in visitor ? visitor.pre : visitor : null;\n const visitorPost = visitor ? \"post\" in visitor ? visitor.post : null : null;\n newVisitors[className] = {\n pre (nodePath) {\n if (every.pre(nodePath) !== false && visitorPre) {\n return visitorPre(nodePath);\n }\n return true;\n },\n post (nodePath) {\n if (every.post(nodePath) !== false && visitorPost) {\n return visitorPost(nodePath);\n }\n return true;\n }\n };\n return newVisitors;\n }, {});\n}\n\nfunction optimizeRegex(regex) {\n // Optimization requires filled codePoints\n const regexAst = RegexpTree.optimize(parseRegex(toString(regex))).getAST();\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n const { parent , node } = nodePath;\n const { expression } = node;\n node.capturing = true;\n if (parent.type === \"RegExp\" || expression.type !== \"Disjunction\" && parent.type !== \"Repetition\" || expression.type === \"Disjunction\" && parent.type === \"Disjunction\") {\n nodePath.replace(nodePath.node.expression);\n }\n }\n });\n return regexAst;\n}\n/**\n * Merge digits patterns if possible.\n * @param a\n * @param b\n * @returns Merged node.\n */ function mergeDigits(a, b) {\n if (isCharNode(a) && isCharNode(b) && a.value === b.value) {\n return b;\n }\n if (isCharNode(a, /\\d/) && isDigitRangeNode(b) && Number(b.expressions[0].from.value) - Number(a.value) === 1) {\n return {\n ...b,\n expressions: [\n {\n ...b.expressions[0],\n from: a\n }\n ]\n };\n }\n if (isDigitRangeNode(a) && isCharNode(b, /\\d/) && Number(b.value) - Number(a.expressions[0].to.value) === 1) {\n return {\n ...a,\n expressions: [\n {\n ...a.expressions[0],\n to: b\n }\n ]\n };\n }\n return null;\n}\n/**\n * Optimize segment number patterns.\n * @param patterns\n * @returns Optimized segment number patterns.\n */ function optimizeSegmentNumberPatterns(patterns) {\n return patterns.reduce((patterns, node)=>{\n const prevNode = patterns[patterns.length - 1];\n if (prevNode && node.type === \"Alternative\" && prevNode.type === \"Alternative\" && node.expressions.length === prevNode.expressions.length) {\n const merged = prevNode.expressions.reduceRight((exps, exp, i)=>{\n if (!exps) {\n return exps;\n }\n const merged = mergeDigits(exp, node.expressions[i]);\n if (merged) {\n exps.unshift(merged);\n } else {\n return null;\n }\n return exps;\n }, []);\n if (merged) {\n node.expressions = merged;\n patterns.pop();\n }\n }\n patterns.push(node);\n return patterns;\n }, []);\n}\n\n/**\n * Transform number to digits array.\n * @param num - Target number.\n * @returns Digits array.\n */ function numberToDigits(num) {\n return Array.from(num.toString(), Number);\n}\n\n/**\n * Get digit pattern.\n * @param digit - Ray start.\n * @param includes - Include start digit or use next.\n * @returns Digit pattern.\n */ function rayRangeDigitPattern(digit, includes) {\n const rangeStart = digit + Number(!includes);\n if (rangeStart === 0) {\n return DigitPatternNode();\n }\n if (rangeStart === 9) {\n return SimpleCharNode(\"9\");\n }\n if (rangeStart > 9) {\n return null;\n }\n return CharacterClassNode(ClassRangeNode(SimpleCharNode(rangeStart), SimpleCharNode(\"9\")));\n}\n/**\n * Create numeric ray pattern.\n * @param from - Start from this number.\n * @returns Numeric ray pattern parts.\n */ function rayToNumberPatterns(from) {\n if (from === 0) {\n return [\n NumberPatternNode()\n ];\n }\n const digits = numberToDigits(from);\n const digitsCount = digits.length;\n const other = NumberPatternNode(RangeQuantifierNode(digitsCount + 1));\n const zeros = digitsCount - 1;\n if (from / Math.pow(10, zeros) === digits[0]) {\n return [\n AlternativeNode(rayRangeDigitPattern(digits[0], true), Array.from({\n length: zeros\n }, DigitPatternNode)),\n other\n ];\n }\n const raysNumberPatterns = digits.reduce((topNodes, _, i)=>{\n const ri = digitsCount - i - 1;\n const d = i === 0;\n let prev = SimpleCharNode(\"\");\n const nodes = digits.reduce((nodes, digit, j)=>{\n if (j < ri) {\n nodes.push(SimpleCharNode(digit));\n } else if (prev) {\n if (j > ri) {\n nodes.push(DigitPatternNode());\n } else {\n prev = rayRangeDigitPattern(digit, d);\n if (prev) {\n nodes.push(prev);\n } else {\n return [];\n }\n }\n }\n return nodes;\n }, []);\n if (nodes.length) {\n topNodes.push(nodes);\n }\n return topNodes;\n }, []);\n const numberPatterns = raysNumberPatterns.map((_)=>AlternativeNode(_));\n numberPatterns.push(other);\n return numberPatterns;\n}\n\n/**\n * Get digit pattern.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param zeros - Zeros to add as prefix.\n * @returns Digit pattern.\n */ function segmentRangeNumberPattern(from, to, zeros) {\n if (to < from) {\n return null;\n }\n const fromNode = SimpleCharNode(from);\n const toNode = SimpleCharNode(to);\n const zerosPrefix = typeof zeros === \"number\" && zeros > 0 ? Array.from({\n length: zeros\n }, ()=>SimpleCharNode(0)) : [];\n const addPrefix = zerosPrefix.length ? (node)=>AlternativeNode(zerosPrefix, node) : (node)=>node;\n if (from === to) {\n return addPrefix(fromNode);\n }\n if (from === 0 && to === 9) {\n return addPrefix(DigitPatternNode());\n }\n if (to - from === 1) {\n return addPrefix(CharacterClassNode(fromNode, toNode));\n }\n return addPrefix(CharacterClassNode(ClassRangeNode(fromNode, toNode)));\n}\n/**\n * Split segment range to decade ranges.\n * @param from - Segment start.\n * @param to - Segment end.\n * @returns Ranges.\n */ function splitToDecadeRanges(from, to) {\n const ranges = [];\n let num = from;\n let decade = 1;\n do {\n decade *= 10;\n if (num < decade) {\n ranges.push([\n num,\n Math.min(decade - 1, to)\n ]);\n num = decade;\n }\n }while (decade <= to);\n return ranges;\n}\n/**\n * Get common and diffs of two numbers (arrays of digits).\n * @param a - Digits.\n * @param b - Other digits.\n * @returns Common part and diffs.\n */ function splitCommonDiff(a, b) {\n const len = a.length;\n if (len !== b.length || a[0] !== b[0]) {\n return null;\n }\n let common = a[0].toString();\n let currA = 0;\n let currB = 0;\n let diffA = \"\";\n let diffB = \"\";\n for(let i = 1; i < len; i++){\n currA = a[i];\n currB = b[i];\n if (currA === currB) {\n common += currA;\n } else {\n diffA += currA;\n diffB += currB;\n }\n }\n return [\n common,\n parseInt(diffA, 10),\n parseInt(diffB, 10)\n ];\n}\n/**\n * Get segment patterns.\n * @param from - Segment start.\n * @param to - Segment end.\n * @param digitsInNumber - How many digits should be en number. Will be filled by zeros.\n * @returns Segment patterns.\n */ function segmentToNumberPatterns(from, to, digitsInNumber = 0) {\n const fromDigits = numberToDigits(from);\n const digitsCount = fromDigits.length;\n if (from < 10 && to < 10 || from === to) {\n const zeros = digitsInNumber - digitsCount;\n return [\n segmentRangeNumberPattern(from, to, zeros)\n ];\n }\n const toDigits = numberToDigits(to);\n if (digitsCount !== toDigits.length) {\n const decadeRanges = splitToDecadeRanges(from, to);\n const parts = concat(decadeRanges.map(([from, to])=>segmentToNumberPatterns(from, to, digitsInNumber)));\n return parts;\n }\n const commonStart = splitCommonDiff(fromDigits, toDigits);\n if (Array.isArray(commonStart)) {\n const [common, from1, to1] = commonStart;\n const digitsInNumber1 = digitsCount - common.length;\n const diffParts = segmentToNumberPatterns(from1, to1, digitsInNumber1);\n return [\n AlternativeNode(Array.from(common, SimpleCharNode), DisjunctionCapturingGroupNode(diffParts))\n ];\n }\n const range = Array.from({\n length: digitsCount - 1\n });\n const middleSegment = segmentRangeNumberPattern(fromDigits[0] + 1, toDigits[0] - 1);\n const parts1 = [\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(fromDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(digit + d, 9);\n }));\n }),\n // but output more readable\n ...middleSegment ? [\n AlternativeNode(middleSegment, Array.from({\n length: digitsCount - 1\n }, ()=>DigitPatternNode()))\n ] : [],\n ...range.map((_, i)=>{\n const ri = digitsCount - i - 1;\n const d = Number(i > 0);\n return AlternativeNode(toDigits.map((digit, j)=>{\n if (j < ri) {\n return SimpleCharNode(digit);\n }\n if (j > ri) {\n return segmentRangeNumberPattern(0, 9);\n }\n return segmentRangeNumberPattern(0, digit - d);\n }));\n })\n ];\n return optimizeSegmentNumberPatterns(parts1);\n}\n\n/**\n * Get regex for given numeric range.\n * @param from - Range start.\n * @param to - Range end.\n * @returns Range pattern.\n */ function rangeToRegex(from, to = Infinity) {\n if (from === Infinity) {\n return NumberPatternNode();\n }\n const numberPatterns = to === Infinity ? rayToNumberPatterns(from) : segmentToNumberPatterns(from, to);\n const regex = DisjunctionCapturingGroupNode(numberPatterns);\n return regex;\n}\n\n/**\n * Find matched versions.\n * @param minVersion - Semver version.\n * @param maxVersion - Semver version.\n * @param bases - Base semver versions.\n * @param options - Semver compare options.\n * @returns Matched versions.\n */ function findMatchedVersions(minVersion, maxVersion, bases, options) {\n const compareOptions = {\n ...options,\n allowHigherVersions: true\n };\n const minComparator = (ver)=>compareSemvers(ver, minVersion, compareOptions);\n const maxComparator = (ver)=>compareSemvers(maxVersion, ver, compareOptions);\n const comparator = minVersion && maxVersion ? (ver)=>minComparator(ver) && maxComparator(ver) : minVersion ? minComparator : maxVersion ? maxComparator : ()=>true;\n return bases.filter(comparator);\n}\n\n/**\n * Get useragent regexes for given browsers.\n * @param browsers - Browsers.\n * @param options - Semver compare options.\n * @param targetRegexes - Override default regexes.\n * @returns User agent regexes.\n */ function getRegexesForBrowsers(browsers, options, targetRegexes = regexes) {\n const result = [];\n let prevFamily = \"\";\n let prevRegexIsGlobal = false;\n targetRegexes.forEach((regex)=>{\n const requestVersions = browsers.get(regex.family);\n if (!requestVersions) {\n return;\n }\n let { version , minVersion , maxVersion } = regex;\n if (version) {\n minVersion = version;\n maxVersion = version;\n }\n let matchedVersions = findMatchedVersions(minVersion, maxVersion, requestVersions, options);\n if (matchedVersions.length) {\n // regex contains global patch\n if (prevFamily === regex.family && prevRegexIsGlobal) {\n version = undefined;\n minVersion = undefined;\n maxVersion = undefined;\n matchedVersions = requestVersions;\n result.pop();\n }\n result.push({\n ...regex,\n version,\n minVersion,\n maxVersion,\n requestVersions,\n matchedVersions\n });\n }\n prevRegexIsGlobal = !version && !minVersion && !maxVersion;\n prevFamily = regex.family;\n });\n return result;\n}\n\n/**\n * Compile regexes.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Objects with info about compiled regexes.\n */ function compileRegexes(regexes) {\n return regexes.map(({ regexAst , ...regex })=>{\n const optimizedRegexAst = optimizeRegex(regexAst);\n return {\n ...regex,\n regexAst: optimizedRegexAst,\n regex: toRegex(optimizedRegexAst)\n };\n });\n}\n/**\n * Compile regex.\n * @param regexes - Objects with info about compiled regexes.\n * @returns Compiled common regex.\n */ function compileRegex(regexes) {\n const partsRegexes = regexes.map(({ regexAst })=>CapturingGroupNode(regexAst.body));\n const regexAst = optimizeRegex(AstRegExpNode(DisjunctionCapturingGroupNode(partsRegexes)));\n return toRegex(regexAst);\n}\n\n/**\n * Get number patterns count from the regex.\n * @param regex - Target regex.\n * @returns Number patterns count.\n */ function getNumberPatternsCount(regex) {\n const regexAst = parseRegex(regex);\n let count = 0;\n RegexpTree.traverse(regexAst, {\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node)) {\n count++;\n }\n }\n });\n return count;\n}\nfunction replaceNumberPatterns(regex, numbers, numberPatternsCount) {\n let regexAst = parseRegex(regex);\n const numbersToReplace = typeof numberPatternsCount === \"number\" && numberPatternsCount < numbers.length ? numbers.slice(0, numberPatternsCount) : numbers.slice();\n RegexpTree.traverse(regexAst, visitors({\n every () {\n return Boolean(numbersToReplace.length);\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersToReplace.length) {\n if (regexAst === nodePath.node) {\n regexAst = numbersToReplace.shift();\n } else {\n nodePath.replace(numbersToReplace.shift());\n }\n return false;\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Get from regex part with number patterns.\n * @param regex - Target regex.\n * @param numberPatternsCount - Number patterns to extract.\n * @returns Regex part with number patterns.\n */ function getNumberPatternsPart(regex, numberPatternsCount) {\n const regexAst = parseRegex(regex);\n const maxNumbersCount = Math.min(getNumberPatternsCount(regexAst), numberPatternsCount || Infinity);\n const expressions = [];\n let numbersCounter = 0;\n let containsNumberPattern = false;\n RegexpTree.traverse(regexAst, visitors({\n every: {\n pre ({ node , parent }) {\n if (node === regexAst) {\n return true;\n }\n if (!isExpressionNode(node)) {\n return false;\n }\n if (parent === regexAst) {\n containsNumberPattern = false;\n }\n return numbersCounter < maxNumbersCount;\n },\n post ({ node , parent }) {\n if (node !== regexAst && parent === regexAst && isExpressionNode(node) && (containsNumberPattern || numbersCounter > 0 && numbersCounter < maxNumbersCount)) {\n expressions.push(node);\n }\n }\n },\n Group (nodePath) {\n if (isNumberPatternNode(nodePath.node) && numbersCounter < maxNumbersCount) {\n containsNumberPattern = true;\n numbersCounter++;\n return false;\n }\n return true;\n }\n }));\n if (expressions.length === 1 && !isNumberPatternNode(expressions[0])) {\n return getNumberPatternsPart(expressions[0], maxNumbersCount);\n }\n return expressions;\n}\n/**\n * Ranged semver to regex patterns.\n * @param rangedVersion - Ranged semver.\n * @param options - Semver compare options.\n * @returns Array of regex pattern.\n */ function rangedSemverToRegex(rangedVersion, options) {\n const { ignoreMinor , ignorePatch , allowHigherVersions } = options;\n const ignoreIndex = rangedVersion[0] === Infinity ? 0 : ignoreMinor ? 1 : ignorePatch ? 2 : 3;\n if (allowHigherVersions) {\n const numberPatterns = [];\n let prevWasZero = true;\n let d = 0;\n let start = 0;\n const createMapper = (i)=>(range, j)=>{\n if (j >= ignoreIndex) {\n return NumberPatternNode();\n }\n start = Array.isArray(range) ? range[0] : range;\n if (j < i) {\n return NumberCharsNode(start);\n }\n if (j > i) {\n return NumberPatternNode();\n }\n return rangeToRegex(start + d);\n };\n for(let i = ignoreIndex - 1; i >= 0; i--){\n if (prevWasZero && !rangedVersion[i]) {\n continue;\n }\n prevWasZero = false;\n numberPatterns.push(rangedVersion.map(createMapper(i)));\n d = 1;\n }\n return numberPatterns;\n }\n const numberPatterns1 = rangedVersion.map((range, i)=>{\n if (i >= ignoreIndex) {\n return NumberPatternNode();\n }\n if (Array.isArray(range)) {\n return rangeToRegex(range[0], range[1]);\n }\n return NumberCharsNode(range);\n });\n return [\n numberPatterns1\n ];\n}\n\nfunction applyVersionsToRegex(regex, versions, options) {\n const { allowHigherVersions } = options;\n const regexAst = parseRegex(regex);\n const finalVersions = allowHigherVersions && versions.length ? [\n versions[0]\n ] : versions;\n const maxRequiredPartsCount = finalVersions.reduce((maxRequiredPartsCount, version)=>Math.max(maxRequiredPartsCount, getRequiredSemverPartsCount(version, options)), 1);\n const numberPatternsPart = getNumberPatternsPart(regexAst, maxRequiredPartsCount);\n const versionsPart = DisjunctionCapturingGroupNode(...finalVersions.map((version)=>rangedSemverToRegex(version, options).map((parts)=>replaceNumberPatterns(AlternativeNode(clone(numberPatternsPart)), parts, maxRequiredPartsCount))));\n RegexpTree.traverse(regexAst, visitors({\n every (nodePath) {\n if (!numberPatternsPart.length) {\n return false;\n }\n if (nodePath.node === numberPatternsPart[0]) {\n if (numberPatternsPart.length === 1) {\n nodePath.replace(versionsPart);\n } else {\n nodePath.remove();\n }\n numberPatternsPart.shift();\n }\n return true;\n }\n }));\n return regexAst;\n}\n/**\n * Apply browser versions to info objects.\n * @param browserRegexes - Objects with requested browser version and regex.\n * @param options - Semver compare options.\n * @returns Objects with requested browser version and regex special for this version.\n */ function applyVersionsToRegexes(browserRegexes, options) {\n return browserRegexes.map(({ regex: sourceRegex , version , maxVersion , matchedVersions , ...other })=>{\n let regexAst = parseRegex(sourceRegex);\n if (!version) {\n regexAst = applyVersionsToRegex(regexAst, versionsListToRanges(matchedVersions), {\n ...options,\n allowHigherVersions: !maxVersion && options.allowHigherVersions\n });\n }\n return {\n regex: null,\n sourceRegex,\n regexAst,\n version,\n maxVersion,\n matchedVersions,\n ...other\n };\n });\n}\n\nconst defaultOptions = {\n ignoreMinor: false,\n ignorePatch: true,\n allowZeroSubversions: false,\n allowHigherVersions: false\n};\n/**\n * Get source regexes objects from browserslist query.\n * @param options - Browserslist and semver compare options.\n * @returns Source regexes objects.\n */ function getPreUserAgentRegexes(options = {}) {\n const finalOptions = {\n ...defaultOptions,\n ...options\n };\n const browsersList = getBrowsersList(finalOptions);\n const mergedBrowsers = mergeBrowserVersions(browsersList);\n const sourceRegexes = getRegexesForBrowsers(mergedBrowsers, finalOptions);\n const versionedRegexes = applyVersionsToRegexes(sourceRegexes, finalOptions);\n return versionedRegexes;\n}\n/**\n * Compile browserslist query to regexes.\n * @param options - Browserslist and semver compare options.\n * @returns Objects with info about compiled regexes.\n */ function getUserAgentRegexes(options = {}) {\n return compileRegexes(getPreUserAgentRegexes(options));\n}\n/**\n * Compile browserslist query to regex.\n * @param options - Browserslist and semver compare options.\n * @returns Compiled regex.\n */ function getUserAgentRegex(options = {}) {\n return compileRegex(getPreUserAgentRegexes(options));\n}\n\nexport { AlternativeNode, AstRegExpNode, CapturingGroupNode, CharacterClassNode, ClassRangeNode, DigitPatternNode, DisjunctionCapturingGroupNode, DisjunctionNode, MetaCharNode, NumberCharsNode, NumberPatternNode, RangeQuantifierNode, RepetitionNode, SemverPart, SimpleCharNode, SimpleQuantifierNode, applyVersionsToRegex, applyVersionsToRegexes, clone, compareArrays, compareSemvers, compileRegex, compileRegexes, concat, defaultOptions, findMatchedVersions, getBrowsersList, getNumberPatternsCount, getNumberPatternsPart, getPreUserAgentRegexes, getRegexesForBrowsers, getRequiredSemverPartsCount, getUserAgentRegex, getUserAgentRegexes, isCharNode, isDigitRangeNode, isExpressionNode, isNumberPatternNode, mergeBrowserVersions, mergeDigits, numberToDigits, numbersToRanges, optimizeRegex, optimizeSegmentNumberPatterns, parseBrowsersList, parseRegex, rangeSemver, rangeToRegex, rangedSemverToRegex, rayRangeDigitPattern, rayToNumberPatterns, replaceNumberPatterns, segmentRangeNumberPattern, segmentToNumberPatterns, semverify, splitCommonDiff, splitToDecadeRanges, toRegex, toString, versionsListToRanges, visitors };\n//# sourceMappingURL=index.js.map\n","/**\n * @typedef {import('./index.d').UserAgentRegex} UserAgentRegex\n */\n\n/** @type {UserAgentRegex[]} */\nexport const regexes = [\n {\n regex: /IE (\\d+)\\.(\\d+)/,\n family: 'ie',\n maxVersion: [\n 7,\n Infinity,\n Infinity\n ]\n },\n /**\n * IE can be in Compatability Mode (IE 7.0)\n * so we need to check Trident version\n */\n {\n regex: /Trident\\/4\\.0/,\n family: 'ie',\n version: [\n 8,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/5\\.0/,\n family: 'ie',\n version: [\n 9,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/6\\.0/,\n family: 'ie',\n version: [\n 10,\n 0,\n 0\n ]\n },\n {\n regex: /Trident\\/[78]\\.0/,\n family: 'ie',\n version: [\n 11,\n 0,\n 0\n ]\n },\n {\n regex: /Edge?\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'edge'\n },\n {\n regex: /Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'firefox'\n },\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'chrome'\n },\n /**\n * Ignore Edge with EdgeHTML engine.\n */\n {\n regex: /Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)([\\d.]+$|.*Safari\\/(?![\\d.]+ Edge\\/[\\d.]+$))/,\n family: 'chrome',\n maxVersion: [\n 70,\n Infinity,\n Infinity\n ]\n },\n /**\n * Safari on iPad have desktop-like useragent\n * Some versions contains letter subversions\n * GNOME Web (X11) is based on WebKit and should be detected as Safari\n */\n {\n regex: /(Maci|X11).+ Version\\/(\\d+)\\.(\\d+)([.,](\\d+)|)( \\(\\w+\\)|)( Mobile\\/\\w+|) Safari\\//,\n family: 'safari'\n },\n /**\n * Presto Opera\n */\n {\n regex: /Opera\\/9\\.80.+Version\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'opera',\n maxVersion: [\n 12,\n 15,\n 0\n ]\n },\n /**\n * Chromium based Opera\n */\n {\n regex: /Chrome.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'opera',\n minVersion: [\n 15,\n 0,\n 0\n ]\n },\n {\n regex: /(CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /[^e] (CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS|CPU iPad OS)[ +]+(\\d+)[_.](\\d+)([_.](\\d+)|)/,\n family: 'ios_saf',\n version: [\n 7,\n 0,\n 3\n ]\n },\n {\n regex: /Opera Mini/,\n family: 'op_mini'\n },\n {\n regex: /Android Donut/,\n family: 'android',\n version: [\n 1,\n 2,\n 0\n ]\n },\n {\n regex: /Android Eclair/,\n family: 'android',\n version: [\n 2,\n 1,\n 0\n ]\n },\n {\n regex: /Android Froyo/,\n family: 'android',\n version: [\n 2,\n 2,\n 0\n ]\n },\n {\n regex: /Android Gingerbread/,\n family: 'android',\n version: [\n 2,\n 3,\n 0\n ]\n },\n {\n regex: /Android Honeycomb/,\n family: 'android',\n version: [\n 3,\n 0,\n 0\n ]\n },\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'android'\n },\n /**\n * Ignore IE Mobile 11\n */\n {\n regex: /Android:?[ /-](\\d+)(\\.(\\d+)|)(\\.(\\d+)|);(?! ARM; Trident)/,\n family: 'android',\n version: [\n 4,\n 0,\n 0\n ]\n },\n {\n regex: /PlayBook.+RIM Tablet OS (\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n {\n regex: /(Black[bB]erry|BB10).+Version\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'bb'\n },\n /**\n * Presto Opera Mobile\n */\n {\n regex: /Opera\\/.+Opera Mobi.+Version\\/(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n maxVersion: [\n 12,\n 16,\n 0\n ]\n },\n /**\n * Chromium based Opera Mobile\n */\n {\n regex: /Mobile Safari.+OPR\\/(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'op_mob',\n minVersion: [\n 14,\n 0,\n 0\n ]\n },\n {\n regex: /Android.+Firefox\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_ff'\n },\n {\n regex: /Android.+Chrom(ium|e)\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'and_chr'\n },\n {\n regex: /IEMobile[ /](\\d+)\\.(\\d+)/,\n family: 'ie_mob'\n },\n {\n regex: /Android.+(UC? ?Browser|UCWEB|U3)[ /]?(\\d+)\\.(\\d+)\\.(\\d+)/,\n family: 'and_uc'\n },\n {\n regex: /SamsungBrowser\\/(\\d+)\\.(\\d+)/,\n family: 'samsung'\n },\n {\n regex: /Android.+MQQBrowser\\/(\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'and_qq'\n },\n {\n regex: /baidubrowser[/\\s](\\d+)(\\.(\\d+)|)(\\.(\\d+)|)/,\n family: 'baidu'\n },\n {\n regex: /K[Aa][Ii]OS\\/(\\d+)\\.(\\d+)(\\.(\\d+)|)/,\n family: 'kaios'\n }\n]\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js b/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js deleted file mode 100644 index 69122969fbf7a..0000000000000 --- a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js +++ /dev/null @@ -1,1032 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b"],{ - -/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e": -/*!***********************************************************************************************************************************************************************************************************************************!*\ - !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e ***! - \***********************************************************************************************************************************************************************************************************************************/ -/***/ ((module) => { - -module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M15.4%2016.6L10.8%2012l4.6-4.6L14%206l-6%206%206%206%201.4-1.4z%27/%3e%3c/svg%3e"; - -/***/ }), - -/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e": -/*!******************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e ***! - \******************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module) => { - -module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M18.4%207.4L17%206l-6%206%206%206%201.4-1.4-4.6-4.6%204.6-4.6m-6%200L11%206l-6%206%206%206%201.4-1.4L7.8%2012l4.6-4.6z%27/%3e%3c/svg%3e"; - -/***/ }), - -/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e": -/*!******************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e ***! - \******************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module) => { - -module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M5.6%207.4L7%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6m6%200L13%206l6%206-6%206-1.4-1.4%204.6-4.6-4.6-4.6z%27/%3e%3c/svg%3e"; - -/***/ }), - -/***/ "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e": -/*!***************************************************************************************************************************************************************************************************************************!*\ - !*** data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e ***! - \***************************************************************************************************************************************************************************************************************************/ -/***/ ((module) => { - -module.exports = "data:image/svg+xml,%3csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20width=%2724%27%20height=%2724%27%20fill=%27%23222%27%3e%3cpath%20d=%27M8.6%2016.6l4.6-4.6-4.6-4.6L10%206l6%206-6%206-1.4-1.4z%27/%3e%3c/svg%3e"; - -/***/ }), - -/***/ "./node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs": -/*!*****************************************************************************!*\ - !*** ./node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs ***! - \*****************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pi) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./_plugin-vue2_normalizer-VrK6B12S.mjs */ "./node_modules/@nextcloud/dialogs/dist/chunks/_plugin-vue2_normalizer-VrK6B12S.mjs"); -/* harmony import */ var _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/files */ "./node_modules/@nextcloud/files/dist/index.mjs"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue */ "./node_modules/@nextcloud/vue/dist/index.mjs"); -/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _vueuse_core__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @vueuse/core */ "./node_modules/@vueuse/shared/index.mjs"); -/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_auth__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/auth */ "./node_modules/@nextcloud/auth/dist/index.es.mjs"); -/* harmony import */ var vue_frag__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue-frag */ "./node_modules/vue-frag/dist/frag.esm.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! path */ "./node_modules/path/path.js"); -/* harmony import */ var cancelable_promise__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! cancelable-promise */ "./node_modules/cancelable-promise/umd/CancelablePromise.js"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - - - - - - - - - - - - - - -const $e = { - name: "FileIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Ne = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon file-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, xe = [], Be = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - $e, - Ne, - xe, - !1, - null, - null, - null, - null -); -const G = Be.exports, D = () => { - const l = () => document.getElementById("isPublic")?.value === "1", e = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!0); - return (0,vue__WEBPACK_IMPORTED_MODULE_12__.onBeforeMount)(() => { - e.value = l(); - }), { - isPublic: e - }; -}; -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -const K = () => { - const l = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__.loadState)("files", "config", null), e = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(l?.show_hidden ?? !0), i = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(l?.sort_favorites_first ?? !0), t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(l?.crop_image_previews ?? !0), { isPublic: n } = D(); - return (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(async () => { - if (n.value) - console.debug("Skip loading files settings - currently on public share"); - else - try { - const { data: s } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_6__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateUrl)("/apps/files/api/v1/configs")); - e.value = s?.data?.show_hidden ?? !1, i.value = s?.data?.sort_favorites_first ?? !0, t.value = s?.data?.crop_image_previews ?? !0; - } catch (s) { - console.error("Could not load files settings", s), (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.l)((0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Could not load files settings")); - } - }), { - showHiddenFiles: e, - sortFavoritesFirst: i, - cropImagePreviews: t - }; -}, Pe = (l) => { - const e = (a) => a === "asc" ? "ascending" : a === "desc" ? "descending" : "none", i = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_4__.loadState)("files", "viewConfigs", null), t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({ - sortBy: i?.files?.sorting_mode ?? "basename", - order: e(i?.files?.sorting_direction ?? "asc") - }), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({ - sortBy: i?.recent?.sorting_mode ?? "basename", - order: e(i?.recent?.sorting_direction ?? "asc") - }), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)({ - sortBy: i?.favorites?.sorting_mode ?? "basename", - order: e(i?.favorites?.sorting_direction ?? "asc") - }), { isPublic: r } = D(); - (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(async () => { - if (r.value) - console.debug("Skip loading files views - currently on public share"); - else - try { - const { data: a } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_6__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateUrl)("/apps/files/api/v1/views")); - t.value = { - sortBy: a?.data?.files?.sorting_mode ?? "basename", - order: e(a?.data?.files?.sorting_direction) - }, s.value = { - sortBy: a?.data?.favorites?.sorting_mode ?? "basename", - order: e(a?.data?.favorites?.sorting_direction) - }, n.value = { - sortBy: a?.data?.recent?.sorting_mode ?? "basename", - order: e(a?.data?.recent?.sorting_direction) - }; - } catch (a) { - console.error("Could not load files views", a), (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.l)((0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Could not load files views")); - } - }); - const b = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_13__.toValue)(l || "files") === "files" ? t.value : (0,_vueuse_core__WEBPACK_IMPORTED_MODULE_13__.toValue)(l) === "recent" ? n.value : s.value), g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => b.value.sortBy), d = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => b.value.order); - return { - filesViewConfig: t, - favoritesViewConfig: s, - recentViewConfig: n, - currentConfig: b, - sortBy: g, - order: d - }; -}, ze = { - name: "MenuUpIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Le = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon menu-up-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M7,15L12,10L17,15H7Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, Ie = [], Ve = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - ze, - Le, - Ie, - !1, - null, - null, - null, - null -); -const Re = Ve.exports, De = { - name: "MenuDownIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var He = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon menu-down-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M7,10L12,15L17,10H7Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, Me = [], Ae = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - De, - He, - Me, - !1, - null, - null, - null, - null -); -const Te = Ae.exports, q = { - "file-picker__file-icon": "_file-picker__file-icon_1vgv4_5" -}, Ue = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "LoadingTableRow", - props: { - showCheckbox: { type: Boolean } - }, - setup(l) { - return { __sfc: !0, fileListIconStyles: q }; - } -}); -var Ee = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i("tr", { staticClass: "file-picker__row loading-row", attrs: { "aria-hidden": "true" } }, [e.showCheckbox ? i("td", { staticClass: "row-checkbox" }, [i("span")]) : e._e(), i("td", { staticClass: "row-name" }, [i("div", { staticClass: "row-wrapper" }, [i("span", { class: t.fileListIconStyles["file-picker__file-icon"] }), i("span")])]), e._m(0), e._m(1)]); -}, Oe = [function() { - var l = this, e = l._self._c; - return l._self._setupProxy, e("td", { staticClass: "row-size" }, [e("span")]); -}, function() { - var l = this, e = l._self._c; - return l._self._setupProxy, e("td", { staticClass: "row-modified" }, [e("span")]); -}], Ze = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Ue, - Ee, - Oe, - !1, - null, - "6aded0d9", - null, - null -); -const je = Ze.exports; -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -function We(l, e = {}) { - e = { size: 32, cropPreview: !1, mimeFallback: !0, ...e }; - try { - const i = l.attributes?.previewUrl || (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateUrl)("/core/preview?fileId={fileid}", { - fileid: l.fileid - }); - let t; - try { - t = new URL(i); - } catch { - t = new URL(i, window.location.origin); - } - return t.searchParams.set("x", `${e.size}`), t.searchParams.set("y", `${e.size}`), t.searchParams.set("mimeFallback", `${e.mimeFallback}`), t.searchParams.set("a", e.cropPreview === !0 ? "0" : "1"), t.searchParams.set("c", `${l.attributes.etag}`), t; - } catch { - return null; - } -} -const Ge = { - name: "FolderIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Ke = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon folder-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, qe = [], Je = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Ge, - Ke, - qe, - !1, - null, - null, - null, - null -); -const J = Je.exports, Qe = { - name: "FilePreview" -}, Xe = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - ...Qe, - props: { - node: null, - cropImagePreviews: { type: Boolean } - }, - setup(l) { - const e = l, i = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(q), t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => We(e.node, { cropPreview: e.cropImagePreviews })), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => e.node.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.File), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!1); - return (0,vue__WEBPACK_IMPORTED_MODULE_12__.watch)(t, () => { - if (s.value = !1, t.value) { - const r = document.createElement("img"); - r.src = t.value.href, r.onerror = () => r.remove(), r.onload = () => { - s.value = !0, r.remove(); - }, document.body.appendChild(r); - } - }, { immediate: !0 }), { __sfc: !0, fileListIconStyles: i, props: e, previewURL: t, isFile: n, canLoadPreview: s, IconFile: G, IconFolder: J }; - } -}); -var Ye = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i("div", { class: t.fileListIconStyles["file-picker__file-icon"], style: t.canLoadPreview ? { backgroundImage: `url(${t.previewURL})` } : void 0 }, [t.canLoadPreview ? e._e() : [t.isFile ? i(t.IconFile, { attrs: { size: 20 } }) : i(t.IconFolder, { attrs: { size: 20 } })]], 2); -}, et = [], tt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Xe, - Ye, - et, - !1, - null, - null, - null, - null -); -const it = tt.exports, nt = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "FileListRow", - props: { - allowPickDirectory: { type: Boolean }, - selected: { type: Boolean }, - showCheckbox: { type: Boolean }, - canPick: { type: Boolean }, - node: null, - cropImagePreviews: { type: Boolean } - }, - emits: ["update:selected", "enter-directory"], - setup(l, { emit: e }) { - const i = l, t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.node.attributes?.displayName || i.node.basename.slice(0, i.node.extension ? -i.node.extension.length : void 0)), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.node.extension), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.node.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder), r = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.canPick && (i.allowPickDirectory || !s.value)); - function b() { - e("update:selected", !i.selected); - } - function g() { - s.value ? e("enter-directory", i.node) : b(); - } - function d(a) { - a.key === "Enter" && g(); - } - return { __sfc: !0, props: i, emit: e, displayName: t, fileExtension: n, isDirectory: s, isPickable: r, toggleSelected: b, handleClick: g, handleKeyDown: d, formatFileSize: _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.formatFileSize, NcCheckboxRadioSwitch: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcCheckboxRadioSwitch, NcDateTime: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcDateTime, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t, FilePreview: it }; - } -}); -var st = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i("tr", e._g({ class: ["file-picker__row", { - "file-picker__row--selected": e.selected && !e.showCheckbox - }], attrs: { tabindex: e.showCheckbox && !t.isDirectory ? void 0 : 0, "aria-selected": t.isPickable ? e.selected : void 0, "data-filename": e.node.basename, "data-testid": "file-list-row" } }, { - click: t.handleClick, - /* same as tabindex -> if we hide the checkbox or this is a directory we need keyboard access to enter the directory or select the node */ - ...!e.showCheckbox || t.isDirectory ? { keydown: t.handleKeyDown } : {} - }), [e.showCheckbox ? i("td", { staticClass: "row-checkbox", on: { click: function(n) { - return n.stopPropagation(), (() => { - }).apply(null, arguments); - } } }, [i(t.NcCheckboxRadioSwitch, { attrs: { "aria-label": t.t("Select the row for {nodename}", { nodename: t.displayName }), checked: e.selected, disabled: !t.isPickable, "data-testid": "row-checkbox" }, on: { "update:checked": t.toggleSelected } })], 1) : e._e(), i("td", { staticClass: "row-name" }, [i("div", { staticClass: "file-picker__name-container", attrs: { "data-testid": "row-name" } }, [i(t.FilePreview, { attrs: { node: e.node, "crop-image-previews": e.cropImagePreviews } }), i("div", { staticClass: "file-picker__file-name", attrs: { title: t.displayName }, domProps: { textContent: e._s(t.displayName) } }), i("div", { staticClass: "file-picker__file-extension", domProps: { textContent: e._s(t.fileExtension) } })], 1)]), i("td", { staticClass: "row-size" }, [e._v(" " + e._s(t.formatFileSize(e.node.size || 0)) + " ")]), i("td", { staticClass: "row-modified" }, [i(t.NcDateTime, { attrs: { timestamp: e.node.mtime, "ignore-seconds": !0 } })], 1)]); -}, lt = [], rt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - nt, - st, - lt, - !1, - null, - "48df4f27", - null, - null -); -const at = rt.exports, ot = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "FileList", - props: { - currentView: null, - multiselect: { type: Boolean }, - allowPickDirectory: { type: Boolean }, - loading: { type: Boolean }, - files: null, - selectedFiles: null, - path: null - }, - emits: ["update:path", "update:selectedFiles"], - setup(l, { emit: e }) { - const i = l, t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(), { currentConfig: n } = Pe(i.currentView), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => t.value ?? n.value), r = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => s.value.sortBy === "basename" ? s.value.order === "none" ? void 0 : s.value.order : void 0), b = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => s.value.sortBy === "size" ? s.value.order === "none" ? void 0 : s.value.order : void 0), g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => s.value.sortBy === "mtime" ? s.value.order === "none" ? void 0 : s.value.order : void 0), d = (o) => { - s.value.sortBy === o ? s.value.order === "ascending" ? t.value = { sortBy: s.value.sortBy, order: "descending" } : t.value = { sortBy: s.value.sortBy, order: "ascending" } : t.value = { sortBy: o, order: "ascending" }; - }, { sortFavoritesFirst: a, cropImagePreviews: p } = K(), B = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)( - () => { - const o = { - ascending: (m, f, z) => z(m, f), - descending: (m, f, z) => z(f, m), - // eslint-disable-next-line @typescript-eslint/no-unused-vars - none: (m, f, z) => 0 - }, C = { - basename: (m, f) => (m.attributes?.displayName || m.basename).localeCompare(f.attributes?.displayName || f.basename, (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__.getCanonicalLocale)()), - size: (m, f) => (m.size || 0) - (f.size || 0), - // reverted because "young" is smaller than "old" - mtime: (m, f) => (f.mtime?.getTime?.() || 0) - (m.mtime?.getTime?.() || 0) - }; - return [...i.files].sort( - (m, f) => ( - // Folders always come above the files - (f.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder ? 1 : 0) - (m.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder ? 1 : 0) || (a ? (f.attributes.favorite ? 1 : 0) - (m.attributes.favorite ? 1 : 0) : 0) || o[s.value.order](m, f, C[s.value.sortBy]) - ) - ); - } - ), F = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.files.filter((o) => i.allowPickDirectory || o.type !== _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.FileType.Folder)), N = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => !i.loading && i.selectedFiles.length > 0 && i.selectedFiles.length >= F.value.length); - function h() { - i.selectedFiles.length < F.value.length ? e("update:selectedFiles", F.value) : e("update:selectedFiles", []); - } - function w(o) { - i.selectedFiles.includes(o) ? e("update:selectedFiles", i.selectedFiles.filter((C) => C.path !== o.path)) : i.multiselect ? e("update:selectedFiles", [...i.selectedFiles, o]) : e("update:selectedFiles", [o]); - } - function S(o) { - e("update:path", o.path); - } - const x = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(4), $ = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(); - { - const o = () => (0,vue__WEBPACK_IMPORTED_MODULE_12__.nextTick)(() => { - const C = $.value?.parentElement?.children || []; - let m = $.value?.parentElement?.clientHeight || 450; - for (let f = 0; f < C.length; f++) - $.value?.isSameNode(C[f]) || (m -= C[f].clientHeight); - x.value = Math.floor((m - 50) / 50); - }); - (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => { - window.addEventListener("resize", o), o(); - }), (0,vue__WEBPACK_IMPORTED_MODULE_12__.onUnmounted)(() => { - window.removeEventListener("resize", o); - }); - } - return { __sfc: !0, props: i, emit: e, customSortingConfig: t, filesAppSorting: n, sortingConfig: s, sortByName: r, sortBySize: b, sortByModified: g, toggleSorting: d, sortFavoritesFirst: a, cropImagePreviews: p, sortedFiles: B, selectableFiles: F, allSelected: N, onSelectAll: h, onNodeSelected: w, onChangeDirectory: S, skeletonNumber: x, fileContainer: $, NcButton: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcButton, NcCheckboxRadioSwitch: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcCheckboxRadioSwitch, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t, IconSortAscending: Re, IconSortDescending: Te, LoadingTableRow: je, FileListRow: at }; - } -}); -var ct = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i("div", { ref: "fileContainer", staticClass: "file-picker__files" }, [i("table", [i("thead", [i("tr", [e.multiselect ? i("th", { staticClass: "row-checkbox" }, [i("span", { staticClass: "hidden-visually" }, [e._v(" " + e._s(t.t("Select entry")) + " ")]), e.multiselect ? i(t.NcCheckboxRadioSwitch, { attrs: { "aria-label": t.t("Select all entries"), checked: t.allSelected, "data-testid": "select-all-checkbox" }, on: { "update:checked": t.onSelectAll } }) : e._e()], 1) : e._e(), i("th", { staticClass: "row-name", attrs: { "aria-sort": t.sortByName } }, [i("div", { staticClass: "header-wrapper" }, [i("span", { staticClass: "file-picker__header-preview" }), i(t.NcButton, { attrs: { wide: !0, type: "tertiary", "data-test": "file-picker_sort-name" }, on: { click: function(n) { - return t.toggleSorting("basename"); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t.sortByName === "ascending" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByName === "descending" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i("span", { staticStyle: { width: "44px" } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("Name")) + " ")])], 1)]), i("th", { staticClass: "row-size", attrs: { "aria-sort": t.sortBySize } }, [i(t.NcButton, { attrs: { wide: !0, type: "tertiary" }, on: { click: function(n) { - return t.toggleSorting("size"); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t.sortBySize === "ascending" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortBySize === "descending" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i("span", { staticStyle: { width: "44px" } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("Size")) + " ")])], 1), i("th", { staticClass: "row-modified", attrs: { "aria-sort": t.sortByModified } }, [i(t.NcButton, { attrs: { wide: !0, type: "tertiary" }, on: { click: function(n) { - return t.toggleSorting("mtime"); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t.sortByModified === "ascending" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByModified === "descending" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i("span", { staticStyle: { width: "44px" } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(t.t("Modified")) + " ")])], 1)])]), i("tbody", [e.loading ? e._l(t.skeletonNumber, function(n) { - return i(t.LoadingTableRow, { key: n, attrs: { "show-checkbox": e.multiselect } }); - }) : e._l(t.sortedFiles, function(n) { - return i(t.FileListRow, { key: n.fileid || n.path, attrs: { "allow-pick-directory": e.allowPickDirectory, "show-checkbox": e.multiselect, "can-pick": e.multiselect || e.selectedFiles.length === 0 || e.selectedFiles.includes(n), selected: e.selectedFiles.includes(n), node: n, "crop-image-previews": t.cropImagePreviews }, on: { "update:selected": function(s) { - return t.onNodeSelected(n); - }, "enter-directory": t.onChangeDirectory } }); - })], 2)])]); -}, ut = [], dt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - ot, - ct, - ut, - !1, - null, - "d3c94818", - null, - null -); -const ft = dt.exports, pt = { - name: "HomeIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var _t = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon home-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, mt = [], vt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - pt, - _t, - mt, - !1, - null, - null, - null, - null -); -const gt = vt.exports, yt = { - name: "PlusIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var ht = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon plus-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, wt = [], bt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - yt, - ht, - wt, - !1, - null, - null, - null, - null -); -const kt = bt.exports, Ct = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "FilePickerBreadcrumbs", - props: { - path: null, - showMenu: { type: Boolean } - }, - emits: ["update:path", "create-node"], - setup(l, { emit: e }) { - const i = l, t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!1), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(""), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(); - function r() { - const d = n.value.trim(), a = s.value?.$el?.querySelector("input"); - let p = ""; - return d.length === 0 ? p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Folder name cannot be empty.") : d.includes("/") ? p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)('"/" is not allowed inside a folder name.') : ["..", "."].includes(d) ? p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)('"{name}" is an invalid folder name.', { name: d }) : window.OC.config?.blacklist_files_regex && d.match(window.OC.config?.blacklist_files_regex) && (p = (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)('"{name}" is not an allowed folder name', { name: d })), a && a.setCustomValidity(p), p === ""; - } - const b = function() { - const d = n.value.trim(); - r() && (t.value = !1, e("create-node", d), n.value = ""); - }, g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)( - () => i.path.split("/").filter((d) => d !== "").map((d, a, p) => ({ - name: d, - path: "/" + p.slice(0, a + 1).join("/") - })) - ); - return { __sfc: !0, props: i, emit: e, actionsOpen: t, newNodeName: n, nameInput: s, validateInput: r, onSubmit: b, pathElements: g, IconFolder: J, IconHome: gt, IconPlus: kt, NcActions: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcActions, NcActionInput: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcActionInput, NcBreadcrumbs: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcBreadcrumbs, NcBreadcrumb: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcBreadcrumb, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t }; - } -}); -var Ft = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i(t.NcBreadcrumbs, { staticClass: "file-picker__breadcrumbs", scopedSlots: e._u([{ key: "default", fn: function() { - return [i(t.NcBreadcrumb, { attrs: { name: t.t("All files"), title: t.t("Home") }, on: { click: function(n) { - return t.emit("update:path", "/"); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconHome, { attrs: { size: 20 } })]; - }, proxy: !0 }]) }), e._l(t.pathElements, function(n) { - return i(t.NcBreadcrumb, { key: n.path, attrs: { name: n.name, title: n.path }, on: { click: function(s) { - return t.emit("update:path", n.path); - } } }); - })]; - }, proxy: !0 }, e.showMenu ? { key: "actions", fn: function() { - return [i(t.NcActions, { attrs: { "aria-label": t.t("Create directory"), "force-menu": !0, "force-name": !0, "menu-name": t.t("New"), open: t.actionsOpen, type: "secondary" }, on: { "update:open": function(n) { - t.actionsOpen = n; - }, close: function(n) { - t.newNodeName = ""; - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconPlus, { attrs: { size: 20 } })]; - }, proxy: !0 }], null, !1, 2971667417) }, [i(t.NcActionInput, { ref: "nameInput", attrs: { value: t.newNodeName, label: t.t("New folder"), placeholder: t.t("New folder name") }, on: { "update:value": function(n) { - t.newNodeName = n; - }, submit: t.onSubmit, input: t.validateInput }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconFolder, { attrs: { size: 20 } })]; - }, proxy: !0 }], null, !1, 1614167509) })], 1)]; - }, proxy: !0 } : null], null, !0) }); -}, St = [], $t = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Ct, - Ft, - St, - !1, - null, - "22cbb5df", - null, - null -); -const Nt = $t.exports, xt = { - name: "CloseIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Bt = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon close-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, Pt = [], zt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - xt, - Bt, - Pt, - !1, - null, - null, - null, - null -); -const Lt = zt.exports, It = { - name: "MagnifyIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var Vt = function() { - var e = this, i = e._self._c; - return i("span", e._b({ staticClass: "material-design-icon magnify-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(t) { - return e.$emit("click", t); - } } }, "span", e.$attrs, !1), [i("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [i("path", { attrs: { d: "M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z" } }, [e.title ? i("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, Rt = [], Dt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - It, - Vt, - Rt, - !1, - null, - null, - null, - null -); -const Ht = Dt.exports; -/** - * @copyright Copyright (c) 2024 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ -const Mt = (l) => { - const e = [ - { - id: "files", - label: (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("All files"), - icon: _mdi_js__WEBPACK_IMPORTED_MODULE_14__.mdiFolder - }, - { - id: "recent", - label: (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Recent"), - icon: _mdi_js__WEBPACK_IMPORTED_MODULE_14__.mdiClock - }, - { - id: "favorites", - label: (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Favorites"), - icon: _mdi_js__WEBPACK_IMPORTED_MODULE_14__.mdiStar - } - ], i = l.value ? e.filter(({ id: t }) => t === "files") : e; - return { - allViews: e, - availableViews: i - }; -}, At = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - __name: "FilePickerNavigation", - props: { - currentView: null, - filterString: null, - isCollapsed: { type: Boolean }, - disabledNavigation: { type: Boolean } - }, - emits: ["update:currentView", "update:filterString"], - setup(l, { emit: e }) { - const i = l, { availableViews: t } = Mt((0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)((0,_nextcloud_auth__WEBPACK_IMPORTED_MODULE_7__.getCurrentUser)() === null)), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => t.filter((r) => r.id === i.currentView)[0] ?? t[0]); - return { __sfc: !0, props: i, emit: e, availableViews: t, currentViewObject: n, updateFilterValue: (r) => e("update:filterString", r), IconClose: Lt, IconMagnify: Ht, NcButton: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcButton, NcIconSvgWrapper: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcIconSvgWrapper, NcSelect: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcSelect, NcTextField: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcTextField, Fragment: vue_frag__WEBPACK_IMPORTED_MODULE_8__.Fragment, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t }; - } -}); -var Tt = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i(t.Fragment, [i(t.NcTextField, { staticClass: "file-picker__filter-input", attrs: { value: e.filterString, label: t.t("Filter file list"), "show-trailing-button": !!e.filterString }, on: { "update:value": t.updateFilterValue, "trailing-button-click": function(n) { - return t.updateFilterValue(""); - } }, scopedSlots: e._u([{ key: "trailing-button-icon", fn: function() { - return [i(t.IconClose, { attrs: { size: 16 } })]; - }, proxy: !0 }]) }, [i(t.IconMagnify, { attrs: { size: 16 } })], 1), t.availableViews.length > 1 && !e.disabledNavigation ? [e.isCollapsed ? i(t.NcSelect, { attrs: { "aria-label": t.t("Current view selector"), clearable: !1, searchable: !1, options: t.availableViews, value: t.currentViewObject }, on: { input: (n) => t.emit("update:currentView", n.id) } }) : i("ul", { staticClass: "file-picker__side" }, e._l(t.availableViews, function(n) { - return i("li", { key: n.id }, [i(t.NcButton, { attrs: { type: e.currentView === n.id ? "primary" : "tertiary", wide: !0 }, on: { click: function(s) { - return e.$emit("update:currentView", n.id); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.NcIconSvgWrapper, { attrs: { path: n.icon, size: 20 } })]; - }, proxy: !0 }], null, !0) }, [e._v(" " + e._s(n.label) + " ")])], 1); - }), 0)] : e._e()], 2); -}, Ut = [], Et = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - At, - Tt, - Ut, - !1, - null, - "a06474d4", - null, - null -); -const Ot = Et.exports; -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -const Zt = function(l, e, i) { - const t = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.value ? "/" : _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davRootPath), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => i.value ? (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_5__.generateRemoteUrl)("webdav").replace("/remote.php", "/public.php") : _nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davRemoteURL), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => { - if (i.value) { - const h = document.getElementById("sharingToken").value, w = btoa(`${h}:null`); - return (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetClient)(n.value, { - Authorization: `Basic ${w}` - }); - } - return (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetClient)(); - }), r = (h) => (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davResultToNode)(h, t.value, n.value), b = () => { - const h = new AbortController(), w = Math.round(Date.now() / 1e3) - 60 * 60 * 24 * 14; - return new cancelable_promise__WEBPACK_IMPORTED_MODULE_11__.CancelablePromise(async (S, x, $) => { - $(() => h.abort()); - try { - const { data: o } = await s.value.search("/", { - signal: h.signal, - details: !0, - data: (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetRecentSearch)(w) - }), C = o.results.map(r); - S(C); - } catch (o) { - x(o); - } - }); - }, g = () => { - const h = new AbortController(); - return new cancelable_promise__WEBPACK_IMPORTED_MODULE_11__.CancelablePromise(async (w, S, x) => { - x(() => h.abort()); - try { - let o = (await s.value.getDirectoryContents(`${t.value}${e.value}`, { - signal: h.signal, - details: !0, - data: (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetDefaultPropfind)() - })).data.map(r); - i.value && (o = o.filter((C) => C.path !== e.value)), w(o); - } catch ($) { - S($); - } - }); - }, d = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)([]), a = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!0), p = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(null); - async function B(h) { - const w = (0,path__WEBPACK_IMPORTED_MODULE_10__.join)(e.value, h); - await s.value.createDirectory((0,path__WEBPACK_IMPORTED_MODULE_10__.join)(t.value, w)); - const S = await F(w); - return d.value.push(S), S; - } - async function F(h, w = void 0) { - w = w ?? t.value; - const { data: S } = await s.value.stat(`${w}${h}`, { - details: !0, - data: (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.davGetDefaultPropfind)() - }); - return r(S); - } - async function N() { - p.value && p.value.cancel(), a.value = !0, l.value === "favorites" ? p.value = (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_1__.getFavoriteNodes)(s.value, e.value, t.value) : l.value === "recent" ? p.value = b() : p.value = g(), d.value = await p.value, p.value = null, a.value = !1; - } - return (0,vue__WEBPACK_IMPORTED_MODULE_12__.watch)([l, e], () => N()), (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => N()), { - isLoading: a, - files: d, - loadFiles: N, - getFile: F, - createDirectory: B - }; -}; -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -const jt = function(l) { - const e = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => l.value.map((t) => t.split("/"))); - return { - isSupportedMimeType: (t) => { - const n = t.split("/"); - return e.value.some( - ([s, r]) => ( - // check mime type matches or is wildcard - (n[0] === s || s === "*") && (n[1] === r || r === "*") - ) - ); - } - }; -}, Wt = { - name: "FilePicker" -}, Gt = /* @__PURE__ */ (0,vue__WEBPACK_IMPORTED_MODULE_12__.defineComponent)({ - ...Wt, - props: { - buttons: null, - name: null, - allowPickDirectory: { type: Boolean, default: !1 }, - disabledNavigation: { type: Boolean, default: !1 }, - container: { default: "body" }, - filterFn: { default: void 0 }, - mimetypeFilter: { default: () => [] }, - multiselect: { type: Boolean, default: !0 }, - path: { default: void 0 } - }, - emits: ["close"], - setup(l, { emit: e }) { - const i = l, { isPublic: t } = D(), n = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(!0), s = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => (typeof i.buttons == "function" ? i.buttons(a.value, F.value, g.value) : i.buttons).map((y) => ({ - ...y, - callback: () => { - r = !0, b(y.callback); - } - }))); - let r = !1; - const b = async (_) => { - const y = a.value.length === 0 && i.allowPickDirectory ? [await $(F.value)] : a.value; - _(y), e("close", y), r = !1; - }, g = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)("files"), d = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => g.value === "favorites" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Favorites") : g.value === "recent" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Recent") : ""), a = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)([]), p = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(window?.sessionStorage.getItem("NC.FilePicker.LastPath") || "/"), B = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(), F = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)({ - // Only use the path for the files view as favorites and recent only works on the root - get: () => g.value === "files" ? B.value || i.path || p.value : "/", - /** - * Navigate to the new path and save it to the session storage - * - * @param path The new path - */ - set: (_) => { - i.path === void 0 && window.sessionStorage.setItem("NC.FilePicker.LastPath", _), B.value = _, a.value = []; - } - }), N = (0,vue__WEBPACK_IMPORTED_MODULE_12__.ref)(""), { isSupportedMimeType: h } = jt((0,vue__WEBPACK_IMPORTED_MODULE_12__.toRef)(i, "mimetypeFilter")), { files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o } = Zt(g, F, t); - (0,vue__WEBPACK_IMPORTED_MODULE_12__.onMounted)(() => x()); - const { showHiddenFiles: C } = K(), m = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => { - let _ = w.value; - return C.value || (_ = _.filter((y) => !y.basename.startsWith("."))), i.mimetypeFilter.length > 0 && (_ = _.filter((y) => y.type === "folder" || y.mime && h(y.mime))), N.value && (_ = _.filter((y) => y.basename.toLowerCase().includes(N.value.toLowerCase()))), i.filterFn && (_ = _.filter((y) => i.filterFn(y))), _; - }), f = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => g.value === "files" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Upload some content or sync with your devices!") : g.value === "recent" ? (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Files and folders you recently modified will show up here.") : (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Files and folders you mark as favorite will show up here.")); - return { __sfc: !0, props: i, emit: e, isPublic: t, isOpen: n, dialogButtons: s, isHandlingCallback: r, handleButtonClick: b, currentView: g, viewHeadline: d, selectedFiles: a, savedPath: p, navigatedPath: B, currentPath: F, filterString: N, isSupportedMimeType: h, files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o, showHiddenFiles: C, filteredFiles: m, noFilesDescription: f, onCreateFolder: async (_) => { - try { - const y = await o(_); - F.value = y.path, (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_9__.emit)("files:node:created", w.value.filter((Q) => Q.basename === _)[0]); - } catch (y) { - console.warn("Could not create new folder", { name: _, error: y }), (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.l)((0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t)("Could not create the new folder")); - } - }, handleClose: (_) => { - !_ && !r && e("close"); - }, IconFile: G, FileList: ft, FilePickerBreadcrumbs: Nt, FilePickerNavigation: Ot, NcDialog: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcDialog, NcEmptyContent: _nextcloud_vue__WEBPACK_IMPORTED_MODULE_3__.NcEmptyContent, t: _plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.t }; - } -}); -var Kt = function() { - var e = this, i = e._self._c, t = e._self._setupProxy; - return i(t.NcDialog, { attrs: { container: e.container, buttons: t.dialogButtons, name: e.name, size: "large", "content-classes": "file-picker__content", "dialog-classes": "file-picker", "navigation-classes": "file-picker__navigation", open: t.isOpen }, on: { "update:open": [function(n) { - t.isOpen = n; - }, t.handleClose] }, scopedSlots: e._u([{ key: "navigation", fn: function({ isCollapsed: n }) { - return [i(t.FilePickerNavigation, { attrs: { "is-collapsed": n, "current-view": t.currentView, "filter-string": t.filterString, "disabled-navigation": e.disabledNavigation }, on: { "update:currentView": function(s) { - t.currentView = s; - }, "update:current-view": function(s) { - t.currentView = s; - }, "update:filterString": function(s) { - t.filterString = s; - }, "update:filter-string": function(s) { - t.filterString = s; - } } })]; - } }]) }, [i("div", { staticClass: "file-picker__main" }, [t.currentView === "files" ? i(t.FilePickerBreadcrumbs, { attrs: { path: t.currentPath, "show-menu": e.allowPickDirectory }, on: { "update:path": function(n) { - t.currentPath = n; - }, "create-node": t.onCreateFolder } }) : i("div", { staticClass: "file-picker__view" }, [i("h3", [e._v(e._s(t.viewHeadline))])]), t.isLoading || t.filteredFiles.length > 0 ? i(t.FileList, { attrs: { "allow-pick-directory": e.allowPickDirectory, "current-view": t.currentView, files: t.filteredFiles, multiselect: e.multiselect, loading: t.isLoading, path: t.currentPath, "selected-files": t.selectedFiles, name: t.viewHeadline }, on: { "update:path": [function(n) { - t.currentPath = n; - }, function(n) { - t.currentView = "files"; - }], "update:selectedFiles": function(n) { - t.selectedFiles = n; - }, "update:selected-files": function(n) { - t.selectedFiles = n; - } } }) : t.filterString ? i(t.NcEmptyContent, { attrs: { name: t.t("No matching files"), description: t.t("No files matching your filter were found.") }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconFile)]; - }, proxy: !0 }]) }) : i(t.NcEmptyContent, { attrs: { name: t.t("No files in here"), description: t.noFilesDescription }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [i(t.IconFile)]; - }, proxy: !0 }]) })], 1)]); -}, qt = [], Jt = /* @__PURE__ */ (0,_plugin_vue2_normalizer_VrK6B12S_mjs__WEBPACK_IMPORTED_MODULE_0__.a)( - Gt, - Kt, - qt, - !1, - null, - "6ff1b36b", - null, - null -); -const pi = Jt.exports; - - - -/***/ }) - -}]); -//# sourceMappingURL=data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map?v=d9b9b9d7a013d2ef56e5 \ No newline at end of file diff --git a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map b/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map deleted file mode 100644 index 80cecf3b55fe5..0000000000000 --- a/dist/data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b-data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b.js?v=d9b9b9d7a013d2ef56e5","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA","sources":["webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs"],"sourcesContent":["import { ref as u, onBeforeMount as X, onMounted as I, computed as c, defineComponent as P, watch as E, onUnmounted as Y, nextTick as ee, toRef as te } from \"vue\";\nimport { a as k, l as V, t as v } from \"./_plugin-vue2_normalizer-VrK6B12S.mjs\";\nimport { FileType as L, formatFileSize as ie, davRootPath as ne, davRemoteURL as se, davGetClient as H, davGetDefaultPropfind as M, getFavoriteNodes as le, davResultToNode as re, davGetRecentSearch as ae } from \"@nextcloud/files\";\nimport { getCanonicalLocale as oe } from \"@nextcloud/l10n\";\nimport { NcCheckboxRadioSwitch as O, NcDateTime as ce, NcButton as Z, NcActions as ue, NcActionInput as de, NcBreadcrumbs as fe, NcBreadcrumb as pe, NcIconSvgWrapper as _e, NcSelect as me, NcTextField as ve, NcDialog as ge, NcEmptyContent as ye } from \"@nextcloud/vue\";\nimport { loadState as j } from \"@nextcloud/initial-state\";\nimport { generateUrl as R, generateRemoteUrl as he } from \"@nextcloud/router\";\nimport { toValue as A } from \"@vueuse/core\";\nimport W from \"@nextcloud/axios\";\nimport { getCurrentUser as we } from \"@nextcloud/auth\";\nimport { Fragment as be } from \"vue-frag\";\nimport { mdiFolder as ke, mdiClock as Ce, mdiStar as Fe } from \"@mdi/js\";\nimport { emit as Se } from \"@nextcloud/event-bus\";\nimport { join as T } from \"path\";\nimport { CancelablePromise as U } from \"cancelable-promise\";\nconst $e = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Ne = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon file-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, xe = [], Be = /* @__PURE__ */ k(\n $e,\n Ne,\n xe,\n !1,\n null,\n null,\n null,\n null\n);\nconst G = Be.exports, D = () => {\n const l = () => document.getElementById(\"isPublic\")?.value === \"1\", e = u(!0);\n return X(() => {\n e.value = l();\n }), {\n isPublic: e\n };\n};\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nconst K = () => {\n const l = j(\"files\", \"config\", null), e = u(l?.show_hidden ?? !0), i = u(l?.sort_favorites_first ?? !0), t = u(l?.crop_image_previews ?? !0), { isPublic: n } = D();\n return I(async () => {\n if (n.value)\n console.debug(\"Skip loading files settings - currently on public share\");\n else\n try {\n const { data: s } = await W.get(R(\"/apps/files/api/v1/configs\"));\n e.value = s?.data?.show_hidden ?? !1, i.value = s?.data?.sort_favorites_first ?? !0, t.value = s?.data?.crop_image_previews ?? !0;\n } catch (s) {\n console.error(\"Could not load files settings\", s), V(v(\"Could not load files settings\"));\n }\n }), {\n showHiddenFiles: e,\n sortFavoritesFirst: i,\n cropImagePreviews: t\n };\n}, Pe = (l) => {\n const e = (a) => a === \"asc\" ? \"ascending\" : a === \"desc\" ? \"descending\" : \"none\", i = j(\"files\", \"viewConfigs\", null), t = u({\n sortBy: i?.files?.sorting_mode ?? \"basename\",\n order: e(i?.files?.sorting_direction ?? \"asc\")\n }), n = u({\n sortBy: i?.recent?.sorting_mode ?? \"basename\",\n order: e(i?.recent?.sorting_direction ?? \"asc\")\n }), s = u({\n sortBy: i?.favorites?.sorting_mode ?? \"basename\",\n order: e(i?.favorites?.sorting_direction ?? \"asc\")\n }), { isPublic: r } = D();\n I(async () => {\n if (r.value)\n console.debug(\"Skip loading files views - currently on public share\");\n else\n try {\n const { data: a } = await W.get(R(\"/apps/files/api/v1/views\"));\n t.value = {\n sortBy: a?.data?.files?.sorting_mode ?? \"basename\",\n order: e(a?.data?.files?.sorting_direction)\n }, s.value = {\n sortBy: a?.data?.favorites?.sorting_mode ?? \"basename\",\n order: e(a?.data?.favorites?.sorting_direction)\n }, n.value = {\n sortBy: a?.data?.recent?.sorting_mode ?? \"basename\",\n order: e(a?.data?.recent?.sorting_direction)\n };\n } catch (a) {\n console.error(\"Could not load files views\", a), V(v(\"Could not load files views\"));\n }\n });\n const b = c(() => A(l || \"files\") === \"files\" ? t.value : A(l) === \"recent\" ? n.value : s.value), g = c(() => b.value.sortBy), d = c(() => b.value.order);\n return {\n filesViewConfig: t,\n favoritesViewConfig: s,\n recentViewConfig: n,\n currentConfig: b,\n sortBy: g,\n order: d\n };\n}, ze = {\n name: \"MenuUpIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Le = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon menu-up-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M7,15L12,10L17,15H7Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Ie = [], Ve = /* @__PURE__ */ k(\n ze,\n Le,\n Ie,\n !1,\n null,\n null,\n null,\n null\n);\nconst Re = Ve.exports, De = {\n name: \"MenuDownIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar He = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon menu-down-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M7,10L12,15L17,10H7Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Me = [], Ae = /* @__PURE__ */ k(\n De,\n He,\n Me,\n !1,\n null,\n null,\n null,\n null\n);\nconst Te = Ae.exports, q = {\n \"file-picker__file-icon\": \"_file-picker__file-icon_1vgv4_5\"\n}, Ue = /* @__PURE__ */ P({\n __name: \"LoadingTableRow\",\n props: {\n showCheckbox: { type: Boolean }\n },\n setup(l) {\n return { __sfc: !0, fileListIconStyles: q };\n }\n});\nvar Ee = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"tr\", { staticClass: \"file-picker__row loading-row\", attrs: { \"aria-hidden\": \"true\" } }, [e.showCheckbox ? i(\"td\", { staticClass: \"row-checkbox\" }, [i(\"span\")]) : e._e(), i(\"td\", { staticClass: \"row-name\" }, [i(\"div\", { staticClass: \"row-wrapper\" }, [i(\"span\", { class: t.fileListIconStyles[\"file-picker__file-icon\"] }), i(\"span\")])]), e._m(0), e._m(1)]);\n}, Oe = [function() {\n var l = this, e = l._self._c;\n return l._self._setupProxy, e(\"td\", { staticClass: \"row-size\" }, [e(\"span\")]);\n}, function() {\n var l = this, e = l._self._c;\n return l._self._setupProxy, e(\"td\", { staticClass: \"row-modified\" }, [e(\"span\")]);\n}], Ze = /* @__PURE__ */ k(\n Ue,\n Ee,\n Oe,\n !1,\n null,\n \"6aded0d9\",\n null,\n null\n);\nconst je = Ze.exports;\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nfunction We(l, e = {}) {\n e = { size: 32, cropPreview: !1, mimeFallback: !0, ...e };\n try {\n const i = l.attributes?.previewUrl || R(\"/core/preview?fileId={fileid}\", {\n fileid: l.fileid\n });\n let t;\n try {\n t = new URL(i);\n } catch {\n t = new URL(i, window.location.origin);\n }\n return t.searchParams.set(\"x\", `${e.size}`), t.searchParams.set(\"y\", `${e.size}`), t.searchParams.set(\"mimeFallback\", `${e.mimeFallback}`), t.searchParams.set(\"a\", e.cropPreview === !0 ? \"0\" : \"1\"), t.searchParams.set(\"c\", `${l.attributes.etag}`), t;\n } catch {\n return null;\n }\n}\nconst Ge = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Ke = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon folder-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, qe = [], Je = /* @__PURE__ */ k(\n Ge,\n Ke,\n qe,\n !1,\n null,\n null,\n null,\n null\n);\nconst J = Je.exports, Qe = {\n name: \"FilePreview\"\n}, Xe = /* @__PURE__ */ P({\n ...Qe,\n props: {\n node: null,\n cropImagePreviews: { type: Boolean }\n },\n setup(l) {\n const e = l, i = u(q), t = c(() => We(e.node, { cropPreview: e.cropImagePreviews })), n = c(() => e.node.type === L.File), s = u(!1);\n return E(t, () => {\n if (s.value = !1, t.value) {\n const r = document.createElement(\"img\");\n r.src = t.value.href, r.onerror = () => r.remove(), r.onload = () => {\n s.value = !0, r.remove();\n }, document.body.appendChild(r);\n }\n }, { immediate: !0 }), { __sfc: !0, fileListIconStyles: i, props: e, previewURL: t, isFile: n, canLoadPreview: s, IconFile: G, IconFolder: J };\n }\n});\nvar Ye = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"div\", { class: t.fileListIconStyles[\"file-picker__file-icon\"], style: t.canLoadPreview ? { backgroundImage: `url(${t.previewURL})` } : void 0 }, [t.canLoadPreview ? e._e() : [t.isFile ? i(t.IconFile, { attrs: { size: 20 } }) : i(t.IconFolder, { attrs: { size: 20 } })]], 2);\n}, et = [], tt = /* @__PURE__ */ k(\n Xe,\n Ye,\n et,\n !1,\n null,\n null,\n null,\n null\n);\nconst it = tt.exports, nt = /* @__PURE__ */ P({\n __name: \"FileListRow\",\n props: {\n allowPickDirectory: { type: Boolean },\n selected: { type: Boolean },\n showCheckbox: { type: Boolean },\n canPick: { type: Boolean },\n node: null,\n cropImagePreviews: { type: Boolean }\n },\n emits: [\"update:selected\", \"enter-directory\"],\n setup(l, { emit: e }) {\n const i = l, t = c(() => i.node.attributes?.displayName || i.node.basename.slice(0, i.node.extension ? -i.node.extension.length : void 0)), n = c(() => i.node.extension), s = c(() => i.node.type === L.Folder), r = c(() => i.canPick && (i.allowPickDirectory || !s.value));\n function b() {\n e(\"update:selected\", !i.selected);\n }\n function g() {\n s.value ? e(\"enter-directory\", i.node) : b();\n }\n function d(a) {\n a.key === \"Enter\" && g();\n }\n return { __sfc: !0, props: i, emit: e, displayName: t, fileExtension: n, isDirectory: s, isPickable: r, toggleSelected: b, handleClick: g, handleKeyDown: d, formatFileSize: ie, NcCheckboxRadioSwitch: O, NcDateTime: ce, t: v, FilePreview: it };\n }\n});\nvar st = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"tr\", e._g({ class: [\"file-picker__row\", {\n \"file-picker__row--selected\": e.selected && !e.showCheckbox\n }], attrs: { tabindex: e.showCheckbox && !t.isDirectory ? void 0 : 0, \"aria-selected\": t.isPickable ? e.selected : void 0, \"data-filename\": e.node.basename, \"data-testid\": \"file-list-row\" } }, {\n click: t.handleClick,\n /* same as tabindex -> if we hide the checkbox or this is a directory we need keyboard access to enter the directory or select the node */\n ...!e.showCheckbox || t.isDirectory ? { keydown: t.handleKeyDown } : {}\n }), [e.showCheckbox ? i(\"td\", { staticClass: \"row-checkbox\", on: { click: function(n) {\n return n.stopPropagation(), (() => {\n }).apply(null, arguments);\n } } }, [i(t.NcCheckboxRadioSwitch, { attrs: { \"aria-label\": t.t(\"Select the row for {nodename}\", { nodename: t.displayName }), checked: e.selected, disabled: !t.isPickable, \"data-testid\": \"row-checkbox\" }, on: { \"update:checked\": t.toggleSelected } })], 1) : e._e(), i(\"td\", { staticClass: \"row-name\" }, [i(\"div\", { staticClass: \"file-picker__name-container\", attrs: { \"data-testid\": \"row-name\" } }, [i(t.FilePreview, { attrs: { node: e.node, \"crop-image-previews\": e.cropImagePreviews } }), i(\"div\", { staticClass: \"file-picker__file-name\", attrs: { title: t.displayName }, domProps: { textContent: e._s(t.displayName) } }), i(\"div\", { staticClass: \"file-picker__file-extension\", domProps: { textContent: e._s(t.fileExtension) } })], 1)]), i(\"td\", { staticClass: \"row-size\" }, [e._v(\" \" + e._s(t.formatFileSize(e.node.size || 0)) + \" \")]), i(\"td\", { staticClass: \"row-modified\" }, [i(t.NcDateTime, { attrs: { timestamp: e.node.mtime, \"ignore-seconds\": !0 } })], 1)]);\n}, lt = [], rt = /* @__PURE__ */ k(\n nt,\n st,\n lt,\n !1,\n null,\n \"48df4f27\",\n null,\n null\n);\nconst at = rt.exports, ot = /* @__PURE__ */ P({\n __name: \"FileList\",\n props: {\n currentView: null,\n multiselect: { type: Boolean },\n allowPickDirectory: { type: Boolean },\n loading: { type: Boolean },\n files: null,\n selectedFiles: null,\n path: null\n },\n emits: [\"update:path\", \"update:selectedFiles\"],\n setup(l, { emit: e }) {\n const i = l, t = u(), { currentConfig: n } = Pe(i.currentView), s = c(() => t.value ?? n.value), r = c(() => s.value.sortBy === \"basename\" ? s.value.order === \"none\" ? void 0 : s.value.order : void 0), b = c(() => s.value.sortBy === \"size\" ? s.value.order === \"none\" ? void 0 : s.value.order : void 0), g = c(() => s.value.sortBy === \"mtime\" ? s.value.order === \"none\" ? void 0 : s.value.order : void 0), d = (o) => {\n s.value.sortBy === o ? s.value.order === \"ascending\" ? t.value = { sortBy: s.value.sortBy, order: \"descending\" } : t.value = { sortBy: s.value.sortBy, order: \"ascending\" } : t.value = { sortBy: o, order: \"ascending\" };\n }, { sortFavoritesFirst: a, cropImagePreviews: p } = K(), B = c(\n () => {\n const o = {\n ascending: (m, f, z) => z(m, f),\n descending: (m, f, z) => z(f, m),\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n none: (m, f, z) => 0\n }, C = {\n basename: (m, f) => (m.attributes?.displayName || m.basename).localeCompare(f.attributes?.displayName || f.basename, oe()),\n size: (m, f) => (m.size || 0) - (f.size || 0),\n // reverted because \"young\" is smaller than \"old\"\n mtime: (m, f) => (f.mtime?.getTime?.() || 0) - (m.mtime?.getTime?.() || 0)\n };\n return [...i.files].sort(\n (m, f) => (\n // Folders always come above the files\n (f.type === L.Folder ? 1 : 0) - (m.type === L.Folder ? 1 : 0) || (a ? (f.attributes.favorite ? 1 : 0) - (m.attributes.favorite ? 1 : 0) : 0) || o[s.value.order](m, f, C[s.value.sortBy])\n )\n );\n }\n ), F = c(() => i.files.filter((o) => i.allowPickDirectory || o.type !== L.Folder)), N = c(() => !i.loading && i.selectedFiles.length > 0 && i.selectedFiles.length >= F.value.length);\n function h() {\n i.selectedFiles.length < F.value.length ? e(\"update:selectedFiles\", F.value) : e(\"update:selectedFiles\", []);\n }\n function w(o) {\n i.selectedFiles.includes(o) ? e(\"update:selectedFiles\", i.selectedFiles.filter((C) => C.path !== o.path)) : i.multiselect ? e(\"update:selectedFiles\", [...i.selectedFiles, o]) : e(\"update:selectedFiles\", [o]);\n }\n function S(o) {\n e(\"update:path\", o.path);\n }\n const x = u(4), $ = u();\n {\n const o = () => ee(() => {\n const C = $.value?.parentElement?.children || [];\n let m = $.value?.parentElement?.clientHeight || 450;\n for (let f = 0; f < C.length; f++)\n $.value?.isSameNode(C[f]) || (m -= C[f].clientHeight);\n x.value = Math.floor((m - 50) / 50);\n });\n I(() => {\n window.addEventListener(\"resize\", o), o();\n }), Y(() => {\n window.removeEventListener(\"resize\", o);\n });\n }\n return { __sfc: !0, props: i, emit: e, customSortingConfig: t, filesAppSorting: n, sortingConfig: s, sortByName: r, sortBySize: b, sortByModified: g, toggleSorting: d, sortFavoritesFirst: a, cropImagePreviews: p, sortedFiles: B, selectableFiles: F, allSelected: N, onSelectAll: h, onNodeSelected: w, onChangeDirectory: S, skeletonNumber: x, fileContainer: $, NcButton: Z, NcCheckboxRadioSwitch: O, t: v, IconSortAscending: Re, IconSortDescending: Te, LoadingTableRow: je, FileListRow: at };\n }\n});\nvar ct = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(\"div\", { ref: \"fileContainer\", staticClass: \"file-picker__files\" }, [i(\"table\", [i(\"thead\", [i(\"tr\", [e.multiselect ? i(\"th\", { staticClass: \"row-checkbox\" }, [i(\"span\", { staticClass: \"hidden-visually\" }, [e._v(\" \" + e._s(t.t(\"Select entry\")) + \" \")]), e.multiselect ? i(t.NcCheckboxRadioSwitch, { attrs: { \"aria-label\": t.t(\"Select all entries\"), checked: t.allSelected, \"data-testid\": \"select-all-checkbox\" }, on: { \"update:checked\": t.onSelectAll } }) : e._e()], 1) : e._e(), i(\"th\", { staticClass: \"row-name\", attrs: { \"aria-sort\": t.sortByName } }, [i(\"div\", { staticClass: \"header-wrapper\" }, [i(\"span\", { staticClass: \"file-picker__header-preview\" }), i(t.NcButton, { attrs: { wide: !0, type: \"tertiary\", \"data-test\": \"file-picker_sort-name\" }, on: { click: function(n) {\n return t.toggleSorting(\"basename\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t.sortByName === \"ascending\" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByName === \"descending\" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i(\"span\", { staticStyle: { width: \"44px\" } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(t.t(\"Name\")) + \" \")])], 1)]), i(\"th\", { staticClass: \"row-size\", attrs: { \"aria-sort\": t.sortBySize } }, [i(t.NcButton, { attrs: { wide: !0, type: \"tertiary\" }, on: { click: function(n) {\n return t.toggleSorting(\"size\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t.sortBySize === \"ascending\" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortBySize === \"descending\" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i(\"span\", { staticStyle: { width: \"44px\" } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(t.t(\"Size\")) + \" \")])], 1), i(\"th\", { staticClass: \"row-modified\", attrs: { \"aria-sort\": t.sortByModified } }, [i(t.NcButton, { attrs: { wide: !0, type: \"tertiary\" }, on: { click: function(n) {\n return t.toggleSorting(\"mtime\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t.sortByModified === \"ascending\" ? i(t.IconSortAscending, { attrs: { size: 20 } }) : t.sortByModified === \"descending\" ? i(t.IconSortDescending, { attrs: { size: 20 } }) : i(\"span\", { staticStyle: { width: \"44px\" } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(t.t(\"Modified\")) + \" \")])], 1)])]), i(\"tbody\", [e.loading ? e._l(t.skeletonNumber, function(n) {\n return i(t.LoadingTableRow, { key: n, attrs: { \"show-checkbox\": e.multiselect } });\n }) : e._l(t.sortedFiles, function(n) {\n return i(t.FileListRow, { key: n.fileid || n.path, attrs: { \"allow-pick-directory\": e.allowPickDirectory, \"show-checkbox\": e.multiselect, \"can-pick\": e.multiselect || e.selectedFiles.length === 0 || e.selectedFiles.includes(n), selected: e.selectedFiles.includes(n), node: n, \"crop-image-previews\": t.cropImagePreviews }, on: { \"update:selected\": function(s) {\n return t.onNodeSelected(n);\n }, \"enter-directory\": t.onChangeDirectory } });\n })], 2)])]);\n}, ut = [], dt = /* @__PURE__ */ k(\n ot,\n ct,\n ut,\n !1,\n null,\n \"d3c94818\",\n null,\n null\n);\nconst ft = dt.exports, pt = {\n name: \"HomeIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar _t = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon home-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M10,20V14H14V20H19V12H22L12,3L2,12H5V20H10Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, mt = [], vt = /* @__PURE__ */ k(\n pt,\n _t,\n mt,\n !1,\n null,\n null,\n null,\n null\n);\nconst gt = vt.exports, yt = {\n name: \"PlusIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar ht = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon plus-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, wt = [], bt = /* @__PURE__ */ k(\n yt,\n ht,\n wt,\n !1,\n null,\n null,\n null,\n null\n);\nconst kt = bt.exports, Ct = /* @__PURE__ */ P({\n __name: \"FilePickerBreadcrumbs\",\n props: {\n path: null,\n showMenu: { type: Boolean }\n },\n emits: [\"update:path\", \"create-node\"],\n setup(l, { emit: e }) {\n const i = l, t = u(!1), n = u(\"\"), s = u();\n function r() {\n const d = n.value.trim(), a = s.value?.$el?.querySelector(\"input\");\n let p = \"\";\n return d.length === 0 ? p = v(\"Folder name cannot be empty.\") : d.includes(\"/\") ? p = v('\"/\" is not allowed inside a folder name.') : [\"..\", \".\"].includes(d) ? p = v('\"{name}\" is an invalid folder name.', { name: d }) : window.OC.config?.blacklist_files_regex && d.match(window.OC.config?.blacklist_files_regex) && (p = v('\"{name}\" is not an allowed folder name', { name: d })), a && a.setCustomValidity(p), p === \"\";\n }\n const b = function() {\n const d = n.value.trim();\n r() && (t.value = !1, e(\"create-node\", d), n.value = \"\");\n }, g = c(\n () => i.path.split(\"/\").filter((d) => d !== \"\").map((d, a, p) => ({\n name: d,\n path: \"/\" + p.slice(0, a + 1).join(\"/\")\n }))\n );\n return { __sfc: !0, props: i, emit: e, actionsOpen: t, newNodeName: n, nameInput: s, validateInput: r, onSubmit: b, pathElements: g, IconFolder: J, IconHome: gt, IconPlus: kt, NcActions: ue, NcActionInput: de, NcBreadcrumbs: fe, NcBreadcrumb: pe, t: v };\n }\n});\nvar Ft = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(t.NcBreadcrumbs, { staticClass: \"file-picker__breadcrumbs\", scopedSlots: e._u([{ key: \"default\", fn: function() {\n return [i(t.NcBreadcrumb, { attrs: { name: t.t(\"All files\"), title: t.t(\"Home\") }, on: { click: function(n) {\n return t.emit(\"update:path\", \"/\");\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconHome, { attrs: { size: 20 } })];\n }, proxy: !0 }]) }), e._l(t.pathElements, function(n) {\n return i(t.NcBreadcrumb, { key: n.path, attrs: { name: n.name, title: n.path }, on: { click: function(s) {\n return t.emit(\"update:path\", n.path);\n } } });\n })];\n }, proxy: !0 }, e.showMenu ? { key: \"actions\", fn: function() {\n return [i(t.NcActions, { attrs: { \"aria-label\": t.t(\"Create directory\"), \"force-menu\": !0, \"force-name\": !0, \"menu-name\": t.t(\"New\"), open: t.actionsOpen, type: \"secondary\" }, on: { \"update:open\": function(n) {\n t.actionsOpen = n;\n }, close: function(n) {\n t.newNodeName = \"\";\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconPlus, { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !1, 2971667417) }, [i(t.NcActionInput, { ref: \"nameInput\", attrs: { value: t.newNodeName, label: t.t(\"New folder\"), placeholder: t.t(\"New folder name\") }, on: { \"update:value\": function(n) {\n t.newNodeName = n;\n }, submit: t.onSubmit, input: t.validateInput }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconFolder, { attrs: { size: 20 } })];\n }, proxy: !0 }], null, !1, 1614167509) })], 1)];\n }, proxy: !0 } : null], null, !0) });\n}, St = [], $t = /* @__PURE__ */ k(\n Ct,\n Ft,\n St,\n !1,\n null,\n \"22cbb5df\",\n null,\n null\n);\nconst Nt = $t.exports, xt = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Bt = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon close-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Pt = [], zt = /* @__PURE__ */ k(\n xt,\n Bt,\n Pt,\n !1,\n null,\n null,\n null,\n null\n);\nconst Lt = zt.exports, It = {\n name: \"MagnifyIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar Vt = function() {\n var e = this, i = e._self._c;\n return i(\"span\", e._b({ staticClass: \"material-design-icon magnify-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(t) {\n return e.$emit(\"click\", t);\n } } }, \"span\", e.$attrs, !1), [i(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [i(\"path\", { attrs: { d: \"M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z\" } }, [e.title ? i(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, Rt = [], Dt = /* @__PURE__ */ k(\n It,\n Vt,\n Rt,\n !1,\n null,\n null,\n null,\n null\n);\nconst Ht = Dt.exports;\n/**\n * @copyright Copyright (c) 2024 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nconst Mt = (l) => {\n const e = [\n {\n id: \"files\",\n label: v(\"All files\"),\n icon: ke\n },\n {\n id: \"recent\",\n label: v(\"Recent\"),\n icon: Ce\n },\n {\n id: \"favorites\",\n label: v(\"Favorites\"),\n icon: Fe\n }\n ], i = l.value ? e.filter(({ id: t }) => t === \"files\") : e;\n return {\n allViews: e,\n availableViews: i\n };\n}, At = /* @__PURE__ */ P({\n __name: \"FilePickerNavigation\",\n props: {\n currentView: null,\n filterString: null,\n isCollapsed: { type: Boolean },\n disabledNavigation: { type: Boolean }\n },\n emits: [\"update:currentView\", \"update:filterString\"],\n setup(l, { emit: e }) {\n const i = l, { availableViews: t } = Mt(u(we() === null)), n = c(() => t.filter((r) => r.id === i.currentView)[0] ?? t[0]);\n return { __sfc: !0, props: i, emit: e, availableViews: t, currentViewObject: n, updateFilterValue: (r) => e(\"update:filterString\", r), IconClose: Lt, IconMagnify: Ht, NcButton: Z, NcIconSvgWrapper: _e, NcSelect: me, NcTextField: ve, Fragment: be, t: v };\n }\n});\nvar Tt = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(t.Fragment, [i(t.NcTextField, { staticClass: \"file-picker__filter-input\", attrs: { value: e.filterString, label: t.t(\"Filter file list\"), \"show-trailing-button\": !!e.filterString }, on: { \"update:value\": t.updateFilterValue, \"trailing-button-click\": function(n) {\n return t.updateFilterValue(\"\");\n } }, scopedSlots: e._u([{ key: \"trailing-button-icon\", fn: function() {\n return [i(t.IconClose, { attrs: { size: 16 } })];\n }, proxy: !0 }]) }, [i(t.IconMagnify, { attrs: { size: 16 } })], 1), t.availableViews.length > 1 && !e.disabledNavigation ? [e.isCollapsed ? i(t.NcSelect, { attrs: { \"aria-label\": t.t(\"Current view selector\"), clearable: !1, searchable: !1, options: t.availableViews, value: t.currentViewObject }, on: { input: (n) => t.emit(\"update:currentView\", n.id) } }) : i(\"ul\", { staticClass: \"file-picker__side\" }, e._l(t.availableViews, function(n) {\n return i(\"li\", { key: n.id }, [i(t.NcButton, { attrs: { type: e.currentView === n.id ? \"primary\" : \"tertiary\", wide: !0 }, on: { click: function(s) {\n return e.$emit(\"update:currentView\", n.id);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.NcIconSvgWrapper, { attrs: { path: n.icon, size: 20 } })];\n }, proxy: !0 }], null, !0) }, [e._v(\" \" + e._s(n.label) + \" \")])], 1);\n }), 0)] : e._e()], 2);\n}, Ut = [], Et = /* @__PURE__ */ k(\n At,\n Tt,\n Ut,\n !1,\n null,\n \"a06474d4\",\n null,\n null\n);\nconst Ot = Et.exports;\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst Zt = function(l, e, i) {\n const t = c(() => i.value ? \"/\" : ne), n = c(() => i.value ? he(\"webdav\").replace(\"/remote.php\", \"/public.php\") : se), s = c(() => {\n if (i.value) {\n const h = document.getElementById(\"sharingToken\").value, w = btoa(`${h}:null`);\n return H(n.value, {\n Authorization: `Basic ${w}`\n });\n }\n return H();\n }), r = (h) => re(h, t.value, n.value), b = () => {\n const h = new AbortController(), w = Math.round(Date.now() / 1e3) - 60 * 60 * 24 * 14;\n return new U(async (S, x, $) => {\n $(() => h.abort());\n try {\n const { data: o } = await s.value.search(\"/\", {\n signal: h.signal,\n details: !0,\n data: ae(w)\n }), C = o.results.map(r);\n S(C);\n } catch (o) {\n x(o);\n }\n });\n }, g = () => {\n const h = new AbortController();\n return new U(async (w, S, x) => {\n x(() => h.abort());\n try {\n let o = (await s.value.getDirectoryContents(`${t.value}${e.value}`, {\n signal: h.signal,\n details: !0,\n data: M()\n })).data.map(r);\n i.value && (o = o.filter((C) => C.path !== e.value)), w(o);\n } catch ($) {\n S($);\n }\n });\n }, d = u([]), a = u(!0), p = u(null);\n async function B(h) {\n const w = T(e.value, h);\n await s.value.createDirectory(T(t.value, w));\n const S = await F(w);\n return d.value.push(S), S;\n }\n async function F(h, w = void 0) {\n w = w ?? t.value;\n const { data: S } = await s.value.stat(`${w}${h}`, {\n details: !0,\n data: M()\n });\n return r(S);\n }\n async function N() {\n p.value && p.value.cancel(), a.value = !0, l.value === \"favorites\" ? p.value = le(s.value, e.value, t.value) : l.value === \"recent\" ? p.value = b() : p.value = g(), d.value = await p.value, p.value = null, a.value = !1;\n }\n return E([l, e], () => N()), I(() => N()), {\n isLoading: a,\n files: d,\n loadFiles: N,\n getFile: F,\n createDirectory: B\n };\n};\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst jt = function(l) {\n const e = c(() => l.value.map((t) => t.split(\"/\")));\n return {\n isSupportedMimeType: (t) => {\n const n = t.split(\"/\");\n return e.value.some(\n ([s, r]) => (\n // check mime type matches or is wildcard\n (n[0] === s || s === \"*\") && (n[1] === r || r === \"*\")\n )\n );\n }\n };\n}, Wt = {\n name: \"FilePicker\"\n}, Gt = /* @__PURE__ */ P({\n ...Wt,\n props: {\n buttons: null,\n name: null,\n allowPickDirectory: { type: Boolean, default: !1 },\n disabledNavigation: { type: Boolean, default: !1 },\n container: { default: \"body\" },\n filterFn: { default: void 0 },\n mimetypeFilter: { default: () => [] },\n multiselect: { type: Boolean, default: !0 },\n path: { default: void 0 }\n },\n emits: [\"close\"],\n setup(l, { emit: e }) {\n const i = l, { isPublic: t } = D(), n = u(!0), s = c(() => (typeof i.buttons == \"function\" ? i.buttons(a.value, F.value, g.value) : i.buttons).map((y) => ({\n ...y,\n callback: () => {\n r = !0, b(y.callback);\n }\n })));\n let r = !1;\n const b = async (_) => {\n const y = a.value.length === 0 && i.allowPickDirectory ? [await $(F.value)] : a.value;\n _(y), e(\"close\", y), r = !1;\n }, g = u(\"files\"), d = c(() => g.value === \"favorites\" ? v(\"Favorites\") : g.value === \"recent\" ? v(\"Recent\") : \"\"), a = u([]), p = u(window?.sessionStorage.getItem(\"NC.FilePicker.LastPath\") || \"/\"), B = u(), F = c({\n // Only use the path for the files view as favorites and recent only works on the root\n get: () => g.value === \"files\" ? B.value || i.path || p.value : \"/\",\n /**\n * Navigate to the new path and save it to the session storage\n *\n * @param path The new path\n */\n set: (_) => {\n i.path === void 0 && window.sessionStorage.setItem(\"NC.FilePicker.LastPath\", _), B.value = _, a.value = [];\n }\n }), N = u(\"\"), { isSupportedMimeType: h } = jt(te(i, \"mimetypeFilter\")), { files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o } = Zt(g, F, t);\n I(() => x());\n const { showHiddenFiles: C } = K(), m = c(() => {\n let _ = w.value;\n return C.value || (_ = _.filter((y) => !y.basename.startsWith(\".\"))), i.mimetypeFilter.length > 0 && (_ = _.filter((y) => y.type === \"folder\" || y.mime && h(y.mime))), N.value && (_ = _.filter((y) => y.basename.toLowerCase().includes(N.value.toLowerCase()))), i.filterFn && (_ = _.filter((y) => i.filterFn(y))), _;\n }), f = c(() => g.value === \"files\" ? v(\"Upload some content or sync with your devices!\") : g.value === \"recent\" ? v(\"Files and folders you recently modified will show up here.\") : v(\"Files and folders you mark as favorite will show up here.\"));\n return { __sfc: !0, props: i, emit: e, isPublic: t, isOpen: n, dialogButtons: s, isHandlingCallback: r, handleButtonClick: b, currentView: g, viewHeadline: d, selectedFiles: a, savedPath: p, navigatedPath: B, currentPath: F, filterString: N, isSupportedMimeType: h, files: w, isLoading: S, loadFiles: x, getFile: $, createDirectory: o, showHiddenFiles: C, filteredFiles: m, noFilesDescription: f, onCreateFolder: async (_) => {\n try {\n const y = await o(_);\n F.value = y.path, Se(\"files:node:created\", w.value.filter((Q) => Q.basename === _)[0]);\n } catch (y) {\n console.warn(\"Could not create new folder\", { name: _, error: y }), V(v(\"Could not create the new folder\"));\n }\n }, handleClose: (_) => {\n !_ && !r && e(\"close\");\n }, IconFile: G, FileList: ft, FilePickerBreadcrumbs: Nt, FilePickerNavigation: Ot, NcDialog: ge, NcEmptyContent: ye, t: v };\n }\n});\nvar Kt = function() {\n var e = this, i = e._self._c, t = e._self._setupProxy;\n return i(t.NcDialog, { attrs: { container: e.container, buttons: t.dialogButtons, name: e.name, size: \"large\", \"content-classes\": \"file-picker__content\", \"dialog-classes\": \"file-picker\", \"navigation-classes\": \"file-picker__navigation\", open: t.isOpen }, on: { \"update:open\": [function(n) {\n t.isOpen = n;\n }, t.handleClose] }, scopedSlots: e._u([{ key: \"navigation\", fn: function({ isCollapsed: n }) {\n return [i(t.FilePickerNavigation, { attrs: { \"is-collapsed\": n, \"current-view\": t.currentView, \"filter-string\": t.filterString, \"disabled-navigation\": e.disabledNavigation }, on: { \"update:currentView\": function(s) {\n t.currentView = s;\n }, \"update:current-view\": function(s) {\n t.currentView = s;\n }, \"update:filterString\": function(s) {\n t.filterString = s;\n }, \"update:filter-string\": function(s) {\n t.filterString = s;\n } } })];\n } }]) }, [i(\"div\", { staticClass: \"file-picker__main\" }, [t.currentView === \"files\" ? i(t.FilePickerBreadcrumbs, { attrs: { path: t.currentPath, \"show-menu\": e.allowPickDirectory }, on: { \"update:path\": function(n) {\n t.currentPath = n;\n }, \"create-node\": t.onCreateFolder } }) : i(\"div\", { staticClass: \"file-picker__view\" }, [i(\"h3\", [e._v(e._s(t.viewHeadline))])]), t.isLoading || t.filteredFiles.length > 0 ? i(t.FileList, { attrs: { \"allow-pick-directory\": e.allowPickDirectory, \"current-view\": t.currentView, files: t.filteredFiles, multiselect: e.multiselect, loading: t.isLoading, path: t.currentPath, \"selected-files\": t.selectedFiles, name: t.viewHeadline }, on: { \"update:path\": [function(n) {\n t.currentPath = n;\n }, function(n) {\n t.currentView = \"files\";\n }], \"update:selectedFiles\": function(n) {\n t.selectedFiles = n;\n }, \"update:selected-files\": function(n) {\n t.selectedFiles = n;\n } } }) : t.filterString ? i(t.NcEmptyContent, { attrs: { name: t.t(\"No matching files\"), description: t.t(\"No files matching your filter were found.\") }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconFile)];\n }, proxy: !0 }]) }) : i(t.NcEmptyContent, { attrs: { name: t.t(\"No files in here\"), description: t.noFilesDescription }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [i(t.IconFile)];\n }, proxy: !0 }]) })], 1)]);\n}, qt = [], Jt = /* @__PURE__ */ k(\n Gt,\n Kt,\n qt,\n !1,\n null,\n \"6ff1b36b\",\n null,\n null\n);\nconst pi = Jt.exports;\nexport {\n pi as default\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/federatedfilesharing-external.js b/dist/federatedfilesharing-external.js deleted file mode 100644 index 697d5c2903b71..0000000000000 --- a/dist/federatedfilesharing-external.js +++ /dev/null @@ -1,6 +0,0 @@ -/******/ (() => { // webpackBootstrap -/******/ "use strict"; -/******/ -/******/ -/******/ })() -; \ No newline at end of file diff --git a/dist/federatedfilesharing-external.js.map b/dist/federatedfilesharing-external.js.map deleted file mode 100644 index 41afe34fee26f..0000000000000 --- a/dist/federatedfilesharing-external.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"federatedfilesharing-external.js?v=5aa0b13c1846da983827","mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;ACzJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;AACA;AACA;AACA;;;;;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACPA;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AClDA;;;;;AEAA;AACA;AACA;AACA;AACA","sources":["webpack:///nextcloud/apps/federatedfilesharing/src/external.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/before-startup","webpack:///nextcloud/webpack/startup","webpack:///nextcloud/webpack/after-startup"],"sourcesContent":["/**\n * Copyright (c) 2014 Robin Appelman \n *\n * This file is licensed under the Affero General Public License version 3\n * or later.\n *\n * See the COPYING-README file.\n *\n */\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateUrl } from '@nextcloud/router';\nwindow.OCA.Sharing = window.OCA.Sharing || {};\n\n/**\n * Shows \"add external share\" dialog.\n *\n * @param {object} share the share\n * @param {string} share.remote remote server URL\n * @param {string} share.owner owner name\n * @param {string} share.name name of the shared folder\n * @param {string} share.token authentication token\n * @param {boolean} passwordProtected true if the share is password protected\n * @param {Function} callback the callback\n */\nwindow.OCA.Sharing.showAddExternalDialog = function (share, passwordProtected, callback) {\n const remote = share.remote;\n const owner = share.ownerDisplayName || share.owner;\n const name = share.name;\n\n // Clean up the remote URL for display\n const remoteClean = remote.replace(/^https?:\\/\\//, '') // remove http:// or https://\n .replace(/\\/$/, ''); // remove trailing slash\n\n if (!passwordProtected) {\n window.OC.dialogs.confirm(t('files_sharing', 'Do you want to add the remote share {name} from {owner}@{remote}?', {\n name,\n owner,\n remote: remoteClean\n }), t('files_sharing', 'Remote share'), function (result) {\n callback(result, share);\n }, true).then(this._adjustDialog);\n } else {\n window.OC.dialogs.prompt(t('files_sharing', 'Do you want to add the remote share {name} from {owner}@{remote}?', {\n name,\n owner,\n remote: remoteClean\n }), t('files_sharing', 'Remote share'), function (result, password) {\n share.password = password;\n callback(result, share);\n }, true, t('files_sharing', 'Remote share password'), true).then(this._adjustDialog);\n }\n};\nwindow.OCA.Sharing._adjustDialog = function () {\n const $dialog = $('.oc-dialog:visible');\n const $buttons = $dialog.find('button');\n // hack the buttons\n $dialog.find('.ui-icon').remove();\n $buttons.eq(1).text(t('core', 'Cancel'));\n $buttons.eq(2).text(t('files_sharing', 'Add remote share'));\n};\nconst reloadFilesList = function () {\n var _window;\n if (!((_window = window) !== null && _window !== void 0 && (_window = _window.OCP) !== null && _window !== void 0 && (_window = _window.Files) !== null && _window !== void 0 && (_window = _window.Router) !== null && _window !== void 0 && _window.goToRoute)) {\n // No router, just reload the page\n window.location.reload();\n return;\n }\n\n // Let's redirect to the root as any accepted share would be there\n window.OCP.Files.Router.goToRoute(null, {\n ...this.$route.params,\n fileid: undefined\n }, {\n ...this.$route.query,\n openfile: undefined\n });\n};\n\n/**\n * Process incoming remote share that might have been passed\n * through the URL\n */\nconst processIncomingShareFromUrl = function () {\n const params = window.OC.Util.History.parseUrlQuery();\n\n // manually add server-to-server share\n if (params.remote && params.token && params.name) {\n const callbackAddShare = function (result, share) {\n const password = share.password || '';\n if (result) {\n $.post(generateUrl('apps/federatedfilesharing/askForFederatedShare'), {\n remote: share.remote,\n token: share.token,\n owner: share.owner,\n ownerDisplayName: share.ownerDisplayName || share.owner,\n name: share.name,\n password\n }).done(function (data) {\n if (data.hasOwnProperty('legacyMount')) {\n reloadFilesList();\n } else {\n window.OC.Notification.showTemporary(data.message);\n }\n }).fail(function (data) {\n window.OC.Notification.showTemporary(JSON.parse(data.responseText).message);\n });\n }\n };\n\n // clear hash, it is unlikely that it contain any extra parameters\n location.hash = '';\n params.passwordProtected = parseInt(params.protected, 10) === 1;\n window.OCA.Sharing.showAddExternalDialog(params, params.passwordProtected, callbackAddShare);\n }\n};\n\n/**\n * Retrieve a list of remote shares that need to be approved\n */\nconst processSharesToConfirm = function () {\n // check for new server-to-server shares which need to be approved\n $.get(generateUrl('/apps/files_sharing/api/externalShares'), {}, function (shares) {\n let index;\n for (index = 0; index < shares.length; ++index) {\n window.OCA.Sharing.showAddExternalDialog(shares[index], false, function (result, share) {\n if (result) {\n // Accept\n $.post(generateUrl('/apps/files_sharing/api/externalShares'), {\n id: share.id\n }).then(function () {\n reloadFilesList();\n });\n } else {\n // Delete\n $.ajax({\n url: generateUrl('/apps/files_sharing/api/externalShares/' + share.id),\n type: 'DELETE'\n });\n }\n });\n }\n });\n};\nprocessIncomingShareFromUrl();\nif (loadState('federatedfilesharing', 'notificationsEnabled', true) !== true) {\n // No notification app, display the modal\n processSharesToConfirm();\n}\n$('body').on('window.OCA.Notification.Action', function (e) {\n if (e.notification.app === 'files_sharing' && e.notification.object_type === 'remote_share' && e.action.type === 'POST') {\n // User accepted a remote share reload\n reloadFilesList();\n }\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\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\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};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","__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};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"federatedfilesharing-external\": 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [\"core-common\"], () => (__webpack_require__(\"./apps/federatedfilesharing/src/external.js\")))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n",""],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js b/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js deleted file mode 100644 index 839a561057f2b..0000000000000 --- a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js +++ /dev/null @@ -1,44 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs"],{ - -/***/ "./node_modules/@nextcloud/dialogs/dist/chunks/index-CqRCpcyw.mjs": -/*!************************************************************************!*\ - !*** ./node_modules/@nextcloud/dialogs/dist/chunks/index-CqRCpcyw.mjs ***! - \************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ FilePickerVue: () => (/* binding */ i) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); - -/** - * @copyright Copyright (c) 2023 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -const i = (0,vue__WEBPACK_IMPORTED_MODULE_0__.defineAsyncComponent)(() => Promise.all(/*! import() */[__webpack_require__.e("core-common"), __webpack_require__.e("data_image_svg_xml_3csvg_20xmlns_27http_www_w3_org_2000_svg_27_20width_2724_27_20height_2724_-567e4b")]).then(__webpack_require__.bind(__webpack_require__, /*! ./FilePicker-pvhGKHps.mjs */ "./node_modules/@nextcloud/dialogs/dist/chunks/FilePicker-pvhGKHps.mjs"))); - - - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map?v=5b50eddb49f5dac2045c \ No newline at end of file diff --git a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map b/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map deleted file mode 100644 index 0579b9648a21e..0000000000000 --- a/dist/node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs-node_modules_nextcloud_dialogs_dist_chunks_index-CqRCpcyw_mjs.js?v=5b50eddb49f5dac2045c","mappings":";;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA","sources":["webpack:///nextcloud/node_modules/@nextcloud/dialogs/dist/chunks/index-CqRCpcyw.mjs"],"sourcesContent":["import { defineAsyncComponent as e } from \"vue\";\n/**\n * @copyright Copyright (c) 2023 Ferdinand Thiessen \n *\n * @author Ferdinand Thiessen \n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program 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. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n *\n */\nconst i = e(() => import(\"./FilePicker-pvhGKHps.mjs\"));\nexport {\n i as FilePickerVue\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js b/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js deleted file mode 100644 index d498b00fc1fdb..0000000000000 --- a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js +++ /dev/null @@ -1,710 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs"],{ - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css": -/*!**********************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css ***! - \**********************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.node-picker__wrapper[data-v-f85db9fe]:not(:last-of-type) { - border-bottom: 1px solid var(--color-border); -} -.node-picker[data-v-f85db9fe] { - display: flex; - align-items: center; - height: 64px; -} -.node-picker__icon[data-v-f85db9fe], -.node-picker__preview[data-v-f85db9fe] { - height: 64px; - width: 64px; - margin: 0 var(--secondary-margin); - display: block; - flex: 0 0 64px; -} -.node-picker__icon[data-v-f85db9fe] { - color: var(--color-text-maxcontrast); -} -.node-picker__icon.folder-icon[data-v-f85db9fe] { - color: var(--color-primary-element); -} -.node-picker__preview[data-v-f85db9fe] { - overflow: hidden; - border-radius: calc(var(--border-radius) * 2); - background-position: center; - background-size: cover; -} -.node-picker__desc[data-v-f85db9fe] { - display: flex; - flex-direction: column; -} -.node-picker__desc span[data-v-f85db9fe] { - white-space: nowrap; -} -[data-v-12c4204f] .modal-container__content { - display: flex; - overflow: visible; - flex-direction: column; -} -.conflict-picker[data-v-12c4204f] { - --margin: 36px; - --secondary-margin: 18px; -} -.conflict-picker__header[data-v-12c4204f] { - position: sticky; - z-index: 10; - top: 0; - padding: 0 var(--margin); - padding-bottom: var(--secondary-margin); -} -.conflict-picker__form[data-v-12c4204f] { - position: relative; - overflow: auto; - padding: 0 var(--margin); - margin-top: calc(-1 * var(--secondary-margin)); -} -.conflict-picker fieldset[data-v-12c4204f] { - display: grid; - width: 100%; - margin-top: calc(var(--secondary-margin) * 1.5); - padding-bottom: var(--secondary-margin); - grid-template-columns: 1fr 1fr; -} -.conflict-picker fieldset[data-v-12c4204f] legend { - display: flex; - align-items: center; - width: 100%; - margin-bottom: calc(var(--secondary-margin) / 2); -} -.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] { - position: sticky; - top: 0; - margin: 0; - padding: var(--secondary-margin) 0; - background-image: - linear-gradient( - to top, - transparent, - var(--color-main-background-blur) 10%, - var(--color-main-background) 15%); -} -.conflict-picker fieldset.conflict-picker__all + fieldset[data-v-12c4204f] { - margin-top: 0; -} -.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] label { - font-weight: 700; -} -.conflict-picker .button-vue--disabled[data-v-12c4204f] { - cursor: default; - opacity: .5; - filter: saturate(.7); -} -.conflict-picker[data-v-12c4204f] .dialog__actions { - width: auto; - margin-inline: 12px; -} -.conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator { - margin-left: auto; -} -@media screen and (max-width: 768px) { - .conflict-picker[data-v-12c4204f] { - --margin: var(--secondary-margin) !important; - } - .conflict-picker__description[data-v-12c4204f] { - display: none !important; - } - .conflict-picker fieldset[data-v-12c4204f] { - grid-template-columns: 1fr !important; - } - .conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] { - position: static; - } -} -@media screen and (max-width: 512px) { - .conflict-picker[data-v-12c4204f] .dialog__actions { - flex-wrap: wrap; - } - .conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator { - width: 100%; - } -} -`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css": -/*!********************************************************************************!*\ - !*** ./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css ***! - \********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../css-loader/dist/cjs.js!./ConflictPicker-BVcoqXxT.css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _css_loader_dist_cjs_js_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-Bif6rCp6.mjs": -/*!********************************************************************************!*\ - !*** ./node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-Bif6rCp6.mjs ***! - \********************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ ae) -/* harmony export */ }); -/* harmony import */ var _assets_ConflictPicker_BVcoqXxT_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../assets/ConflictPicker-BVcoqXxT.css */ "./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css"); -/* harmony import */ var path__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! path */ "./node_modules/path/path.js"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_files__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/files */ "./node_modules/@nextcloud/files/dist/index.mjs"); -/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); -/* harmony import */ var _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./index-DM2X1kc6.mjs */ "./node_modules/@nextcloud/upload/dist/chunks/index-DM2X1kc6.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js */ "./node_modules/@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDialog.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDialog.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDateTime.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDateTime.mjs"); - - - - - - - - - - - -const b = { - name: "ArrowRightIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var x = function() { - var e = this, t = e._self._c; - return t("span", e._b({ staticClass: "material-design-icon arrow-right-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { - return e.$emit("click", s); - } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, N = [], $ = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - b, - x, - N, - !1, - null, - null, - null, - null -); -const L = $.exports, z = { - name: "CloseIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var F = function() { - var e = this, t = e._self._c; - return t("span", e._b({ staticClass: "material-design-icon close-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { - return e.$emit("click", s); - } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, P = [], A = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - z, - F, - P, - !1, - null, - null, - null, - null -); -const R = A.exports, I = { - name: "FileIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var B = function() { - var e = this, t = e._self._c; - return t("span", e._b({ staticClass: "material-design-icon file-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { - return e.$emit("click", s); - } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, E = [], O = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - I, - B, - E, - !1, - null, - null, - null, - null -); -const M = O.exports, U = { - name: "FolderIcon", - emits: ["click"], - props: { - title: { - type: String - }, - fillColor: { - type: String, - default: "currentColor" - }, - size: { - type: Number, - default: 24 - } - } -}; -var V = function() { - var e = this, t = e._self._c; - return t("span", e._b({ staticClass: "material-design-icon folder-icon", attrs: { "aria-hidden": e.title ? null : !0, "aria-label": e.title, role: "img" }, on: { click: function(s) { - return e.$emit("click", s); - } } }, "span", e.$attrs, !1), [t("svg", { staticClass: "material-design-icon__svg", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: "0 0 24 24" } }, [t("path", { attrs: { d: "M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z" } }, [e.title ? t("title", [e._v(e._s(e.title))]) : e._e()])])]); -}, q = [], D = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - U, - V, - q, - !1, - null, - null, - null, - null -); -const T = D.exports, h = 64, H = (0,vue__WEBPACK_IMPORTED_MODULE_10__.defineComponent)({ - name: "NodesPicker", - components: { - FileSvg: M, - FolderSvg: T, - NcCheckboxRadioSwitch: _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_5__["default"], - NcDateTime: _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_9__["default"] - }, - props: { - incoming: { - type: [File, Object], - required: !0 - }, - existing: { - type: Object, - required: !0 - }, - newSelected: { - type: Array, - required: !0 - }, - oldSelected: { - type: Array, - required: !0 - } - }, - data() { - return { - asyncPreview: null - }; - }, - computed: { - /** - * Whether the incoming or existing file is selected. - * This is used by the parent component to ensure - * that the user has selected at least one of the two files. - */ - isEnoughSelected() { - return this.isChecked(this.incoming, this.newSelected) || this.isChecked(this.existing, this.oldSelected); - }, - incomingPreview() { - return this.asyncPreview ? this.asyncPreview : this.previewUrl(this.incoming); - }, - existingPreview() { - return this.previewUrl(this.existing); - }, - incomingLastModified() { - return this.lastModified(this.incoming); - }, - existingLastModified() { - return this.lastModified(this.existing); - } - }, - methods: { - lastModified(i) { - return (i instanceof File ? new Date(i.lastModified) : i.mtime) ?? null; - }, - size(i) { - return i.size ? (0,_nextcloud_files__WEBPACK_IMPORTED_MODULE_2__.formatFileSize)(i.size, !0) : (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t)("Unknown size"); - }, - previewUrl(i) { - if (i instanceof File) { - this.previewImage(i).then((e) => { - this.asyncPreview = e; - }); - return; - } - if (i.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_2__.FileType.Folder) - return null; - try { - const e = i.attributes.previewUrl || (0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_8__.generateUrl)("/core/preview?fileId={fileid}", { - fileid: i.fileid - }), t = new URL(window.location.origin + e); - return t.searchParams.set("x", h.toString()), t.searchParams.set("y", h.toString()), t.searchParams.set("mimeFallback", "true"), t.href; - } catch { - return null; - } - }, - isFolder(i) { - return i.type === _nextcloud_files__WEBPACK_IMPORTED_MODULE_2__.FileType.Folder || i.type === "httpd/unix-directory"; - }, - isChecked(i, e) { - return e.includes(i); - }, - onUpdateIncomingChecked(i) { - i ? this.$emit("update:newSelected", [this.incoming, ...this.newSelected]) : this.$emit("update:newSelected", this.newSelected.filter((e) => e !== this.incoming)); - }, - onUpdateExistingChecked(i) { - i ? this.$emit("update:oldSelected", [this.existing, ...this.oldSelected]) : this.$emit("update:oldSelected", this.oldSelected.filter((e) => e !== this.existing)); - }, - /** - * Get the preview Image of a file - * @param file the soon-to-be-uploaded File - */ - async previewImage(i) { - return new Promise((e) => { - if (i.type.startsWith("image/")) { - const t = new FileReader(); - t.onload = async (s) => { - const l = s?.target?.result; - if (l instanceof ArrayBuffer) { - const n = new Blob([l], { type: i.type }), c = URL.createObjectURL(n); - e(c); - return; - } - e(null); - }, t.readAsArrayBuffer(i); - } - }); - }, - t: _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t - } -}); -var Z = function() { - var e = this, t = e._self._c; - return e._self._setupProxy, t("fieldset", { staticClass: "node-picker__wrapper", attrs: { "data-cy-conflict-picker-fieldset": e.existing.basename } }, [t("legend", [e._v(e._s(e.existing.basename))]), t("NcCheckboxRadioSwitch", { attrs: { checked: e.isChecked(e.incoming, e.newSelected), required: !e.isEnoughSelected, "data-cy-conflict-picker-input-incoming": e.existing.basename }, on: { "update:checked": e.onUpdateIncomingChecked } }, [t("span", { staticClass: "node-picker node-picker--incoming" }, [e.incomingPreview ? t("img", { staticClass: "node-picker__preview", attrs: { src: e.incomingPreview, alt: e.t("Preview image"), loading: "lazy" } }) : [e.isFolder(e.existing) ? t("FolderSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } }) : t("FileSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } })], t("span", { staticClass: "node-picker__desc" }, [t("span", { staticClass: "node-picker__name" }, [e._v(e._s(e.t("New version")))]), e.incomingLastModified ? t("NcDateTime", { staticClass: "node-picker__mtime", attrs: { timestamp: e.incomingLastModified, "relative-time": !1, format: { timeStyle: "short", dateStyle: "medium" } } }) : t("span", { staticClass: "node-picker__mtime" }, [e._v(" " + e._s(e.t("Last modified date unknown")) + " ")]), t("span", { staticClass: "node-picker__size" }, [e._v(e._s(e.size(e.incoming)))])], 1)], 2)]), t("NcCheckboxRadioSwitch", { attrs: { checked: e.isChecked(e.existing, e.oldSelected), required: !e.isEnoughSelected, "data-cy-conflict-picker-input-existing": e.existing.basename }, on: { "update:checked": e.onUpdateExistingChecked } }, [t("span", { staticClass: "node-picker node-picker--existing" }, [e.existingPreview ? t("img", { staticClass: "node-picker__preview", attrs: { src: e.existingPreview, alt: e.t("Preview image"), loading: "lazy" } }) : [e.isFolder(e.existing) ? t("FolderSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } }) : t("FileSvg", { staticClass: "node-picker__icon", attrs: { size: 48 } })], t("span", { staticClass: "node-picker__desc" }, [t("span", { staticClass: "node-picker__name" }, [e._v(e._s(e.t("Existing version")))]), e.existingLastModified ? t("NcDateTime", { staticClass: "node-picker__mtime", attrs: { timestamp: e.existingLastModified, "relative-time": !1, format: { timeStyle: "short", dateStyle: "medium" } } }) : t("span", { staticClass: "node-picker__mtime" }, [e._v(" " + e._s(e.t("Last modified date unknown")) + " ")]), t("span", { staticClass: "node-picker__size" }, [e._v(e._s(e.size(e.existing)))])], 1)], 2)])], 1); -}, j = [], W = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - H, - Z, - j, - !1, - null, - "f85db9fe", - null, - null -); -const Y = W.exports, G = (0,vue__WEBPACK_IMPORTED_MODULE_10__.defineComponent)({ - name: "ConflictPicker", - components: { - ArrowRight: L, - Close: R, - NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_7__["default"], - NcCheckboxRadioSwitch: _nextcloud_vue_dist_Components_NcCheckboxRadioSwitch_js__WEBPACK_IMPORTED_MODULE_5__["default"], - NcDialog: _nextcloud_vue_dist_Components_NcDialog_js__WEBPACK_IMPORTED_MODULE_6__["default"], - NodesPicker: Y - }, - props: { - /** Directory/context file name */ - dirname: { - type: String, - default: "" - }, - /** All the existing files in the current directory */ - content: { - type: Array, - required: !0 - }, - /** New files being moved/uploaded */ - conflicts: { - type: Array, - required: !0 - } - }, - emits: ["cancel", "submit"], - data() { - return { - // computed list of conflicting files already present in the directory - files: [], - opened: !0, - blockedTitle: (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t)("You need to select at least one version of each file to continue."), - newSelected: [], - oldSelected: [] - }; - }, - computed: { - name() { - return this?.dirname?.trim?.() !== "" ? (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.a)("{count} file conflict in {dirname}", "{count} file conflicts in {dirname}", this.conflicts.length, { - count: this.conflicts.length, - dirname: this.dirname - }) : (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.a)("{count} file conflict", "{count} files conflict", this.conflicts.length, { count: this.conflicts.length }); - }, - skipButtonLabel() { - return (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.a)("Skip this file", "Skip {count} files", this.conflicts.length, { count: this.conflicts.length }); - }, - // Select all incoming files - selectAllNewBind() { - const i = this.isNoneNewSelected || this.isSomeNewSelected ? this.t("Select all") : this.t("Unselect all"); - return { - "aria-label": i, - checked: this.isAllNewSelected, - indeterminate: this.isSomeNewSelected, - title: i - }; - }, - isAllNewSelected() { - return this.newSelected.length === this.conflicts.length; - }, - isNoneNewSelected() { - return this.newSelected.length === 0; - }, - isSomeNewSelected() { - return !this.isAllNewSelected && !this.isNoneNewSelected; - }, - // Select all existing files - selectAllOldBind() { - const i = this.isNoneOldSelected || this.isSomeOldSelected ? this.t("Select all") : this.t("Unselect all"); - return { - "aria-label": i, - checked: this.isAllOldSelected, - indeterminate: this.isSomeOldSelected, - title: i - }; - }, - isAllOldSelected() { - return this.oldSelected.length === this.files.length; - }, - isNoneOldSelected() { - return this.oldSelected.length === 0; - }, - isSomeOldSelected() { - return !this.isAllOldSelected && !this.isNoneOldSelected; - }, - // Global handlings - isEnoughSelected() { - return this.isAllOldSelected || this.isAllNewSelected ? !0 : this.$refs?.nodesPicker?.every?.((i) => i.isEnoughSelected); - } - }, - mounted() { - if (this.files = this.conflicts.map((i) => { - const e = i instanceof File ? i.name : i.basename; - return this.content.find((t) => t.basename === e); - }).filter(Boolean), this.conflicts.length === 0 || this.files.length === 0) { - const i = new Error("ConflictPicker: files and conflicts must not be empty"); - throw this.onCancel(i), i; - } - if (this.conflicts.length !== this.files.length) { - const i = new Error("ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array."); - throw this.onCancel(i), i; - } - _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("ConflictPicker initialised", { files: this.files, conflicts: this.conflicts, content: this.content }); - }, - methods: { - onCancel(i) { - this.opened = !1, this.$emit("cancel", i); - }, - onSkip() { - _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Conflict skipped. Ignoring all conflicting files"), this.opened = !1, this.$emit("submit", { - selected: [], - renamed: [] - }); - }, - onSubmit() { - if (!this.isEnoughSelected) { - this.scrollValidityInputIntoView(), this.$refs.form.reportValidity(), (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_3__.showError)(this.blockedTitle); - return; - } - const i = this.oldSelected.map((n) => n.basename), e = this.content.map((n) => n.basename), t = [], s = this.newSelected.filter((n) => { - const c = n instanceof File ? n.name : n.basename; - return i.includes(c); - }); - s.length > 0 && s.forEach((n) => { - const c = n instanceof File ? n.name : n.basename, u = this.getUniqueName(c, e); - if (n instanceof File) { - Object.defineProperty(n, "name", { value: u }), t.push(n); - return; - } - n.rename(u), t.push(n); - }); - const l = this.newSelected.filter((n) => { - const c = n instanceof File ? n.name : n.basename; - return !i.includes(c) && !s.includes(n); - }); - _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Conflict resolved", { selected: l, renamed: t }), this.opened = !1, this.$emit("submit", { - selected: l, - renamed: t - }); - }, - /** - * Get a unique name for a file based - * on the existing directory content. - * @param {string} name The original file name with extension - * @param {string} names The existing directory content names - * @return {string} A unique name - * TODO: migrate to @nextcloud/files - */ - getUniqueName(i, e) { - let t = i, s = 1; - for (; e.includes(t); ) { - const l = (0,path__WEBPACK_IMPORTED_MODULE_1__.extname)(i); - t = `${(0,path__WEBPACK_IMPORTED_MODULE_1__.basename)(i, l)} (${s++})${l}`; - } - return t; - }, - /** - * Scroll the first invalid input into view. - * This is needed because the browser uses behavior: "nearest" by default. - */ - scrollValidityInputIntoView() { - const i = '.checkbox-radio-switch input[type="checkbox"]'; - [...this.$el.querySelectorAll(i)].forEach((s) => s?.setCustomValidity?.("")); - const t = this.$el.querySelector(i + ":invalid"); - t && (t.setCustomValidity(this.blockedTitle), t.scrollIntoView({ behavior: "instant", block: "center" })); - }, - onSelectAllNew(i) { - i ? (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Selected all new files"), this.newSelected = this.conflicts) : (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Cleared new selection"), this.newSelected = []); - }, - onSelectAllOld(i) { - i ? (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Selected all existing files"), this.oldSelected = this.files) : (_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.l.debug("Cleared old selection"), this.oldSelected = []); - }, - t: _index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.t - } -}); -var J = function() { - var e = this, t = e._self._c; - return e._self._setupProxy, t("NcDialog", { staticClass: "conflict-picker", attrs: { "data-cy-conflict-picker": "", "close-on-click-outside": !1, "can-close": !0, show: e.opened, name: e.name, size: "large" }, on: { closing: e.onCancel }, scopedSlots: e._u([{ key: "actions", fn: function() { - return [t("NcButton", { attrs: { "aria-label": e.t("Cancel"), title: e.t("Cancel the entire operation"), "data-cy-conflict-picker-cancel": "", type: "tertiary" }, on: { click: e.onCancel }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t("Close", { attrs: { size: 20 } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(e.t("Cancel")) + " ")]), t("span", { staticClass: "dialog__actions-separator" }), t("NcButton", { attrs: { "aria-label": e.skipButtonLabel, "data-cy-conflict-picker-skip": "" }, on: { click: e.onSkip }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t("Close", { attrs: { size: 20 } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(e.skipButtonLabel) + " ")]), t("NcButton", { class: { "button-vue--disabled": !e.isEnoughSelected }, attrs: { "aria-label": e.t("Continue"), title: e.isEnoughSelected ? "" : e.blockedTitle, "data-cy-conflict-picker-submit": "", "native-type": "submit", type: "primary" }, on: { click: function(s) { - return s.stopPropagation(), s.preventDefault(), e.onSubmit.apply(null, arguments); - } }, scopedSlots: e._u([{ key: "icon", fn: function() { - return [t("ArrowRight", { attrs: { size: 20 } })]; - }, proxy: !0 }]) }, [e._v(" " + e._s(e.t("Continue")) + " ")])]; - }, proxy: !0 }]) }, [t("div", { staticClass: "conflict-picker__header" }, [t("p", { staticClass: "conflict-picker__description", attrs: { id: "conflict-picker-description" } }, [e._v(" " + e._s(e.t("Which files do you want to keep?"))), t("br"), e._v(" " + e._s(e.t("If you select both versions, the copied file will have a number added to its name."))), t("br"), e._v(" " + e._s(e.t("When an incoming folder is selected, any conflicting files within it will also be overwritten.")) + " ")])]), t("form", { ref: "form", staticClass: "conflict-picker__form", attrs: { "aria-labelledby": "conflict-picker-description", "data-cy-conflict-picker-form": "" }, on: { submit: function(s) { - return s.preventDefault(), s.stopPropagation(), e.onSubmit.apply(null, arguments); - } } }, [t("fieldset", { staticClass: "conflict-picker__all", attrs: { "data-cy-conflict-picker-fieldset": "all" } }, [t("legend", { staticClass: "hidden-visually" }, [e._v(" " + e._s(e.t("Select all checkboxes")) + " ")]), t("NcCheckboxRadioSwitch", e._b({ attrs: { "data-cy-conflict-picker-input-incoming": "all" }, on: { "update:checked": e.onSelectAllNew } }, "NcCheckboxRadioSwitch", e.selectAllNewBind, !1), [e._v(" " + e._s(e.t("Select all new files")) + " ")]), t("NcCheckboxRadioSwitch", e._b({ attrs: { "data-cy-conflict-picker-input-existing": "all" }, on: { "update:checked": e.onSelectAllOld } }, "NcCheckboxRadioSwitch", e.selectAllOldBind, !1), [e._v(" " + e._s(e.t("Select all existing files")) + " ")])], 1), e._l(e.files, function(s, l) { - return t("NodesPicker", { key: s.fileid, ref: "nodesPicker", refInFor: !0, attrs: { incoming: e.conflicts[l], existing: e.files[l], "new-selected": e.newSelected, "old-selected": e.oldSelected }, on: { "update:newSelected": function(n) { - e.newSelected = n; - }, "update:new-selected": function(n) { - e.newSelected = n; - }, "update:oldSelected": function(n) { - e.oldSelected = n; - }, "update:old-selected": function(n) { - e.oldSelected = n; - } } }); - })], 2)]); -}, K = [], Q = /* @__PURE__ */ (0,_index_DM2X1kc6_mjs__WEBPACK_IMPORTED_MODULE_4__.n)( - G, - J, - K, - !1, - null, - "12c4204f", - null, - null -); -const ae = Q.exports; - - - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map?v=16643b171a2f787f7569 \ No newline at end of file diff --git a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map b/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map deleted file mode 100644 index 853cd8027f42e..0000000000000 --- a/dist/node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs-node_modules_nextcloud_upload_dist_chunks_ConflictPicker-Bif6rCp6_mjs.js?v=16643b171a2f787f7569","mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA","sources":["webpack:///nextcloud/node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css","webpack://nextcloud/./node_modules/@nextcloud/upload/dist/assets/ConflictPicker-BVcoqXxT.css?116c","webpack:///nextcloud/node_modules/@nextcloud/upload/dist/chunks/ConflictPicker-Bif6rCp6.mjs"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.node-picker__wrapper[data-v-f85db9fe]:not(:last-of-type) {\n border-bottom: 1px solid var(--color-border);\n}\n.node-picker[data-v-f85db9fe] {\n display: flex;\n align-items: center;\n height: 64px;\n}\n.node-picker__icon[data-v-f85db9fe],\n.node-picker__preview[data-v-f85db9fe] {\n height: 64px;\n width: 64px;\n margin: 0 var(--secondary-margin);\n display: block;\n flex: 0 0 64px;\n}\n.node-picker__icon[data-v-f85db9fe] {\n color: var(--color-text-maxcontrast);\n}\n.node-picker__icon.folder-icon[data-v-f85db9fe] {\n color: var(--color-primary-element);\n}\n.node-picker__preview[data-v-f85db9fe] {\n overflow: hidden;\n border-radius: calc(var(--border-radius) * 2);\n background-position: center;\n background-size: cover;\n}\n.node-picker__desc[data-v-f85db9fe] {\n display: flex;\n flex-direction: column;\n}\n.node-picker__desc span[data-v-f85db9fe] {\n white-space: nowrap;\n}\n[data-v-12c4204f] .modal-container__content {\n display: flex;\n overflow: visible;\n flex-direction: column;\n}\n.conflict-picker[data-v-12c4204f] {\n --margin: 36px;\n --secondary-margin: 18px;\n}\n.conflict-picker__header[data-v-12c4204f] {\n position: sticky;\n z-index: 10;\n top: 0;\n padding: 0 var(--margin);\n padding-bottom: var(--secondary-margin);\n}\n.conflict-picker__form[data-v-12c4204f] {\n position: relative;\n overflow: auto;\n padding: 0 var(--margin);\n margin-top: calc(-1 * var(--secondary-margin));\n}\n.conflict-picker fieldset[data-v-12c4204f] {\n display: grid;\n width: 100%;\n margin-top: calc(var(--secondary-margin) * 1.5);\n padding-bottom: var(--secondary-margin);\n grid-template-columns: 1fr 1fr;\n}\n.conflict-picker fieldset[data-v-12c4204f] legend {\n display: flex;\n align-items: center;\n width: 100%;\n margin-bottom: calc(var(--secondary-margin) / 2);\n}\n.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] {\n position: sticky;\n top: 0;\n margin: 0;\n padding: var(--secondary-margin) 0;\n background-image:\n linear-gradient(\n to top,\n transparent,\n var(--color-main-background-blur) 10%,\n var(--color-main-background) 15%);\n}\n.conflict-picker fieldset.conflict-picker__all + fieldset[data-v-12c4204f] {\n margin-top: 0;\n}\n.conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] label {\n font-weight: 700;\n}\n.conflict-picker .button-vue--disabled[data-v-12c4204f] {\n cursor: default;\n opacity: .5;\n filter: saturate(.7);\n}\n.conflict-picker[data-v-12c4204f] .dialog__actions {\n width: auto;\n margin-inline: 12px;\n}\n.conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator {\n margin-left: auto;\n}\n@media screen and (max-width: 768px) {\n .conflict-picker[data-v-12c4204f] {\n --margin: var(--secondary-margin) !important;\n }\n .conflict-picker__description[data-v-12c4204f] {\n display: none !important;\n }\n .conflict-picker fieldset[data-v-12c4204f] {\n grid-template-columns: 1fr !important;\n }\n .conflict-picker fieldset.conflict-picker__all[data-v-12c4204f] {\n position: static;\n }\n}\n@media screen and (max-width: 512px) {\n .conflict-picker[data-v-12c4204f] .dialog__actions {\n flex-wrap: wrap;\n }\n .conflict-picker[data-v-12c4204f] .dialog__actions span.dialog__actions-separator {\n width: 100%;\n }\n}\n`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../css-loader/dist/cjs.js!./ConflictPicker-BVcoqXxT.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../css-loader/dist/cjs.js!./ConflictPicker-BVcoqXxT.css\";\n export default content && content.locals ? content.locals : undefined;\n","import '../assets/ConflictPicker-BVcoqXxT.css';\nimport { extname as _, basename as g } from \"path\";\nimport { defineComponent as m } from \"vue\";\nimport { formatFileSize as S, FileType as f } from \"@nextcloud/files\";\nimport { showError as k } from \"@nextcloud/dialogs\";\nimport { n as o, t as a, a as d, l as r } from \"./index-DM2X1kc6.mjs\";\nimport p from \"@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch.js\";\nimport v from \"@nextcloud/vue/dist/Components/NcDialog.js\";\nimport w from \"@nextcloud/vue/dist/Components/NcButton.js\";\nimport { generateUrl as y } from \"@nextcloud/router\";\nimport C from \"@nextcloud/vue/dist/Components/NcDateTime.js\";\nconst b = {\n name: \"ArrowRightIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar x = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon arrow-right-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, N = [], $ = /* @__PURE__ */ o(\n b,\n x,\n N,\n !1,\n null,\n null,\n null,\n null\n);\nconst L = $.exports, z = {\n name: \"CloseIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar F = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon close-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, P = [], A = /* @__PURE__ */ o(\n z,\n F,\n P,\n !1,\n null,\n null,\n null,\n null\n);\nconst R = A.exports, I = {\n name: \"FileIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar B = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon file-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M13,9V3.5L18.5,9M6,2C4.89,2 4,2.89 4,4V20A2,2 0 0,0 6,22H18A2,2 0 0,0 20,20V8L14,2H6Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, E = [], O = /* @__PURE__ */ o(\n I,\n B,\n E,\n !1,\n null,\n null,\n null,\n null\n);\nconst M = O.exports, U = {\n name: \"FolderIcon\",\n emits: [\"click\"],\n props: {\n title: {\n type: String\n },\n fillColor: {\n type: String,\n default: \"currentColor\"\n },\n size: {\n type: Number,\n default: 24\n }\n }\n};\nvar V = function() {\n var e = this, t = e._self._c;\n return t(\"span\", e._b({ staticClass: \"material-design-icon folder-icon\", attrs: { \"aria-hidden\": e.title ? null : !0, \"aria-label\": e.title, role: \"img\" }, on: { click: function(s) {\n return e.$emit(\"click\", s);\n } } }, \"span\", e.$attrs, !1), [t(\"svg\", { staticClass: \"material-design-icon__svg\", attrs: { fill: e.fillColor, width: e.size, height: e.size, viewBox: \"0 0 24 24\" } }, [t(\"path\", { attrs: { d: \"M10,4H4C2.89,4 2,4.89 2,6V18A2,2 0 0,0 4,20H20A2,2 0 0,0 22,18V8C22,6.89 21.1,6 20,6H12L10,4Z\" } }, [e.title ? t(\"title\", [e._v(e._s(e.title))]) : e._e()])])]);\n}, q = [], D = /* @__PURE__ */ o(\n U,\n V,\n q,\n !1,\n null,\n null,\n null,\n null\n);\nconst T = D.exports, h = 64, H = m({\n name: \"NodesPicker\",\n components: {\n FileSvg: M,\n FolderSvg: T,\n NcCheckboxRadioSwitch: p,\n NcDateTime: C\n },\n props: {\n incoming: {\n type: [File, Object],\n required: !0\n },\n existing: {\n type: Object,\n required: !0\n },\n newSelected: {\n type: Array,\n required: !0\n },\n oldSelected: {\n type: Array,\n required: !0\n }\n },\n data() {\n return {\n asyncPreview: null\n };\n },\n computed: {\n /**\n * Whether the incoming or existing file is selected.\n * This is used by the parent component to ensure\n * that the user has selected at least one of the two files.\n */\n isEnoughSelected() {\n return this.isChecked(this.incoming, this.newSelected) || this.isChecked(this.existing, this.oldSelected);\n },\n incomingPreview() {\n return this.asyncPreview ? this.asyncPreview : this.previewUrl(this.incoming);\n },\n existingPreview() {\n return this.previewUrl(this.existing);\n },\n incomingLastModified() {\n return this.lastModified(this.incoming);\n },\n existingLastModified() {\n return this.lastModified(this.existing);\n }\n },\n methods: {\n lastModified(i) {\n return (i instanceof File ? new Date(i.lastModified) : i.mtime) ?? null;\n },\n size(i) {\n return i.size ? S(i.size, !0) : a(\"Unknown size\");\n },\n previewUrl(i) {\n if (i instanceof File) {\n this.previewImage(i).then((e) => {\n this.asyncPreview = e;\n });\n return;\n }\n if (i.type === f.Folder)\n return null;\n try {\n const e = i.attributes.previewUrl || y(\"/core/preview?fileId={fileid}\", {\n fileid: i.fileid\n }), t = new URL(window.location.origin + e);\n return t.searchParams.set(\"x\", h.toString()), t.searchParams.set(\"y\", h.toString()), t.searchParams.set(\"mimeFallback\", \"true\"), t.href;\n } catch {\n return null;\n }\n },\n isFolder(i) {\n return i.type === f.Folder || i.type === \"httpd/unix-directory\";\n },\n isChecked(i, e) {\n return e.includes(i);\n },\n onUpdateIncomingChecked(i) {\n i ? this.$emit(\"update:newSelected\", [this.incoming, ...this.newSelected]) : this.$emit(\"update:newSelected\", this.newSelected.filter((e) => e !== this.incoming));\n },\n onUpdateExistingChecked(i) {\n i ? this.$emit(\"update:oldSelected\", [this.existing, ...this.oldSelected]) : this.$emit(\"update:oldSelected\", this.oldSelected.filter((e) => e !== this.existing));\n },\n /**\n * Get the preview Image of a file\n * @param file the soon-to-be-uploaded File\n */\n async previewImage(i) {\n return new Promise((e) => {\n if (i.type.startsWith(\"image/\")) {\n const t = new FileReader();\n t.onload = async (s) => {\n const l = s?.target?.result;\n if (l instanceof ArrayBuffer) {\n const n = new Blob([l], { type: i.type }), c = URL.createObjectURL(n);\n e(c);\n return;\n }\n e(null);\n }, t.readAsArrayBuffer(i);\n }\n });\n },\n t: a\n }\n});\nvar Z = function() {\n var e = this, t = e._self._c;\n return e._self._setupProxy, t(\"fieldset\", { staticClass: \"node-picker__wrapper\", attrs: { \"data-cy-conflict-picker-fieldset\": e.existing.basename } }, [t(\"legend\", [e._v(e._s(e.existing.basename))]), t(\"NcCheckboxRadioSwitch\", { attrs: { checked: e.isChecked(e.incoming, e.newSelected), required: !e.isEnoughSelected, \"data-cy-conflict-picker-input-incoming\": e.existing.basename }, on: { \"update:checked\": e.onUpdateIncomingChecked } }, [t(\"span\", { staticClass: \"node-picker node-picker--incoming\" }, [e.incomingPreview ? t(\"img\", { staticClass: \"node-picker__preview\", attrs: { src: e.incomingPreview, alt: e.t(\"Preview image\"), loading: \"lazy\" } }) : [e.isFolder(e.existing) ? t(\"FolderSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } }) : t(\"FileSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } })], t(\"span\", { staticClass: \"node-picker__desc\" }, [t(\"span\", { staticClass: \"node-picker__name\" }, [e._v(e._s(e.t(\"New version\")))]), e.incomingLastModified ? t(\"NcDateTime\", { staticClass: \"node-picker__mtime\", attrs: { timestamp: e.incomingLastModified, \"relative-time\": !1, format: { timeStyle: \"short\", dateStyle: \"medium\" } } }) : t(\"span\", { staticClass: \"node-picker__mtime\" }, [e._v(\" \" + e._s(e.t(\"Last modified date unknown\")) + \" \")]), t(\"span\", { staticClass: \"node-picker__size\" }, [e._v(e._s(e.size(e.incoming)))])], 1)], 2)]), t(\"NcCheckboxRadioSwitch\", { attrs: { checked: e.isChecked(e.existing, e.oldSelected), required: !e.isEnoughSelected, \"data-cy-conflict-picker-input-existing\": e.existing.basename }, on: { \"update:checked\": e.onUpdateExistingChecked } }, [t(\"span\", { staticClass: \"node-picker node-picker--existing\" }, [e.existingPreview ? t(\"img\", { staticClass: \"node-picker__preview\", attrs: { src: e.existingPreview, alt: e.t(\"Preview image\"), loading: \"lazy\" } }) : [e.isFolder(e.existing) ? t(\"FolderSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } }) : t(\"FileSvg\", { staticClass: \"node-picker__icon\", attrs: { size: 48 } })], t(\"span\", { staticClass: \"node-picker__desc\" }, [t(\"span\", { staticClass: \"node-picker__name\" }, [e._v(e._s(e.t(\"Existing version\")))]), e.existingLastModified ? t(\"NcDateTime\", { staticClass: \"node-picker__mtime\", attrs: { timestamp: e.existingLastModified, \"relative-time\": !1, format: { timeStyle: \"short\", dateStyle: \"medium\" } } }) : t(\"span\", { staticClass: \"node-picker__mtime\" }, [e._v(\" \" + e._s(e.t(\"Last modified date unknown\")) + \" \")]), t(\"span\", { staticClass: \"node-picker__size\" }, [e._v(e._s(e.size(e.existing)))])], 1)], 2)])], 1);\n}, j = [], W = /* @__PURE__ */ o(\n H,\n Z,\n j,\n !1,\n null,\n \"f85db9fe\",\n null,\n null\n);\nconst Y = W.exports, G = m({\n name: \"ConflictPicker\",\n components: {\n ArrowRight: L,\n Close: R,\n NcButton: w,\n NcCheckboxRadioSwitch: p,\n NcDialog: v,\n NodesPicker: Y\n },\n props: {\n /** Directory/context file name */\n dirname: {\n type: String,\n default: \"\"\n },\n /** All the existing files in the current directory */\n content: {\n type: Array,\n required: !0\n },\n /** New files being moved/uploaded */\n conflicts: {\n type: Array,\n required: !0\n }\n },\n emits: [\"cancel\", \"submit\"],\n data() {\n return {\n // computed list of conflicting files already present in the directory\n files: [],\n opened: !0,\n blockedTitle: a(\"You need to select at least one version of each file to continue.\"),\n newSelected: [],\n oldSelected: []\n };\n },\n computed: {\n name() {\n return this?.dirname?.trim?.() !== \"\" ? d(\"{count} file conflict in {dirname}\", \"{count} file conflicts in {dirname}\", this.conflicts.length, {\n count: this.conflicts.length,\n dirname: this.dirname\n }) : d(\"{count} file conflict\", \"{count} files conflict\", this.conflicts.length, { count: this.conflicts.length });\n },\n skipButtonLabel() {\n return d(\"Skip this file\", \"Skip {count} files\", this.conflicts.length, { count: this.conflicts.length });\n },\n // Select all incoming files\n selectAllNewBind() {\n const i = this.isNoneNewSelected || this.isSomeNewSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": i,\n checked: this.isAllNewSelected,\n indeterminate: this.isSomeNewSelected,\n title: i\n };\n },\n isAllNewSelected() {\n return this.newSelected.length === this.conflicts.length;\n },\n isNoneNewSelected() {\n return this.newSelected.length === 0;\n },\n isSomeNewSelected() {\n return !this.isAllNewSelected && !this.isNoneNewSelected;\n },\n // Select all existing files\n selectAllOldBind() {\n const i = this.isNoneOldSelected || this.isSomeOldSelected ? this.t(\"Select all\") : this.t(\"Unselect all\");\n return {\n \"aria-label\": i,\n checked: this.isAllOldSelected,\n indeterminate: this.isSomeOldSelected,\n title: i\n };\n },\n isAllOldSelected() {\n return this.oldSelected.length === this.files.length;\n },\n isNoneOldSelected() {\n return this.oldSelected.length === 0;\n },\n isSomeOldSelected() {\n return !this.isAllOldSelected && !this.isNoneOldSelected;\n },\n // Global handlings\n isEnoughSelected() {\n return this.isAllOldSelected || this.isAllNewSelected ? !0 : this.$refs?.nodesPicker?.every?.((i) => i.isEnoughSelected);\n }\n },\n mounted() {\n if (this.files = this.conflicts.map((i) => {\n const e = i instanceof File ? i.name : i.basename;\n return this.content.find((t) => t.basename === e);\n }).filter(Boolean), this.conflicts.length === 0 || this.files.length === 0) {\n const i = new Error(\"ConflictPicker: files and conflicts must not be empty\");\n throw this.onCancel(i), i;\n }\n if (this.conflicts.length !== this.files.length) {\n const i = new Error(\"ConflictPicker: files and conflicts must have the same length. Make sure you filter out non conflicting files from the conflicts array.\");\n throw this.onCancel(i), i;\n }\n r.debug(\"ConflictPicker initialised\", { files: this.files, conflicts: this.conflicts, content: this.content });\n },\n methods: {\n onCancel(i) {\n this.opened = !1, this.$emit(\"cancel\", i);\n },\n onSkip() {\n r.debug(\"Conflict skipped. Ignoring all conflicting files\"), this.opened = !1, this.$emit(\"submit\", {\n selected: [],\n renamed: []\n });\n },\n onSubmit() {\n if (!this.isEnoughSelected) {\n this.scrollValidityInputIntoView(), this.$refs.form.reportValidity(), k(this.blockedTitle);\n return;\n }\n const i = this.oldSelected.map((n) => n.basename), e = this.content.map((n) => n.basename), t = [], s = this.newSelected.filter((n) => {\n const c = n instanceof File ? n.name : n.basename;\n return i.includes(c);\n });\n s.length > 0 && s.forEach((n) => {\n const c = n instanceof File ? n.name : n.basename, u = this.getUniqueName(c, e);\n if (n instanceof File) {\n Object.defineProperty(n, \"name\", { value: u }), t.push(n);\n return;\n }\n n.rename(u), t.push(n);\n });\n const l = this.newSelected.filter((n) => {\n const c = n instanceof File ? n.name : n.basename;\n return !i.includes(c) && !s.includes(n);\n });\n r.debug(\"Conflict resolved\", { selected: l, renamed: t }), this.opened = !1, this.$emit(\"submit\", {\n selected: l,\n renamed: t\n });\n },\n /**\n * Get a unique name for a file based\n * on the existing directory content.\n * @param {string} name The original file name with extension\n * @param {string} names The existing directory content names\n * @return {string} A unique name\n * TODO: migrate to @nextcloud/files\n */\n getUniqueName(i, e) {\n let t = i, s = 1;\n for (; e.includes(t); ) {\n const l = _(i);\n t = `${g(i, l)} (${s++})${l}`;\n }\n return t;\n },\n /**\n * Scroll the first invalid input into view.\n * This is needed because the browser uses behavior: \"nearest\" by default.\n */\n scrollValidityInputIntoView() {\n const i = '.checkbox-radio-switch input[type=\"checkbox\"]';\n [...this.$el.querySelectorAll(i)].forEach((s) => s?.setCustomValidity?.(\"\"));\n const t = this.$el.querySelector(i + \":invalid\");\n t && (t.setCustomValidity(this.blockedTitle), t.scrollIntoView({ behavior: \"instant\", block: \"center\" }));\n },\n onSelectAllNew(i) {\n i ? (r.debug(\"Selected all new files\"), this.newSelected = this.conflicts) : (r.debug(\"Cleared new selection\"), this.newSelected = []);\n },\n onSelectAllOld(i) {\n i ? (r.debug(\"Selected all existing files\"), this.oldSelected = this.files) : (r.debug(\"Cleared old selection\"), this.oldSelected = []);\n },\n t: a\n }\n});\nvar J = function() {\n var e = this, t = e._self._c;\n return e._self._setupProxy, t(\"NcDialog\", { staticClass: \"conflict-picker\", attrs: { \"data-cy-conflict-picker\": \"\", \"close-on-click-outside\": !1, \"can-close\": !0, show: e.opened, name: e.name, size: \"large\" }, on: { closing: e.onCancel }, scopedSlots: e._u([{ key: \"actions\", fn: function() {\n return [t(\"NcButton\", { attrs: { \"aria-label\": e.t(\"Cancel\"), title: e.t(\"Cancel the entire operation\"), \"data-cy-conflict-picker-cancel\": \"\", type: \"tertiary\" }, on: { click: e.onCancel }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Close\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.t(\"Cancel\")) + \" \")]), t(\"span\", { staticClass: \"dialog__actions-separator\" }), t(\"NcButton\", { attrs: { \"aria-label\": e.skipButtonLabel, \"data-cy-conflict-picker-skip\": \"\" }, on: { click: e.onSkip }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"Close\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.skipButtonLabel) + \" \")]), t(\"NcButton\", { class: { \"button-vue--disabled\": !e.isEnoughSelected }, attrs: { \"aria-label\": e.t(\"Continue\"), title: e.isEnoughSelected ? \"\" : e.blockedTitle, \"data-cy-conflict-picker-submit\": \"\", \"native-type\": \"submit\", type: \"primary\" }, on: { click: function(s) {\n return s.stopPropagation(), s.preventDefault(), e.onSubmit.apply(null, arguments);\n } }, scopedSlots: e._u([{ key: \"icon\", fn: function() {\n return [t(\"ArrowRight\", { attrs: { size: 20 } })];\n }, proxy: !0 }]) }, [e._v(\" \" + e._s(e.t(\"Continue\")) + \" \")])];\n }, proxy: !0 }]) }, [t(\"div\", { staticClass: \"conflict-picker__header\" }, [t(\"p\", { staticClass: \"conflict-picker__description\", attrs: { id: \"conflict-picker-description\" } }, [e._v(\" \" + e._s(e.t(\"Which files do you want to keep?\"))), t(\"br\"), e._v(\" \" + e._s(e.t(\"If you select both versions, the copied file will have a number added to its name.\"))), t(\"br\"), e._v(\" \" + e._s(e.t(\"When an incoming folder is selected, any conflicting files within it will also be overwritten.\")) + \" \")])]), t(\"form\", { ref: \"form\", staticClass: \"conflict-picker__form\", attrs: { \"aria-labelledby\": \"conflict-picker-description\", \"data-cy-conflict-picker-form\": \"\" }, on: { submit: function(s) {\n return s.preventDefault(), s.stopPropagation(), e.onSubmit.apply(null, arguments);\n } } }, [t(\"fieldset\", { staticClass: \"conflict-picker__all\", attrs: { \"data-cy-conflict-picker-fieldset\": \"all\" } }, [t(\"legend\", { staticClass: \"hidden-visually\" }, [e._v(\" \" + e._s(e.t(\"Select all checkboxes\")) + \" \")]), t(\"NcCheckboxRadioSwitch\", e._b({ attrs: { \"data-cy-conflict-picker-input-incoming\": \"all\" }, on: { \"update:checked\": e.onSelectAllNew } }, \"NcCheckboxRadioSwitch\", e.selectAllNewBind, !1), [e._v(\" \" + e._s(e.t(\"Select all new files\")) + \" \")]), t(\"NcCheckboxRadioSwitch\", e._b({ attrs: { \"data-cy-conflict-picker-input-existing\": \"all\" }, on: { \"update:checked\": e.onSelectAllOld } }, \"NcCheckboxRadioSwitch\", e.selectAllOldBind, !1), [e._v(\" \" + e._s(e.t(\"Select all existing files\")) + \" \")])], 1), e._l(e.files, function(s, l) {\n return t(\"NodesPicker\", { key: s.fileid, ref: \"nodesPicker\", refInFor: !0, attrs: { incoming: e.conflicts[l], existing: e.files[l], \"new-selected\": e.newSelected, \"old-selected\": e.oldSelected }, on: { \"update:newSelected\": function(n) {\n e.newSelected = n;\n }, \"update:new-selected\": function(n) {\n e.newSelected = n;\n }, \"update:oldSelected\": function(n) {\n e.oldSelected = n;\n }, \"update:old-selected\": function(n) {\n e.oldSelected = n;\n } } });\n })], 2)]);\n}, K = [], Q = /* @__PURE__ */ o(\n G,\n J,\n K,\n !1,\n null,\n \"12c4204f\",\n null,\n null\n);\nconst ae = Q.exports;\nexport {\n ae as default\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js b/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js deleted file mode 100644 index 477b956f80a4b..0000000000000 --- a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js +++ /dev/null @@ -1,26 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs"],{ - -/***/ "./node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs": -/*!*******************************************************************************!*\ - !*** ./node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs ***! - \*******************************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ NcAutoCompleteResult: () => (/* reexport safe */ _chunks_NcRichContenteditable_CEqdmoem_mjs__WEBPACK_IMPORTED_MODULE_1__.N), -/* harmony export */ NcMentionBubble: () => (/* reexport safe */ _chunks_index_uiNhPYvS_mjs__WEBPACK_IMPORTED_MODULE_0__.N), -/* harmony export */ "default": () => (/* reexport safe */ _chunks_NcRichContenteditable_CEqdmoem_mjs__WEBPACK_IMPORTED_MODULE_1__.a) -/* harmony export */ }); -/* harmony import */ var _chunks_index_uiNhPYvS_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../chunks/index-uiNhPYvS.mjs */ "./node_modules/@nextcloud/vue/dist/chunks/index-uiNhPYvS.mjs"); -/* harmony import */ var _chunks_NcRichContenteditable_CEqdmoem_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../chunks/NcRichContenteditable-CEqdmoem.mjs */ "./node_modules/@nextcloud/vue/dist/chunks/NcRichContenteditable-CEqdmoem.mjs"); - - - - - -/***/ }) - -}]); -//# sourceMappingURL=node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map?v=ffc12738fb24256850ac \ No newline at end of file diff --git a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map b/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map deleted file mode 100644 index 9502164ef4398..0000000000000 --- a/dist/node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs-node_modules_nextcloud_vue_dist_Components_NcRichContenteditable_mjs.js?v=ffc12738fb24256850ac","mappings":";;;;;;;;;;;;;;;;;AAAA;AACA;AAKA","sources":["webpack:///nextcloud/node_modules/@nextcloud/vue/dist/Components/NcRichContenteditable.mjs"],"sourcesContent":["import { N as t } from \"../chunks/index-uiNhPYvS.mjs\";\nimport { N as l, a as r } from \"../chunks/NcRichContenteditable-CEqdmoem.mjs\";\nexport {\n l as NcAutoCompleteResult,\n t as NcMentionBubble,\n r as default\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/dist/settings-apps-view-settings-apps-view.js b/dist/settings-apps-view-settings-apps-view.js deleted file mode 100644 index 18e1436a52354..0000000000000 --- a/dist/settings-apps-view-settings-apps-view.js +++ /dev/null @@ -1,6005 +0,0 @@ -"use strict"; -(self["webpackChunknextcloud"] = self["webpackChunknextcloud"] || []).push([["settings-apps-view"],{ - -/***/ "./apps/settings/src/constants/AppsConstants.js": -/*!******************************************************!*\ - !*** ./apps/settings/src/constants/AppsConstants.js ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ APPS_SECTION_ENUM: () => (/* binding */ APPS_SECTION_ENUM) -/* harmony export */ }); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/** - * @copyright 2022, Julia Kirschenheuter - * - * @author Julia Kirschenheuter - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - - - -/** Enum of verification constants, according to Apps */ -const APPS_SECTION_ENUM = Object.freeze({ - discover: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Discover'), - installed: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Your apps'), - enabled: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Active apps'), - disabled: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Disabled apps'), - updates: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Updates'), - 'app-bundles': (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'App bundles'), - featured: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Featured apps'), - supported: (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Supported apps') // From subscription -}); - -/***/ }), - -/***/ "./apps/settings/src/mixins/AppManagement.js": -/*!***************************************************!*\ - !*** ./apps/settings/src/mixins/AppManagement.js ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); -/* harmony import */ var _service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../service/rebuild-navigation.js */ "./apps/settings/src/service/rebuild-navigation.js"); -/** - * @copyright Copyright (c) 2019 Julius Härtl - * - * @author John Molakvoæ - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - computed: { - appGroups() { - return this.app.groups.map(group => { - return { - id: group, - name: group - }; - }); - }, - installing() { - return this.$store.getters.loading('install'); - }, - isLoading() { - return this.app && this.$store.getters.loading(this.app.id); - }, - enableButtonText() { - if (this.app.needsDownload) { - return t('settings', 'Download and enable'); - } - return t('settings', 'Enable'); - }, - forceEnableButtonText() { - if (this.app.needsDownload) { - return t('settings', 'Allow untested app'); - } - return t('settings', 'Allow untested app'); - }, - enableButtonTooltip() { - if (this.app.needsDownload) { - return t('settings', 'The app will be downloaded from the App Store'); - } - return null; - }, - forceEnableButtonTooltip() { - const base = t('settings', 'This app is not marked as compatible with your Nextcloud version. If you continue you will still be able to install the app. Note that the app might not work as expected.'); - if (this.app.needsDownload) { - return base + ' ' + t('settings', 'The app will be downloaded from the App Store'); - } - return base; - } - }, - data() { - return { - groupCheckedAppsData: false - }; - }, - mounted() { - if (this.app && this.app.groups && this.app.groups.length > 0) { - this.groupCheckedAppsData = true; - } - }, - methods: { - asyncFindGroup(query) { - return this.$store.dispatch('getGroups', { - search: query, - limit: 5, - offset: 0 - }); - }, - isLimitedToGroups(app) { - if (this.app.groups.length || this.groupCheckedAppsData) { - return true; - } - return false; - }, - setGroupLimit() { - if (!this.groupCheckedAppsData) { - this.$store.dispatch('enableApp', { - appId: this.app.id, - groups: [] - }); - } - }, - canLimitToGroups(app) { - if (app.types && app.types.includes('filesystem') || app.types.includes('prelogin') || app.types.includes('authentication') || app.types.includes('logging') || app.types.includes('prevent_group_restriction')) { - return false; - } - return true; - }, - addGroupLimitation(groupArray) { - const group = groupArray.pop(); - const groups = this.app.groups.concat([]).concat([group.id]); - this.$store.dispatch('enableApp', { - appId: this.app.id, - groups - }); - }, - removeGroupLimitation(group) { - const currentGroups = this.app.groups.concat([]); - const index = currentGroups.indexOf(group.id); - if (index > -1) { - currentGroups.splice(index, 1); - } - this.$store.dispatch('enableApp', { - appId: this.app.id, - groups: currentGroups - }); - }, - forceEnable(appId) { - this.$store.dispatch('forceEnableApp', { - appId, - groups: [] - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - enable(appId) { - this.$store.dispatch('enableApp', { - appId, - groups: [] - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - disable(appId) { - this.$store.dispatch('disableApp', { - appId - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - remove(appId) { - this.$store.dispatch('uninstallApp', { - appId - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - install(appId) { - this.$store.dispatch('enableApp', { - appId - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - }, - update(appId) { - this.$store.dispatch('updateApp', { - appId - }).then(response => { - (0,_service_rebuild_navigation_js__WEBPACK_IMPORTED_MODULE_1__["default"])(); - }).catch(error => { - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)(error); - }); - } - } -}); - -/***/ }), - -/***/ "./apps/settings/src/service/rebuild-navigation.js": -/*!*********************************************************!*\ - !*** ./apps/settings/src/service/rebuild-navigation.js ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (() => { - return _nextcloud_axios__WEBPACK_IMPORTED_MODULE_0__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_1__.generateOcsUrl)('core/navigation', 2) + '/apps?format=json').then(_ref => { - let { - data - } = _ref; - if (data.ocs.meta.statuscode !== 200) { - return; - } - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_2__.emit)('nextcloud:app-menu.refresh', { - apps: data.ocs.data - }); - window.dispatchEvent(new Event('resize')); - }); -}); - -/***/ }), - -/***/ "./apps/settings/src/composables/useAppIcon.ts": -/*!*****************************************************!*\ - !*** ./apps/settings/src/composables/useAppIcon.ts ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ useAppIcon: () => (/* binding */ useAppIcon) -/* harmony export */ }); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants/AppstoreCategoryIcons.ts */ "./apps/settings/src/constants/AppstoreCategoryIcons.ts"); -/* harmony import */ var _logger_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../logger.ts */ "./apps/settings/src/logger.ts"); - - - - -/** - * Get the app icon raw SVG for use with `NcIconSvgWrapper` (do never use without sanitizing) - * It has a fallback to the categroy icon. - * - * @param app The app to get the icon for - */ -function useAppIcon(app) { - const appIcon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.ref)(null); - /** - * Fallback value if no app icon available - */ - const categoryIcon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => { - var _flat$map$filter$at, _app$value$category, _app$value; - const path = (_flat$map$filter$at = [(_app$value$category = (_app$value = app.value) === null || _app$value === void 0 ? void 0 : _app$value.category) !== null && _app$value$category !== void 0 ? _app$value$category : []].flat().map(name => _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_0__["default"][name]).filter(icon => !!icon).at(0)) !== null && _flat$map$filter$at !== void 0 ? _flat$map$filter$at : _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiCog; - return path ? "") : null; - }); - (0,vue__WEBPACK_IMPORTED_MODULE_2__.watchEffect)(async () => { - var _app$value2; - // Note: Only variables until the first `await` will be watched! - if (!((_app$value2 = app.value) !== null && _app$value2 !== void 0 && _app$value2.preview)) { - appIcon.value = categoryIcon.value; - } else { - appIcon.value = null; - // Now try to load the real app icon - try { - const response = await window.fetch(app.value.preview); - const blob = await response.blob(); - const rawSvg = await blob.text(); - appIcon.value = rawSvg.replaceAll(/fill="#(fff|ffffff)([a-z0-9]{1,2})?"/ig, 'fill="currentColor"'); - } catch (error) { - appIcon.value = categoryIcon.value; - _logger_ts__WEBPACK_IMPORTED_MODULE_1__["default"].error('Could not load app icon', { - error - }); - } - } - }); - return { - appIcon - }; -} - -/***/ }), - -/***/ "./apps/settings/src/constants/AppstoreCategoryIcons.ts": -/*!**************************************************************!*\ - !*** ./apps/settings/src/constants/AppstoreCategoryIcons.ts ***! - \**************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/** - * @copyright Copyright (c) 2024 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -/** - * SVG paths used for appstore category icons - */ -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Object.freeze({ - // system special categories - discover: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiStarCircleOutline, - installed: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiAccount, - enabled: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiCheck, - disabled: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiClose, - bundles: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiArchive, - supported: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiStarShooting, - featured: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiStar, - updates: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiDownload, - // generic categories - auth: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiKey, - customization: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiCog, - dashboard: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiViewDashboard, - files: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiFolder, - games: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiControllerClassic, - integration: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiOpenInApp, - monitoring: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiMonitorEye, - multimedia: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiMultimedia, - office: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiFileDocumentEdit, - organization: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiOfficeBuilding, - search: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiMagnify, - security: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiSecurity, - social: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiAccountMultiple, - tools: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiTools, - workflow: _mdi_js__WEBPACK_IMPORTED_MODULE_0__.mdiClipboardFlow -})); - -/***/ }), - -/***/ "./apps/settings/src/store/apps-store.ts": -/*!***********************************************!*\ - !*** ./apps/settings/src/store/apps-store.ts ***! - \***********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ useAppsStore: () => (/* binding */ useAppsStore) -/* harmony export */ }); -/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); -/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var pinia__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! pinia */ "./node_modules/pinia/dist/pinia.mjs"); -/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); -/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../logger */ "./apps/settings/src/logger.ts"); -/* harmony import */ var _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../constants/AppstoreCategoryIcons.ts */ "./apps/settings/src/constants/AppstoreCategoryIcons.ts"); -/** - * @copyright Copyright (c) 2024 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - - - - - - - - -const showApiError = () => (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)((0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_2__.translate)('settings', 'An error occurred during the request. Unable to proceed.')); -const useAppsStore = (0,pinia__WEBPACK_IMPORTED_MODULE_7__.defineStore)('settings-apps', { - state: () => ({ - apps: [], - categories: [], - updateCount: (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_1__.loadState)('settings', 'appstoreUpdateCount', 0), - loading: { - apps: false, - categories: false - }, - loadingList: false, - gettingCategoriesPromise: null - }), - actions: { - async loadCategories() { - let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (this.categories.length > 0 && !force) { - return; - } - try { - this.loading.categories = true; - const { - data: categories - } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_4__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_3__.generateUrl)('settings/apps/categories')); - for (const category of categories) { - var _APPSTORE_CATEGORY_IC; - category.icon = (_APPSTORE_CATEGORY_IC = _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_6__["default"][category.id]) !== null && _APPSTORE_CATEGORY_IC !== void 0 ? _APPSTORE_CATEGORY_IC : ''; - } - this.$patch({ - categories - }); - } catch (error) { - _logger__WEBPACK_IMPORTED_MODULE_5__["default"].error(error); - showApiError(); - } finally { - this.loading.categories = false; - } - }, - async loadApps() { - let force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (this.apps.length > 0 && !force) { - return; - } - try { - this.loading.apps = true; - const { - data - } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_4__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_3__.generateUrl)('settings/apps/list')); - this.$patch({ - apps: data.apps - }); - } catch (error) { - _logger__WEBPACK_IMPORTED_MODULE_5__["default"].error(error); - showApiError(); - } finally { - this.loading.apps = false; - } - }, - getCategoryById(categoryId) { - var _this$categories$find; - return (_this$categories$find = this.categories.find(_ref => { - let { - id - } = _ref; - return id === categoryId; - })) !== null && _this$categories$find !== void 0 ? _this$categories$find : null; - }, - getAppById(appId) { - var _this$apps$find; - return (_this$apps$find = this.apps.find(_ref2 => { - let { - id - } = _ref2; - return id === appId; - })) !== null && _this$apps$find !== void 0 ? _this$apps$find : null; - } - } -}); - -/***/ }), - -/***/ "./apps/settings/src/utils/appDiscoverParser.ts": -/*!******************************************************!*\ - !*** ./apps/settings/src/utils/appDiscoverParser.ts ***! - \******************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ filterElements: () => (/* binding */ filterElements), -/* harmony export */ parseApiResponse: () => (/* binding */ parseApiResponse) -/* harmony export */ }); -/** - * @copyright Copyright (c) 2024 Ferdinand Thiessen - * - * @author Ferdinand Thiessen - * - * @license AGPL-3.0-or-later - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ -/** - * Helper to transform the JSON API results to proper frontend objects (app discover section elements) - * - * @param element The JSON API element to transform - */ -const parseApiResponse = element => { - var _element$type; - const appElement = { - ...element - }; - if (appElement.date) { - appElement.date = Date.parse(appElement.date); - } - if (appElement.expiryDate) { - appElement.expiryDate = Date.parse(appElement.expiryDate); - } - if (appElement.type === 'post') { - return appElement; - } else if (appElement.type === 'showcase') { - return appElement; - } else if (appElement.type === 'carousel') { - return appElement; - } - throw new Error("Invalid argument, app discover element with type ".concat((_element$type = element.type) !== null && _element$type !== void 0 ? _element$type : 'unknown', " is unknown")); -}; -/** - * Filter outdated or upcoming elements - * @param element Element to check - */ -const filterElements = element => { - const now = Date.now(); - // Element not yet published - if (element.date && element.date > now) { - return false; - } - // Element expired - if (element.expiryDate && element.expiryDate < now) { - return false; - } - return true; -}; - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts": -/*!*****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts ***! - \*****************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_2__.defineComponent)({ - __name: 'AppLevelBadge', - props: { - level: { - type: Number, - required: false - } - }, - setup(__props) { - const props = __props; - const isSupported = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => props.level === 300); - const isFeatured = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => props.level === 200); - const badgeIcon = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => isSupported.value ? _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStarShooting : _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiCheck); - const badgeText = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => isSupported.value ? (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Supported') : (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Featured')); - const badgeTitle = (0,vue__WEBPACK_IMPORTED_MODULE_2__.computed)(() => isSupported.value ? (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'This app is supported via your current Nextcloud subscription.') : (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Featured apps are developed by and within the community. They offer central functionality and are ready for production use.')); - return { - __sfc: true, - props, - isSupported, - isFeatured, - badgeIcon, - badgeText, - badgeTitle, - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts": -/*!*************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts ***! - \*************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_2__.defineComponent)({ - name: 'AppScore', - components: { - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_0__["default"] - }, - props: { - score: { - type: Number, - required: true - } - }, - setup() { - return { - mdiStar: _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStar, - mdiStarHalfFull: _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStarHalfFull, - mdiStarOutline: _mdi_js__WEBPACK_IMPORTED_MODULE_3__.mdiStarOutline - }; - }, - computed: { - title() { - const appScore = (this.score * 5).toFixed(1); - return (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Community rating: {score}/5', { - score: appScore - }); - }, - fullStars() { - return Math.floor(this.score * 5 + 0.25); - }, - emptyStars() { - return Math.min(Math.floor((1 - this.score) * 5 + 0.25), 5 - this.fullStars); - }, - hasHalfStar() { - return this.fullStars + this.emptyStars < 5; - } - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts": -/*!************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts ***! - \************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/dialogs */ "./node_modules/@nextcloud/dialogs/dist/index.mjs"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_router__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/router */ "./node_modules/@nextcloud/router/dist/index.mjs"); -/* harmony import */ var _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/axios */ "./node_modules/@nextcloud/axios/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcEmptyContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcEmptyContent.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); -/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../logger */ "./apps/settings/src/logger.ts"); -/* harmony import */ var _utils_appDiscoverParser_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../../utils/appDiscoverParser.ts */ "./apps/settings/src/utils/appDiscoverParser.ts"); - - - - - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_9__.defineComponent)({ - __name: 'AppStoreDiscoverSection', - setup(__props) { - const PostType = (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineAsyncComponent)(() => __webpack_require__.e(/*! import() */ "apps_settings_src_components_AppStoreDiscover_PostType_vue").then(__webpack_require__.bind(__webpack_require__, /*! ./PostType.vue */ "./apps/settings/src/components/AppStoreDiscover/PostType.vue"))); - const CarouselType = (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineAsyncComponent)(() => Promise.all(/*! import() */[__webpack_require__.e("apps_settings_src_components_AppStoreDiscover_PostType_vue"), __webpack_require__.e("apps_settings_src_components_AppStoreDiscover_CarouselType_vue")]).then(__webpack_require__.bind(__webpack_require__, /*! ./CarouselType.vue */ "./apps/settings/src/components/AppStoreDiscover/CarouselType.vue"))); - const ShowcaseType = (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineAsyncComponent)(() => Promise.all(/*! import() */[__webpack_require__.e("apps_settings_src_components_AppStoreDiscover_PostType_vue"), __webpack_require__.e("apps_settings_src_components_AppStoreDiscover_ShowcaseType_vue")]).then(__webpack_require__.bind(__webpack_require__, /*! ./ShowcaseType.vue */ "./apps/settings/src/components/AppStoreDiscover/ShowcaseType.vue"))); - const hasError = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)(false); - const elements = (0,vue__WEBPACK_IMPORTED_MODULE_9__.ref)([]); - /** - * Shuffle using the Fisher-Yates algorithm - * @param array The array to shuffle (in place) - */ - const shuffleArray = array => { - for (let i = array.length - 1; i > 0; i--) { - const j = Math.floor(Math.random() * (i + 1)); - [array[i], array[j]] = [array[j], array[i]]; - } - return array; - }; - /** - * Load the app discover section information - */ - (0,vue__WEBPACK_IMPORTED_MODULE_9__.onBeforeMount)(async () => { - try { - const { - data - } = await _nextcloud_axios__WEBPACK_IMPORTED_MODULE_3__["default"].get((0,_nextcloud_router__WEBPACK_IMPORTED_MODULE_2__.generateUrl)('/settings/api/apps/discover')); - if (data.length === 0) { - _logger__WEBPACK_IMPORTED_MODULE_7__["default"].info('No app discover elements available (empty response)'); - hasError.value = true; - return; - } - // Parse data to ensure dates are useable and then filter out expired or future elements - const parsedElements = data.map(_utils_appDiscoverParser_ts__WEBPACK_IMPORTED_MODULE_8__.parseApiResponse).filter(_utils_appDiscoverParser_ts__WEBPACK_IMPORTED_MODULE_8__.filterElements); - // Shuffle elements to make it looks more interesting - const shuffledElements = shuffleArray(parsedElements); - // Sort pinned elements first - shuffledElements.sort((a, b) => { - var _a$order, _b$order; - return ((_a$order = a.order) !== null && _a$order !== void 0 ? _a$order : Infinity) < ((_b$order = b.order) !== null && _b$order !== void 0 ? _b$order : Infinity) ? -1 : 1; - }); - // Set the elements to the UI - elements.value = shuffledElements; - } catch (error) { - hasError.value = true; - _logger__WEBPACK_IMPORTED_MODULE_7__["default"].error(error); - (0,_nextcloud_dialogs__WEBPACK_IMPORTED_MODULE_0__.showError)((0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Could not load app discover section')); - } - }); - const getComponent = type => { - if (type === 'post') { - return PostType; - } else if (type === 'carousel') { - return CarouselType; - } else if (type === 'showcase') { - return ShowcaseType; - } - return (0,vue__WEBPACK_IMPORTED_MODULE_9__.defineComponent)({ - mounted: () => _logger__WEBPACK_IMPORTED_MODULE_7__["default"].error('Unknown component requested ', type), - render: h => h('div', (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate)('settings', 'Could not render element')) - }); - }; - return { - __sfc: true, - PostType, - CarouselType, - ShowcaseType, - hasError, - elements, - shuffleArray, - getComponent, - mdiEyeOff: _mdi_js__WEBPACK_IMPORTED_MODULE_10__.mdiEyeOff, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate, - NcEmptyContent: _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_5__["default"], - NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_6__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts": -/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts ***! - \*****************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebarTab.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebarTab.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Markdown.vue */ "./apps/settings/src/components/Markdown.vue"); - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ - __name: 'AppDescriptionTab', - props: { - app: { - type: null, - required: true - } - }, - setup(__props) { - return { - __sfc: true, - mdiTextShort: _mdi_js__WEBPACK_IMPORTED_MODULE_5__.mdiTextShort, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, - NcAppSidebarTab: _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__["default"], - Markdown: _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts": -/*!**************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts ***! - \**************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebarTab.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebarTab.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../Markdown.vue */ "./apps/settings/src/components/Markdown.vue"); - - - - - - - -// eslint-disable-next-line @typescript-eslint/no-unused-vars -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_4__.defineComponent)({ - __name: 'AppReleasesTab', - props: { - app: { - type: null, - required: true - } - }, - setup(__props) { - const props = __props; - const hasChangelog = (0,vue__WEBPACK_IMPORTED_MODULE_4__.computed)(() => { - var _props$app$releases$, _props$app$releases; - return Object.values((_props$app$releases$ = (_props$app$releases = props.app.releases) === null || _props$app$releases === void 0 || (_props$app$releases = _props$app$releases[0]) === null || _props$app$releases === void 0 ? void 0 : _props$app$releases.translations) !== null && _props$app$releases$ !== void 0 ? _props$app$releases$ : {}).some(_ref => { - let { - changelog - } = _ref; - return !!changelog; - }); - }); - const createChangelogFromRelease = release => { - var _ref2, _release$translations, _release$translations2, _release$translations3; - return (_ref2 = (_release$translations = (_release$translations2 = release.translations) === null || _release$translations2 === void 0 || (_release$translations2 = _release$translations2[(0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.getLanguage)()]) === null || _release$translations2 === void 0 ? void 0 : _release$translations2.changelog) !== null && _release$translations !== void 0 ? _release$translations : (_release$translations3 = release.translations) === null || _release$translations3 === void 0 || (_release$translations3 = _release$translations3.en) === null || _release$translations3 === void 0 ? void 0 : _release$translations3.changelog) !== null && _ref2 !== void 0 ? _ref2 : ''; - }; - return { - __sfc: true, - props, - hasChangelog, - createChangelogFromRelease, - mdiClockFast: _mdi_js__WEBPACK_IMPORTED_MODULE_5__.mdiClockFast, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, - NcAppSidebarTab: _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_1__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_2__["default"], - Markdown: _Markdown_vue__WEBPACK_IMPORTED_MODULE_3__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts": -/*!***********************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts ***! - \***********************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var vue_router_composables__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! vue-router/composables */ "./node_modules/vue-router/composables.mjs"); -/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); -/* harmony import */ var _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants/AppsConstants */ "./apps/settings/src/constants/AppsConstants.js"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppContent_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppContent.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcEmptyContent.js */ "./node_modules/@nextcloud/vue/dist/Components/NcEmptyContent.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); -/* harmony import */ var _components_AppList_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/AppList.vue */ "./apps/settings/src/components/AppList.vue"); -/* harmony import */ var _components_AppStoreDiscover_AppStoreDiscoverSection_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/AppStoreDiscover/AppStoreDiscoverSection.vue */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue"); - - - - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_8__.defineComponent)({ - __name: 'AppStore', - setup(__props) { - const route = (0,vue_router_composables__WEBPACK_IMPORTED_MODULE_9__.useRoute)(); - const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_1__.useAppsStore)(); - /** - * ID of the current active category, default is `discover` - */ - const currentCategory = (0,vue__WEBPACK_IMPORTED_MODULE_8__.computed)(() => { - var _route$params$categor, _route$params; - return (_route$params$categor = (_route$params = route.params) === null || _route$params === void 0 ? void 0 : _route$params.category) !== null && _route$params$categor !== void 0 ? _route$params$categor : 'discover'; - }); - const appStoreLabel = (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'App Store'); - const viewLabel = (0,vue__WEBPACK_IMPORTED_MODULE_8__.computed)(() => { - var _ref, _APPS_SECTION_ENUM$cu, _store$getCategoryByI; - return (_ref = (_APPS_SECTION_ENUM$cu = _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__.APPS_SECTION_ENUM[currentCategory.value]) !== null && _APPS_SECTION_ENUM$cu !== void 0 ? _APPS_SECTION_ENUM$cu : (_store$getCategoryByI = store.getCategoryById(currentCategory.value)) === null || _store$getCategoryByI === void 0 ? void 0 : _store$getCategoryByI.displayName) !== null && _ref !== void 0 ? _ref : appStoreLabel; - }); - (0,vue__WEBPACK_IMPORTED_MODULE_8__.watchEffect)(() => { - window.document.title = "".concat(viewLabel.value, " - ").concat(appStoreLabel, " - Nextcloud"); - }); - // TODO this part should be migrated to pinia - const instance = (0,vue__WEBPACK_IMPORTED_MODULE_8__.getCurrentInstance)(); - /** Is the app list loading */ - // eslint-disable-next-line @typescript-eslint/no-explicit-any - const isLoading = (0,vue__WEBPACK_IMPORTED_MODULE_8__.computed)(() => (instance === null || instance === void 0 ? void 0 : instance.proxy).$store.getters.loading('list')); - (0,vue__WEBPACK_IMPORTED_MODULE_8__.onBeforeMount)(() => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (instance === null || instance === void 0 ? void 0 : instance.proxy).$store.dispatch('getCategories', { - shouldRefetchCategories: true - }); - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (instance === null || instance === void 0 ? void 0 : instance.proxy).$store.dispatch('getAllApps'); - }); - return { - __sfc: true, - route, - store, - currentCategory, - appStoreLabel, - viewLabel, - instance, - isLoading, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate, - NcAppContent: _nextcloud_vue_dist_Components_NcAppContent_js__WEBPACK_IMPORTED_MODULE_3__["default"], - NcEmptyContent: _nextcloud_vue_dist_Components_NcEmptyContent_js__WEBPACK_IMPORTED_MODULE_4__["default"], - NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_5__["default"], - AppList: _components_AppList_vue__WEBPACK_IMPORTED_MODULE_6__["default"], - AppStoreDiscoverSection: _components_AppStoreDiscover_AppStoreDiscoverSection_vue__WEBPACK_IMPORTED_MODULE_7__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts": -/*!*********************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts ***! - \*********************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/initial-state */ "./node_modules/@nextcloud/initial-state/dist/index.es.mjs"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../constants/AppsConstants */ "./apps/settings/src/constants/AppsConstants.js"); -/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppNavigation_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppNavigation.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppNavigation.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppNavigationItem_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppNavigationItem.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppNavigationItem.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppNavigationSpacer_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppNavigationSpacer.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppNavigationSpacer.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcCounterBubble_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcCounterBubble.js */ "./node_modules/@nextcloud/vue/dist/Components/NcCounterBubble.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcLoadingIcon.js */ "./node_modules/@nextcloud/vue/dist/Components/NcLoadingIcon.mjs"); -/* harmony import */ var _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../constants/AppstoreCategoryIcons.ts */ "./apps/settings/src/constants/AppstoreCategoryIcons.ts"); - - - - - - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_11__.defineComponent)({ - __name: 'AppStoreNavigation', - setup(__props) { - const updateCount = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('settings', 'appstoreUpdateCount', 0); - const appstoreEnabled = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('settings', 'appstoreEnabled', true); - const developerDocsUrl = (0,_nextcloud_initial_state__WEBPACK_IMPORTED_MODULE_0__.loadState)('settings', 'appstoreDeveloperDocs', ''); - const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_3__.useAppsStore)(); - const categories = (0,vue__WEBPACK_IMPORTED_MODULE_11__.computed)(() => store.categories); - const categoriesLoading = (0,vue__WEBPACK_IMPORTED_MODULE_11__.computed)(() => store.loading.categories); - /** - * Check if the current instance has a support subscription from the Nextcloud GmbH - * - * For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription - */ - const isSubscribed = (0,vue__WEBPACK_IMPORTED_MODULE_11__.computed)(() => store.apps.find(_ref => { - let { - level - } = _ref; - return level === 300; - }) !== undefined); - // load categories when component is mounted - (0,vue__WEBPACK_IMPORTED_MODULE_11__.onBeforeMount)(() => { - store.loadCategories(); - store.loadApps(); - }); - return { - __sfc: true, - updateCount, - appstoreEnabled, - developerDocsUrl, - store, - categories, - categoriesLoading, - isSubscribed, - t: _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_1__.translate, - APPS_SECTION_ENUM: _constants_AppsConstants__WEBPACK_IMPORTED_MODULE_2__.APPS_SECTION_ENUM, - NcAppNavigation: _nextcloud_vue_dist_Components_NcAppNavigation_js__WEBPACK_IMPORTED_MODULE_4__["default"], - NcAppNavigationItem: _nextcloud_vue_dist_Components_NcAppNavigationItem_js__WEBPACK_IMPORTED_MODULE_5__["default"], - NcAppNavigationSpacer: _nextcloud_vue_dist_Components_NcAppNavigationSpacer_js__WEBPACK_IMPORTED_MODULE_6__["default"], - NcCounterBubble: _nextcloud_vue_dist_Components_NcCounterBubble_js__WEBPACK_IMPORTED_MODULE_7__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_8__["default"], - NcLoadingIcon: _nextcloud_vue_dist_Components_NcLoadingIcon_js__WEBPACK_IMPORTED_MODULE_9__["default"], - APPSTORE_CATEGORY_ICONS: _constants_AppstoreCategoryIcons_ts__WEBPACK_IMPORTED_MODULE_10__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts": -/*!******************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts ***! - \******************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/* harmony import */ var _nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/l10n */ "./node_modules/@nextcloud/l10n/dist/index.mjs"); -/* harmony import */ var vue_router_composables__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! vue-router/composables */ "./node_modules/vue-router/composables.mjs"); -/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebar_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebar.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebar.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _components_AppList_AppScore_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../components/AppList/AppScore.vue */ "./apps/settings/src/components/AppList/AppScore.vue"); -/* harmony import */ var _components_AppStoreSidebar_AppDescriptionTab_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../components/AppStoreSidebar/AppDescriptionTab.vue */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue"); -/* harmony import */ var _components_AppStoreSidebar_AppDetailsTab_vue__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../components/AppStoreSidebar/AppDetailsTab.vue */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue"); -/* harmony import */ var _components_AppStoreSidebar_AppReleasesTab_vue__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../components/AppStoreSidebar/AppReleasesTab.vue */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue"); -/* harmony import */ var _components_AppList_AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../components/AppList/AppLevelBadge.vue */ "./apps/settings/src/components/AppList/AppLevelBadge.vue"); -/* harmony import */ var _composables_useAppIcon_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../composables/useAppIcon.ts */ "./apps/settings/src/composables/useAppIcon.ts"); - - - - - - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_10__.defineComponent)({ - __name: 'AppStoreSidebar', - setup(__props) { - const route = (0,vue_router_composables__WEBPACK_IMPORTED_MODULE_11__.useRoute)(); - const router = (0,vue_router_composables__WEBPACK_IMPORTED_MODULE_11__.useRouter)(); - const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_1__.useAppsStore)(); - const appId = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { - var _route$params$id; - return (_route$params$id = route.params.id) !== null && _route$params$id !== void 0 ? _route$params$id : ''; - }); - const app = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => store.getAppById(appId.value)); - const hasRating = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { - var _app$value$appstoreDa; - return ((_app$value$appstoreDa = app.value.appstoreData) === null || _app$value$appstoreDa === void 0 ? void 0 : _app$value$appstoreDa.ratingNumOverall) > 5; - }); - const rating = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { - var _app$value$appstoreDa2, _app$value$appstoreDa3, _app$value$appstoreDa4; - return ((_app$value$appstoreDa2 = app.value.appstoreData) === null || _app$value$appstoreDa2 === void 0 ? void 0 : _app$value$appstoreDa2.ratingNumRecent) > 5 ? app.value.appstoreData.ratingRecent : (_app$value$appstoreDa3 = (_app$value$appstoreDa4 = app.value.appstoreData) === null || _app$value$appstoreDa4 === void 0 ? void 0 : _app$value$appstoreDa4.ratingOverall) !== null && _app$value$appstoreDa3 !== void 0 ? _app$value$appstoreDa3 : 0.5; - }); - const showSidebar = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => app.value !== null); - const { - appIcon - } = (0,_composables_useAppIcon_ts__WEBPACK_IMPORTED_MODULE_9__.useAppIcon)(app); - /** - * The second text line shown on the sidebar - */ - const licenseText = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => app.value ? (0,_nextcloud_l10n__WEBPACK_IMPORTED_MODULE_0__.translate)('settings', 'Version {version}, {license}-licensed', { - version: app.value.version, - license: app.value.licence.toString().toUpperCase() - }) : ''); - const activeTab = (0,vue__WEBPACK_IMPORTED_MODULE_10__.ref)('details'); - (0,vue__WEBPACK_IMPORTED_MODULE_10__.watch)([app], () => { - activeTab.value = 'details'; - }); - /** - * Hide the details sidebar by pushing a new route - */ - const hideAppDetails = () => { - router.push({ - name: 'apps-category', - params: { - category: route.params.category - } - }); - }; - /** - * Whether the app screenshot is loaded - */ - const screenshotLoaded = (0,vue__WEBPACK_IMPORTED_MODULE_10__.ref)(false); - const hasScreenshot = (0,vue__WEBPACK_IMPORTED_MODULE_10__.computed)(() => { - var _app$value; - return ((_app$value = app.value) === null || _app$value === void 0 ? void 0 : _app$value.screenshot) && screenshotLoaded.value; - }); - /** - * Preload the app screenshot - */ - const loadScreenshot = () => { - var _app$value2, _app$value3; - if ((_app$value2 = app.value) !== null && _app$value2 !== void 0 && _app$value2.releases && (_app$value3 = app.value) !== null && _app$value3 !== void 0 && _app$value3.screenshot) { - const image = new Image(); - image.onload = () => { - screenshotLoaded.value = true; - }; - image.src = app.value.screenshot; - } - }; - // Watch app and set screenshot loaded when - (0,vue__WEBPACK_IMPORTED_MODULE_10__.watch)([app], loadScreenshot); - (0,vue__WEBPACK_IMPORTED_MODULE_10__.onMounted)(loadScreenshot); - return { - __sfc: true, - route, - router, - store, - appId, - app, - hasRating, - rating, - showSidebar, - appIcon, - licenseText, - activeTab, - hideAppDetails, - screenshotLoaded, - hasScreenshot, - loadScreenshot, - NcAppSidebar: _nextcloud_vue_dist_Components_NcAppSidebar_js__WEBPACK_IMPORTED_MODULE_2__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__["default"], - AppScore: _components_AppList_AppScore_vue__WEBPACK_IMPORTED_MODULE_4__["default"], - AppDescriptionTab: _components_AppStoreSidebar_AppDescriptionTab_vue__WEBPACK_IMPORTED_MODULE_5__["default"], - AppDetailsTab: _components_AppStoreSidebar_AppDetailsTab_vue__WEBPACK_IMPORTED_MODULE_6__["default"], - AppReleasesTab: _components_AppStoreSidebar_AppReleasesTab_vue__WEBPACK_IMPORTED_MODULE_7__["default"], - AppLevelBadge: _components_AppList_AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_8__["default"] - }; - } -})); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=script&lang=js": -/*!******************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=script&lang=js ***! - \******************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/event-bus */ "./node_modules/@nextcloud/event-bus/dist/index.mjs"); -/* harmony import */ var _AppList_AppItem_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppList/AppItem.vue */ "./apps/settings/src/components/AppList/AppItem.vue"); -/* harmony import */ var p_limit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! p-limit */ "./node_modules/p-limit/index.js"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'AppList', - components: { - AppItem: _AppList_AppItem_vue__WEBPACK_IMPORTED_MODULE_1__["default"], - NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_3__["default"] - }, - props: { - category: { - type: String, - required: true - } - }, - data() { - return { - search: '' - }; - }, - computed: { - counter() { - return this.apps.filter(app => app.update).length; - }, - loading() { - return this.$store.getters.loading('list'); - }, - hasPendingUpdate() { - return this.apps.filter(app => app.update).length > 0; - }, - showUpdateAll() { - return this.hasPendingUpdate && this.useListView; - }, - apps() { - const apps = this.$store.getters.getAllApps.filter(app => app.name.toLowerCase().search(this.search.toLowerCase()) !== -1).sort(function (a, b) { - const sortStringA = '' + (a.active ? 0 : 1) + (a.update ? 0 : 1) + a.name; - const sortStringB = '' + (b.active ? 0 : 1) + (b.update ? 0 : 1) + b.name; - return OC.Util.naturalSortCompare(sortStringA, sortStringB); - }); - if (this.category === 'installed') { - return apps.filter(app => app.installed); - } - if (this.category === 'enabled') { - return apps.filter(app => app.active && app.installed); - } - if (this.category === 'disabled') { - return apps.filter(app => !app.active && app.installed); - } - if (this.category === 'app-bundles') { - return apps.filter(app => app.bundles); - } - if (this.category === 'updates') { - return apps.filter(app => app.update); - } - if (this.category === 'supported') { - // For customers of the Nextcloud GmbH the app level will be set to `300` for apps that are supported in their subscription - return apps.filter(app => app.level === 300); - } - if (this.category === 'featured') { - // An app level of `200` will be set for apps featured on the app store - return apps.filter(app => app.level === 200); - } - - // filter app store categories - return apps.filter(app => { - return app.appstore && app.category !== undefined && (app.category === this.category || app.category.indexOf(this.category) > -1); - }); - }, - bundles() { - return this.$store.getters.getAppBundles.filter(bundle => this.bundleApps(bundle.id).length > 0); - }, - bundleApps() { - return function (bundle) { - return this.$store.getters.getAllApps.filter(app => { - return app.bundleIds !== undefined && app.bundleIds.includes(bundle); - }); - }; - }, - searchApps() { - if (this.search === '') { - return []; - } - return this.$store.getters.getAllApps.filter(app => { - if (app.name.toLowerCase().search(this.search.toLowerCase()) !== -1) { - return !this.apps.find(_app => _app.id === app.id); - } - return false; - }); - }, - useAppStoreView() { - return !this.useListView && !this.useBundleView; - }, - useListView() { - return this.category === 'installed' || this.category === 'enabled' || this.category === 'disabled' || this.category === 'updates' || this.category === 'featured' || this.category === 'supported'; - }, - useBundleView() { - return this.category === 'app-bundles'; - }, - allBundlesEnabled() { - return id => { - return this.bundleApps(id).filter(app => !app.active).length === 0; - }; - }, - bundleToggleText() { - return id => { - if (this.allBundlesEnabled(id)) { - return t('settings', 'Disable all'); - } - return t('settings', 'Download and enable all'); - }; - } - }, - beforeDestroy() { - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.unsubscribe)('nextcloud:unified-search.search', this.setSearch); - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.unsubscribe)('nextcloud:unified-search.reset', this.resetSearch); - }, - mounted() { - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.subscribe)('nextcloud:unified-search.search', this.setSearch); - (0,_nextcloud_event_bus__WEBPACK_IMPORTED_MODULE_0__.subscribe)('nextcloud:unified-search.reset', this.resetSearch); - }, - methods: { - setSearch(_ref) { - let { - query - } = _ref; - this.search = query; - }, - resetSearch() { - this.search = ''; - }, - toggleBundle(id) { - if (this.allBundlesEnabled(id)) { - return this.disableBundle(id); - } - return this.enableBundle(id); - }, - enableBundle(id) { - const apps = this.bundleApps(id).map(app => app.id); - this.$store.dispatch('enableApp', { - appId: apps, - groups: [] - }).catch(error => { - console.error(error); - OC.Notification.show(error); - }); - }, - disableBundle(id) { - const apps = this.bundleApps(id).map(app => app.id); - this.$store.dispatch('disableApp', { - appId: apps, - groups: [] - }).catch(error => { - OC.Notification.show(error); - }); - }, - updateAll() { - const limit = (0,p_limit__WEBPACK_IMPORTED_MODULE_2__["default"])(1); - this.apps.filter(app => app.update).map(app => limit(() => this.$store.dispatch('updateApp', { - appId: app.id - }))); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js": -/*!**************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js ***! - \**************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppScore_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppScore.vue */ "./apps/settings/src/components/AppList/AppScore.vue"); -/* harmony import */ var _AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppLevelBadge.vue */ "./apps/settings/src/components/AppList/AppLevelBadge.vue"); -/* harmony import */ var _mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../mixins/AppManagement.js */ "./apps/settings/src/mixins/AppManagement.js"); -/* harmony import */ var _SvgFilterMixin_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../SvgFilterMixin.vue */ "./apps/settings/src/components/SvgFilterMixin.vue"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'AppItem', - components: { - AppLevelBadge: _AppLevelBadge_vue__WEBPACK_IMPORTED_MODULE_1__["default"], - AppScore: _AppScore_vue__WEBPACK_IMPORTED_MODULE_0__["default"], - NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_4__["default"] - }, - mixins: [_mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_2__["default"], _SvgFilterMixin_vue__WEBPACK_IMPORTED_MODULE_3__["default"]], - props: { - app: { - type: Object, - required: true - }, - category: { - type: String, - required: true - }, - listView: { - type: Boolean, - default: true - }, - useBundleView: { - type: Boolean, - default: false - }, - headers: { - type: String, - default: null - }, - inline: { - type: Boolean, - default: false - } - }, - data() { - return { - isSelected: false, - scrolled: false, - screenshotLoaded: false - }; - }, - computed: { - hasRating() { - return this.app.appstoreData && this.app.appstoreData.ratingNumOverall > 5; - }, - dataItemTag() { - return this.listView ? 'td' : 'div'; - }, - withSidebar() { - return !!this.$route.params.id; - } - }, - watch: { - '$route.params.id'(id) { - this.isSelected = this.app.id === id; - } - }, - mounted() { - this.isSelected = this.app.id === this.$route.params.id; - if (this.app.releases && this.app.screenshot) { - const image = new Image(); - image.onload = () => { - this.screenshotLoaded = true; - }; - image.src = this.app.screenshot; - } - }, - watchers: {}, - methods: { - prefix(prefix, content) { - return prefix + '_' + content; - }, - getDataItemHeaders(columnName) { - return this.useBundleView ? [this.headers, columnName].join(' ') : null; - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js": -/*!****************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js ***! - \****************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcAppSidebarTab.js */ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebarTab.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcButton.js */ "./node_modules/@nextcloud/vue/dist/Components/NcButton.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcDateTime.js */ "./node_modules/@nextcloud/vue/dist/Components/NcDateTime.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcIconSvgWrapper.js */ "./node_modules/@nextcloud/vue/dist/Components/NcIconSvgWrapper.mjs"); -/* harmony import */ var _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @nextcloud/vue/dist/Components/NcSelect.js */ "./node_modules/@nextcloud/vue/dist/Components/NcSelect.mjs"); -/* harmony import */ var _mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../mixins/AppManagement.js */ "./apps/settings/src/mixins/AppManagement.js"); -/* harmony import */ var _mdi_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @mdi/js */ "./node_modules/@mdi/js/mdi.js"); -/* harmony import */ var _store_apps_store__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../store/apps-store */ "./apps/settings/src/store/apps-store.ts"); -/* provided dependency */ var console = __webpack_require__(/*! ./node_modules/console-browserify/index.js */ "./node_modules/console-browserify/index.js"); - - - - - - - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'AppDetailsTab', - components: { - NcAppSidebarTab: _nextcloud_vue_dist_Components_NcAppSidebarTab_js__WEBPACK_IMPORTED_MODULE_0__["default"], - NcButton: _nextcloud_vue_dist_Components_NcButton_js__WEBPACK_IMPORTED_MODULE_1__["default"], - NcDateTime: _nextcloud_vue_dist_Components_NcDateTime_js__WEBPACK_IMPORTED_MODULE_2__["default"], - NcIconSvgWrapper: _nextcloud_vue_dist_Components_NcIconSvgWrapper_js__WEBPACK_IMPORTED_MODULE_3__["default"], - NcSelect: _nextcloud_vue_dist_Components_NcSelect_js__WEBPACK_IMPORTED_MODULE_4__["default"] - }, - mixins: [_mixins_AppManagement_js__WEBPACK_IMPORTED_MODULE_5__["default"]], - props: { - app: { - type: Object, - required: true - } - }, - setup() { - const store = (0,_store_apps_store__WEBPACK_IMPORTED_MODULE_6__.useAppsStore)(); - return { - store, - mdiBug: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiBug, - mdiFeatureSearch: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiFeatureSearch, - mdiStar: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiStar, - mdiTextBox: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiTextBox, - mdiTooltipQuestion: _mdi_js__WEBPACK_IMPORTED_MODULE_7__.mdiTooltipQuestion - }; - }, - data() { - return { - groupCheckedAppsData: false - }; - }, - computed: { - lastModified() { - var _map$sort$at, _this$app$appstoreDat, _this$app$appstoreDat2; - return (_map$sort$at = ((_this$app$appstoreDat = (_this$app$appstoreDat2 = this.app.appstoreData) === null || _this$app$appstoreDat2 === void 0 ? void 0 : _this$app$appstoreDat2.releases) !== null && _this$app$appstoreDat !== void 0 ? _this$app$appstoreDat : []).map(_ref => { - let { - lastModified - } = _ref; - return Date.parse(lastModified); - }).sort().at(0)) !== null && _map$sort$at !== void 0 ? _map$sort$at : null; - }, - /** - * App authors as comma separated string - */ - appAuthors() { - console.warn(this.app); - if (!this.app) { - return ''; - } - const authorName = xmlNode => { - if (xmlNode['@value']) { - // Complex node (with email or homepage attribute) - return xmlNode['@value']; - } - // Simple text node - return xmlNode; - }; - const authors = Array.isArray(this.app.author) ? this.app.author.map(authorName) : [authorName(this.app.author)]; - return authors.sort((a, b) => a.split(' ').at(-1).localeCompare(b.split(' ').at(-1))).join(', '); - }, - appstoreUrl() { - return "https://apps.nextcloud.com/apps/".concat(this.app.id); - }, - /** - * Further external resources (e.g. website) - */ - externalResources() { - const resources = []; - if (!this.app.internal) { - resources.push({ - id: 'appstore', - href: this.appstoreUrl, - label: t('settings', 'View in store') - }); - } - if (this.app.website) { - resources.push({ - id: 'website', - href: this.app.website, - label: t('settings', 'Visit website') - }); - } - if (this.app.documentation) { - if (this.app.documentation.user) { - resources.push({ - id: 'doc-user', - href: this.app.documentation.user, - label: t('settings', 'Usage documentation') - }); - } - if (this.app.documentation.admin) { - resources.push({ - id: 'doc-admin', - href: this.app.documentation.admin, - label: t('settings', 'Admin documentation') - }); - } - if (this.app.documentation.developer) { - resources.push({ - id: 'doc-developer', - href: this.app.documentation.developer, - label: t('settings', 'Developer documentation') - }); - } - } - return resources; - }, - appCategories() { - return [this.app.category].flat().map(id => { - var _this$store$getCatego, _this$store$getCatego2; - return (_this$store$getCatego = (_this$store$getCatego2 = this.store.getCategoryById(id)) === null || _this$store$getCatego2 === void 0 ? void 0 : _this$store$getCatego2.displayName) !== null && _this$store$getCatego !== void 0 ? _this$store$getCatego : id; - }).join(', '); - }, - rateAppUrl() { - return "".concat(this.appstoreUrl, "#comments"); - }, - appGroups() { - return this.app.groups.map(group => { - return { - id: group, - name: group - }; - }); - }, - groups() { - return this.$store.getters.getGroups.filter(group => group.id !== 'disabled').sort((a, b) => a.name.localeCompare(b.name)); - } - }, - mounted() { - if (this.app.groups.length > 0) { - this.groupCheckedAppsData = true; - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js": -/*!*******************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js ***! - \*******************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! marked */ "./node_modules/marked/lib/marked.esm.js"); -/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! dompurify */ "./node_modules/dompurify/dist/purify.js"); -/* harmony import */ var dompurify__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(dompurify__WEBPACK_IMPORTED_MODULE_1__); - - -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'Markdown', - props: { - text: { - type: String, - default: '' - }, - minHeading: { - type: Number, - default: 1 - } - }, - computed: { - renderMarkdown() { - const renderer = new marked__WEBPACK_IMPORTED_MODULE_0__.marked.Renderer(); - renderer.link = function (href, title, text) { - let prot; - try { - prot = decodeURIComponent(unescape(href)).replace(/[^\w:]/g, '').toLowerCase(); - } catch (e) { - return ''; - } - if (prot.indexOf('http:') !== 0 && prot.indexOf('https:') !== 0) { - return ''; - } - let out = ''; - return out; - }; - renderer.heading = (text, level) => { - level = Math.min(6, level + (this.minHeading - 1)); - return "").concat(text, ""); - }; - renderer.image = function (href, title, text) { - if (text) { - return text; - } - return title; - }; - renderer.blockquote = function (quote) { - return quote; - }; - return dompurify__WEBPACK_IMPORTED_MODULE_1___default().sanitize((0,marked__WEBPACK_IMPORTED_MODULE_0__.marked)(this.text.trim(), { - renderer, - gfm: false, - highlight: false, - tables: false, - breaks: false, - pedantic: false, - sanitize: true, - smartLists: true, - smartypants: false - }), { - SAFE_FOR_JQUERY: true, - ALLOWED_TAGS: ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'strong', 'p', 'a', 'ul', 'ol', 'li', 'em', 'del', 'blockquote'] - }); - } - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js": -/*!*************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js ***! - \*************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({ - name: 'SvgFilterMixin', - data() { - return { - filterId: '' - }; - }, - computed: { - filterUrl() { - return "url(#".concat(this.filterId, ")"); - } - }, - mounted() { - this.filterId = 'invertIconApps-' + Math.random().toString(36).substring(2); - } -}); - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true": -/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true ***! - \*****************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c; - return _c("div", { - attrs: { - id: "app-content-inner" - } - }, [_c("div", { - staticClass: "apps-list", - class: { - "apps-list--list-view": _vm.useBundleView || _vm.useListView, - "apps-list--store-view": _vm.useAppStoreView - }, - attrs: { - id: "apps-list" - } - }, [_vm.useListView ? [_vm.showUpdateAll ? _c("div", { - staticClass: "apps-list__toolbar" - }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.n("settings", "%n app has an update available", "%n apps have an update available", _vm.counter)) + "\n\t\t\t\t"), _vm.showUpdateAll ? _c("NcButton", { - attrs: { - id: "app-list-update-all", - type: "primary" - }, - on: { - click: _vm.updateAll - } - }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.n("settings", "Update", "Update all", _vm.counter)) + "\n\t\t\t\t")]) : _vm._e()], 1) : _vm._e(), _vm._v(" "), !_vm.showUpdateAll ? _c("div", { - staticClass: "apps-list__toolbar" - }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "All apps are up-to-date.")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), _c("TransitionGroup", { - staticClass: "apps-list__list-container", - attrs: { - name: "apps-list", - tag: "table" - } - }, [_c("tr", { - key: "app-list-view-header" - }, [_c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Icon")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Name")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Version")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Level")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Actions")))])])]), _vm._v(" "), _vm._l(_vm.apps, function (app) { - return _c("AppItem", { - key: app.id, - attrs: { - app: app, - category: _vm.category - } - }); - })], 2)] : _vm._e(), _vm._v(" "), _vm.useBundleView ? _c("table", { - staticClass: "apps-list__list-container" - }, [_c("tr", { - key: "app-list-view-header" - }, [_c("th", { - attrs: { - id: "app-table-col-icon" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Icon")))])]), _vm._v(" "), _c("th", { - attrs: { - id: "app-table-col-name" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Name")))])]), _vm._v(" "), _c("th", { - attrs: { - id: "app-table-col-version" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Version")))])]), _vm._v(" "), _c("th", { - attrs: { - id: "app-table-col-level" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Level")))])]), _vm._v(" "), _c("th", { - attrs: { - id: "app-table-col-actions" - } - }, [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Actions")))])])]), _vm._v(" "), _vm._l(_vm.bundles, function (bundle) { - return [_c("tr", { - key: bundle.id - }, [_c("th", { - attrs: { - id: "app-table-rowgroup-".concat(bundle.id), - colspan: "5", - scope: "rowgroup" - } - }, [_c("div", { - staticClass: "apps-list__bundle-heading" - }, [_c("span", { - staticClass: "apps-list__bundle-header" - }, [_vm._v("\n\t\t\t\t\t\t\t\t" + _vm._s(bundle.name) + "\n\t\t\t\t\t\t\t")]), _vm._v(" "), _c("NcButton", { - attrs: { - type: "secondary" - }, - on: { - click: function ($event) { - return _vm.toggleBundle(bundle.id); - } - } - }, [_vm._v("\n\t\t\t\t\t\t\t\t" + _vm._s(_vm.t("settings", _vm.bundleToggleText(bundle.id))) + "\n\t\t\t\t\t\t\t")])], 1)])]), _vm._v(" "), _vm._l(_vm.bundleApps(bundle.id), function (app) { - return _c("AppItem", { - key: bundle.id + app.id, - attrs: { - "use-bundle-view": true, - headers: "app-table-rowgroup-".concat(bundle.id), - app: app, - category: _vm.category - } - }); - })]; - })], 2) : _vm._e(), _vm._v(" "), _vm.useAppStoreView ? _c("ul", { - staticClass: "apps-list__store-container" - }, _vm._l(_vm.apps, function (app) { - return _c("AppItem", { - key: app.id, - attrs: { - app: app, - category: _vm.category, - "list-view": false - } - }); - }), 1) : _vm._e()], 2), _vm._v(" "), _c("div", { - staticClass: "apps-list apps-list--list-view", - attrs: { - id: "apps-list-search" - } - }, [_c("div", { - staticClass: "apps-list__list-container" - }, [_vm.search !== "" && _vm.searchApps.length > 0 ? _c("table", { - staticClass: "apps-list__list-container" - }, [_c("caption", { - staticClass: "apps-list__bundle-header" - }, [_vm._v("\n\t\t\t\t\t" + _vm._s(_vm.t("settings", "Results from other categories")) + "\n\t\t\t\t")]), _vm._v(" "), _c("tr", { - key: "app-list-view-header" - }, [_c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Icon")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Name")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Version")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Level")))])]), _vm._v(" "), _c("th", [_c("span", { - staticClass: "hidden-visually" - }, [_vm._v(_vm._s(_vm.t("settings", "Actions")))])])]), _vm._v(" "), _vm._l(_vm.searchApps, function (app) { - return _c("AppItem", { - key: app.id, - attrs: { - app: app, - category: _vm.category - } - }); - })], 2) : _vm._e()])]), _vm._v(" "), _vm.search !== "" && !_vm.loading && _vm.searchApps.length === 0 && _vm.apps.length === 0 ? _c("div", { - staticClass: "emptycontent emptycontent-search", - attrs: { - id: "apps-list-empty" - } - }, [_c("div", { - staticClass: "icon-settings-dark", - attrs: { - id: "app-list-empty-icon" - } - }), _vm._v(" "), _c("h2", [_vm._v(_vm._s(_vm.t("settings", "No apps found for your version")))])]) : _vm._e()]); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true": -/*!*************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true ***! - \*************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c; - return _c(_vm.listView ? "tr" : _vm.inline ? "article" : "li", { - tag: "component", - staticClass: "app-item", - class: { - "app-item--list-view": _vm.listView, - "app-item--store-view": !_vm.listView, - "app-item--selected": _vm.isSelected, - "app-item--with-sidebar": _vm.withSidebar - } - }, [_c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-image app-image-icon", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-icon") - } - }, [_vm.listView && !_vm.app.preview || !_vm.listView && !_vm.screenshotLoaded ? _c("div", { - staticClass: "icon-settings-dark" - }) : _vm.listView && _vm.app.preview ? _c("svg", { - attrs: { - width: "32", - height: "32", - viewBox: "0 0 32 32" - } - }, [_c("image", { - staticClass: "app-icon", - attrs: { - x: "0", - y: "0", - width: "32", - height: "32", - preserveAspectRatio: "xMinYMin meet", - "xlink:href": _vm.app.preview - } - })]) : _vm._e(), _vm._v(" "), !_vm.listView && _vm.app.screenshot && _vm.screenshotLoaded ? _c("img", { - attrs: { - src: _vm.app.screenshot, - alt: "" - } - }) : _vm._e()]), _vm._v(" "), _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-name", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-name") - } - }, [_c("router-link", { - staticClass: "app-name--link", - attrs: { - to: { - name: "apps-details", - params: { - category: _vm.category, - id: _vm.app.id - } - }, - "aria-label": _vm.t("settings", "Show details for {appName} app", { - appName: _vm.app.name - }) - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.app.name) + "\n\t\t")])], 1), _vm._v(" "), !_vm.listView ? _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-summary", - attrs: { - headers: _vm.getDataItemHeaders("app-version") - } - }, [_vm._v("\n\t\t" + _vm._s(_vm.app.summary) + "\n\t")]) : _vm._e(), _vm._v(" "), _vm.listView ? _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-version", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-version") - } - }, [_vm.app.version ? _c("span", [_vm._v(_vm._s(_vm.app.version))]) : _vm.app.appstoreData.releases[0].version ? _c("span", [_vm._v(_vm._s(_vm.app.appstoreData.releases[0].version))]) : _vm._e()]) : _vm._e(), _vm._v(" "), _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-level", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-level") - } - }, [_c("AppLevelBadge", { - attrs: { - level: _vm.app.level - } - }), _vm._v(" "), _vm.hasRating && !_vm.listView ? _c("AppScore", { - attrs: { - score: _vm.app.score - } - }) : _vm._e()], 1), _vm._v(" "), !_vm.inline ? _c(_vm.dataItemTag, { - tag: "component", - staticClass: "app-actions", - attrs: { - headers: _vm.getDataItemHeaders("app-table-col-actions") - } - }, [_vm.app.error ? _c("div", { - staticClass: "warning" - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.app.error) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.isLoading ? _c("div", { - staticClass: "icon icon-loading-small" - }) : _vm._e(), _vm._v(" "), _vm.app.update ? _c("NcButton", { - attrs: { - type: "primary", - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.update(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Update to {update}", { - update: _vm.app.update - })) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.app.canUnInstall ? _c("NcButton", { - staticClass: "uninstall", - attrs: { - type: "tertiary", - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.remove(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Remove")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), _vm.app.active ? _c("NcButton", { - attrs: { - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.disable(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.t("settings", "Disable")) + "\n\t\t")]) : _vm._e(), _vm._v(" "), !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible) ? _c("NcButton", { - attrs: { - title: _vm.enableButtonTooltip, - "aria-label": _vm.enableButtonTooltip, - type: "primary", - disabled: !_vm.app.canInstall || _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.enable(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.enableButtonText) + "\n\t\t")]) : !_vm.app.active ? _c("NcButton", { - attrs: { - title: _vm.forceEnableButtonTooltip, - "aria-label": _vm.forceEnableButtonTooltip, - type: "secondary", - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - $event.stopPropagation(); - return _vm.forceEnable(_vm.app.id); - } - } - }, [_vm._v("\n\t\t\t" + _vm._s(_vm.forceEnableButtonText) + "\n\t\t")]) : _vm._e()], 1) : _vm._e()], 1); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true": -/*!*******************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _setup.isSupported || _setup.isFeatured ? _c("span", { - staticClass: "app-level-badge", - class: { - "app-level-badge--supported": _setup.isSupported - }, - attrs: { - title: _setup.badgeTitle - } - }, [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.badgeIcon, - size: 20, - inline: "" - } - }), _vm._v("\n\t" + _vm._s(_setup.badgeText) + "\n")], 1) : _vm._e(); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true": -/*!**************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true ***! - \**************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c("span", { - staticClass: "app-score__wrapper", - attrs: { - role: "img", - "aria-label": _vm.title, - title: _vm.title - } - }, [_vm._l(_vm.fullStars, function (index) { - return _c("NcIconSvgWrapper", { - key: "full-star-".concat(index), - attrs: { - path: _vm.mdiStar, - inline: "" - } - }); - }), _vm._v(" "), _vm.hasHalfStar ? _c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiStarHalfFull, - inline: "" - } - }) : _vm._e(), _vm._v(" "), _vm._l(_vm.emptyStars, function (index) { - return _c("NcIconSvgWrapper", { - key: "empty-star-".concat(index), - attrs: { - path: _vm.mdiStarOutline, - inline: "" - } - }); - })], 2); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c("div", { - staticClass: "app-discover" - }, [_setup.hasError ? _c(_setup.NcEmptyContent, { - attrs: { - name: _setup.t("settings", "Nothing to show"), - description: _setup.t("settings", "Could not load section content from app store.") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.mdiEyeOff, - size: 64 - } - })]; - }, - proxy: true - }], null, false, 638098482) - }) : _setup.elements.length === 0 ? _c(_setup.NcEmptyContent, { - attrs: { - name: _setup.t("settings", "Loading"), - description: _setup.t("settings", "Fetching the latest news…") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcLoadingIcon, { - attrs: { - size: 64 - } - })]; - }, - proxy: true - }]) - }) : _vm._l(_setup.elements, function (entry, index) { - var _entry$id; - return _c(_setup.getComponent(entry.type), _vm._b({ - key: (_entry$id = entry.id) !== null && _entry$id !== void 0 ? _entry$id : index, - tag: "component" - }, "component", entry, false)); - })], 2); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true": -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c(_setup.NcAppSidebarTab, { - attrs: { - id: "desc", - name: _setup.t("settings", "Description"), - order: 0 - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.mdiTextShort - } - })]; - }, - proxy: true - }]) - }, [_vm._v(" "), _c("div", { - staticClass: "app-description" - }, [_c(_setup.Markdown, { - attrs: { - text: _vm.app.description, - "min-heading": 4 - } - })], 1)]); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true": -/*!***************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm$app$bugs, _vm$app$bugs2, _vm$app$appstoreData; - var _vm = this, - _c = _vm._self._c; - return _c("NcAppSidebarTab", { - attrs: { - id: "details", - name: _vm.t("settings", "Details"), - order: 1 - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiTextBox - } - })]; - }, - proxy: true - }]) - }, [_vm._v(" "), _c("div", { - staticClass: "app-details" - }, [_c("div", { - staticClass: "app-details__actions" - }, [_vm.app.active && _vm.canLimitToGroups(_vm.app) ? _c("div", { - staticClass: "app-details__actions-groups" - }, [_c("input", { - directives: [{ - name: "model", - rawName: "v-model", - value: _vm.groupCheckedAppsData, - expression: "groupCheckedAppsData" - }], - staticClass: "groups-enable__checkbox checkbox", - attrs: { - id: "groups_enable_".concat(_vm.app.id), - type: "checkbox" - }, - domProps: { - value: _vm.app.id, - checked: Array.isArray(_vm.groupCheckedAppsData) ? _vm._i(_vm.groupCheckedAppsData, _vm.app.id) > -1 : _vm.groupCheckedAppsData - }, - on: { - change: [function ($event) { - var $$a = _vm.groupCheckedAppsData, - $$el = $event.target, - $$c = $$el.checked ? true : false; - if (Array.isArray($$a)) { - var $$v = _vm.app.id, - $$i = _vm._i($$a, $$v); - if ($$el.checked) { - $$i < 0 && (_vm.groupCheckedAppsData = $$a.concat([$$v])); - } else { - $$i > -1 && (_vm.groupCheckedAppsData = $$a.slice(0, $$i).concat($$a.slice($$i + 1))); - } - } else { - _vm.groupCheckedAppsData = $$c; - } - }, _vm.setGroupLimit] - } - }), _vm._v(" "), _c("label", { - attrs: { - for: "groups_enable_".concat(_vm.app.id) - } - }, [_vm._v(_vm._s(_vm.t("settings", "Limit to groups")))]), _vm._v(" "), _c("input", { - staticClass: "group_select", - attrs: { - type: "hidden", - title: _vm.t("settings", "All"), - value: "" - } - }), _vm._v(" "), _c("br"), _vm._v(" "), _c("label", { - attrs: { - for: "limitToGroups" - } - }, [_c("span", [_vm._v(_vm._s(_vm.t("settings", "Limit app usage to groups")))])]), _vm._v(" "), _vm.isLimitedToGroups(_vm.app) ? _c("NcSelect", { - attrs: { - "input-id": "limitToGroups", - options: _vm.groups, - value: _vm.appGroups, - limit: 5, - label: "name", - multiple: true, - "close-on-select": false - }, - on: { - "option:selected": _vm.addGroupLimitation, - "option:deselected": _vm.removeGroupLimitation, - search: _vm.asyncFindGroup - } - }, [_c("span", { - attrs: { - slot: "noResult" - }, - slot: "noResult" - }, [_vm._v(_vm._s(_vm.t("settings", "No results")))])]) : _vm._e()], 1) : _vm._e(), _vm._v(" "), _c("div", { - staticClass: "app-details__actions-manage" - }, [_vm.app.update ? _c("input", { - staticClass: "update primary", - attrs: { - type: "button", - value: _vm.t("settings", "Update to {version}", { - version: _vm.app.update - }), - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.update(_vm.app.id); - } - } - }) : _vm._e(), _vm._v(" "), _vm.app.canUnInstall ? _c("input", { - staticClass: "uninstall", - attrs: { - type: "button", - value: _vm.t("settings", "Remove"), - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.remove(_vm.app.id); - } - } - }) : _vm._e(), _vm._v(" "), _vm.app.active ? _c("input", { - staticClass: "enable", - attrs: { - type: "button", - value: _vm.t("settings", "Disable"), - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.disable(_vm.app.id); - } - } - }) : _vm._e(), _vm._v(" "), !_vm.app.active && (_vm.app.canInstall || _vm.app.isCompatible) ? _c("input", { - staticClass: "enable primary", - attrs: { - title: _vm.enableButtonTooltip, - "aria-label": _vm.enableButtonTooltip, - type: "button", - value: _vm.enableButtonText, - disabled: !_vm.app.canInstall || _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.enable(_vm.app.id); - } - } - }) : !_vm.app.active && !_vm.app.canInstall ? _c("input", { - staticClass: "enable force", - attrs: { - title: _vm.forceEnableButtonTooltip, - "aria-label": _vm.forceEnableButtonTooltip, - type: "button", - value: _vm.forceEnableButtonText, - disabled: _vm.installing || _vm.isLoading - }, - on: { - click: function ($event) { - return _vm.forceEnable(_vm.app.id); - } - } - }) : _vm._e()])]), _vm._v(" "), _c("ul", { - staticClass: "app-details__dependencies" - }, [_vm.app.missingMinOwnCloudVersion ? _c("li", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "This app has no minimum Nextcloud version assigned. This will be an error in the future.")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), _vm.app.missingMaxOwnCloudVersion ? _c("li", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "This app has no maximum Nextcloud version assigned. This will be an error in the future.")) + "\n\t\t\t")]) : _vm._e(), _vm._v(" "), !_vm.app.canInstall ? _c("li", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "This app cannot be installed because the following dependencies are not fulfilled:")) + "\n\t\t\t\t"), _c("ul", { - staticClass: "missing-dependencies" - }, _vm._l(_vm.app.missingDependencies, function (dep, index) { - return _c("li", { - key: index - }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(dep) + "\n\t\t\t\t\t")]); - }), 0)]) : _vm._e()]), _vm._v(" "), _vm.lastModified ? _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "Latest updated")) + "\n\t\t\t")]), _vm._v(" "), _c("NcDateTime", { - attrs: { - timestamp: _vm.lastModified - } - })], 1) : _vm._e(), _vm._v(" "), _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "Author")) + "\n\t\t\t")]), _vm._v(" "), _c("p", { - staticClass: "app-details__authors" - }, [_vm._v("\n\t\t\t\t" + _vm._s(_vm.appAuthors) + "\n\t\t\t")])]), _vm._v(" "), _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.t("settings", "Categories")) + "\n\t\t\t")]), _vm._v(" "), _c("p", [_vm._v("\n\t\t\t\t" + _vm._s(_vm.appCategories) + "\n\t\t\t")])]), _vm._v(" "), _vm.externalResources.length > 0 ? _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v(_vm._s(_vm.t("settings", "Resources")))]), _vm._v(" "), _c("ul", { - staticClass: "app-details__documentation", - attrs: { - "aria-label": _vm.t("settings", "Documentation") - } - }, _vm._l(_vm.externalResources, function (resource) { - return _c("li", { - key: resource.id - }, [_c("a", { - staticClass: "appslink", - attrs: { - href: resource.href, - target: "_blank", - rel: "noreferrer noopener" - } - }, [_vm._v("\n\t\t\t\t\t\t" + _vm._s(resource.label) + " ↗\n\t\t\t\t\t")])]); - }), 0)]) : _vm._e(), _vm._v(" "), _c("div", { - staticClass: "app-details__section" - }, [_c("h4", [_vm._v(_vm._s(_vm.t("settings", "Interact")))]), _vm._v(" "), _c("div", { - staticClass: "app-details__interact" - }, [_c("NcButton", { - attrs: { - disabled: !_vm.app.bugs, - href: (_vm$app$bugs = _vm.app.bugs) !== null && _vm$app$bugs !== void 0 ? _vm$app$bugs : "#", - "aria-label": _vm.t("settings", "Report a bug"), - title: _vm.t("settings", "Report a bug") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiBug - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c("NcButton", { - attrs: { - disabled: !_vm.app.bugs, - href: (_vm$app$bugs2 = _vm.app.bugs) !== null && _vm$app$bugs2 !== void 0 ? _vm$app$bugs2 : "#", - "aria-label": _vm.t("settings", "Request feature"), - title: _vm.t("settings", "Request feature") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiFeatureSearch - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), (_vm$app$appstoreData = _vm.app.appstoreData) !== null && _vm$app$appstoreData !== void 0 && _vm$app$appstoreData.discussion ? _c("NcButton", { - attrs: { - href: _vm.app.appstoreData.discussion, - "aria-label": _vm.t("settings", "Ask questions or discuss"), - title: _vm.t("settings", "Ask questions or discuss") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiTooltipQuestion - } - })]; - }, - proxy: true - }], null, false, 1288192462) - }) : _vm._e(), _vm._v(" "), !_vm.app.internal ? _c("NcButton", { - attrs: { - href: _vm.rateAppUrl, - "aria-label": _vm.t("settings", "Rate the app"), - title: _vm.t("settings", "Rate") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c("NcIconSvgWrapper", { - attrs: { - path: _vm.mdiStar - } - })]; - }, - proxy: true - }], null, false, 422450625) - }) : _vm._e()], 1)])])]); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true": -/*!****************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _setup.hasChangelog ? _c(_setup.NcAppSidebarTab, { - attrs: { - id: "changelog", - name: _setup.t("settings", "Changelog"), - order: 2 - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.mdiClockFast, - size: 24 - } - })]; - }, - proxy: true - }], null, false, 1849836872) - }, [_vm._v(" "), _vm._l(_vm.app.releases, function (release) { - return _c("div", { - key: release.version, - staticClass: "app-sidebar-tabs__release" - }, [_c("h2", [_vm._v(_vm._s(release.version))]), _vm._v(" "), _c(_setup.Markdown, { - staticClass: "app-sidebar-tabs__release-text", - attrs: { - text: _setup.createChangelogFromRelease(release) - } - })], 1); - })], 2) : _vm._e(); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true": -/*!******************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true ***! - \******************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c; - return _c("div", { - staticClass: "settings-markdown", - domProps: { - innerHTML: _vm._s(_vm.renderMarkdown) - } - }); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true": -/*!*************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true ***! - \*************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c(_setup.NcAppContent, { - staticClass: "app-settings-content", - attrs: { - "page-heading": _setup.appStoreLabel - } - }, [_c("h2", { - staticClass: "app-settings-content__label", - domProps: { - textContent: _vm._s(_setup.viewLabel) - } - }), _vm._v(" "), _setup.currentCategory === "discover" ? _c(_setup.AppStoreDiscoverSection) : _setup.isLoading ? _c(_setup.NcEmptyContent, { - staticClass: "empty-content__loading", - attrs: { - name: _setup.t("settings", "Loading app list") - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcLoadingIcon, { - attrs: { - size: 64 - } - })]; - }, - proxy: true - }]) - }) : _c(_setup.AppList, { - attrs: { - category: _setup.currentCategory - } - })], 1); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true": -/*!***********************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true ***! - \***********************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _c(_setup.NcAppNavigation, { - attrs: { - "aria-label": _setup.t("settings", "Apps") - }, - scopedSlots: _vm._u([{ - key: "list", - fn: function () { - return [_c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-discover", - to: { - name: "apps-category", - params: { - category: "discover" - } - }, - name: _setup.APPS_SECTION_ENUM.discover - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.discover - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-installed", - to: { - name: "apps-category", - params: { - category: "installed" - } - }, - name: _setup.APPS_SECTION_ENUM.installed - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.installed - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-enabled", - to: { - name: "apps-category", - params: { - category: "enabled" - } - }, - name: _setup.APPS_SECTION_ENUM.enabled - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.enabled - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-disabled", - to: { - name: "apps-category", - params: { - category: "disabled" - } - }, - name: _setup.APPS_SECTION_ENUM.disabled - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.disabled - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _setup.updateCount > 0 ? _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-updates", - to: { - name: "apps-category", - params: { - category: "updates" - } - }, - name: _setup.APPS_SECTION_ENUM.updates - }, - scopedSlots: _vm._u([{ - key: "counter", - fn: function () { - return [_c(_setup.NcCounterBubble, [_vm._v(_vm._s(_setup.updateCount))])]; - }, - proxy: true - }, { - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.updates - } - })]; - }, - proxy: true - }], null, false, 2824895104) - }) : _vm._e(), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-your-bundles", - to: { - name: "apps-category", - params: { - category: "app-bundles" - } - }, - name: _setup.APPS_SECTION_ENUM["app-bundles"] - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.bundles - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _c(_setup.NcAppNavigationSpacer), _vm._v(" "), _setup.appstoreEnabled && _setup.categoriesLoading ? _c("li", { - staticClass: "categories--loading" - }, [_c(_setup.NcLoadingIcon, { - attrs: { - size: 20, - "aria-label": _setup.t("settings", "Loading categories") - } - })], 1) : _setup.appstoreEnabled && !_setup.categoriesLoading ? [_setup.isSubscribed ? _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-supported", - to: { - name: "apps-category", - params: { - category: "supported" - } - }, - name: _setup.APPS_SECTION_ENUM.supported - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.supported - } - })]; - }, - proxy: true - }], null, false, 613663011) - }) : _vm._e(), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-category-featured", - to: { - name: "apps-category", - params: { - category: "featured" - } - }, - name: _setup.APPS_SECTION_ENUM.featured - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: _setup.APPSTORE_CATEGORY_ICONS.featured - } - })]; - }, - proxy: true - }]) - }), _vm._v(" "), _vm._l(_setup.categories, function (category) { - return _c(_setup.NcAppNavigationItem, { - key: category.id, - attrs: { - id: "app-category-".concat(category.id), - name: category.displayName, - to: { - name: "apps-category", - params: { - category: category.id - } - } - }, - scopedSlots: _vm._u([{ - key: "icon", - fn: function () { - return [_c(_setup.NcIconSvgWrapper, { - attrs: { - path: category.icon - } - })]; - }, - proxy: true - }], null, true) - }); - })] : _vm._e(), _vm._v(" "), _c(_setup.NcAppNavigationItem, { - attrs: { - id: "app-developer-docs", - name: _setup.t("settings", "Developer documentation ↗"), - href: _setup.developerDocsUrl - } - })]; - }, - proxy: true - }]) - }); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true": -/*!********************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true ***! - \********************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* binding */ render), -/* harmony export */ staticRenderFns: () => (/* binding */ staticRenderFns) -/* harmony export */ }); -var render = function render() { - var _vm = this, - _c = _vm._self._c, - _setup = _vm._self._setupProxy; - return _setup.showSidebar ? _c(_setup.NcAppSidebar, { - staticClass: "app-sidebar", - class: { - "app-sidebar--with-screenshot": _setup.hasScreenshot - }, - attrs: { - active: _setup.activeTab, - background: _setup.hasScreenshot ? _setup.app.screenshot : undefined, - compact: !_setup.hasScreenshot, - name: _setup.app.name, - title: _setup.app.name, - subname: _setup.licenseText, - subtitle: _setup.licenseText - }, - on: { - "update:active": function ($event) { - _setup.activeTab = $event; - }, - close: _setup.hideAppDetails - }, - scopedSlots: _vm._u([!_setup.hasScreenshot ? { - key: "header", - fn: function () { - var _setup$appIcon; - return [_c(_setup.NcIconSvgWrapper, { - staticClass: "app-sidebar__fallback-icon", - attrs: { - svg: (_setup$appIcon = _setup.appIcon) !== null && _setup$appIcon !== void 0 ? _setup$appIcon : "", - size: 64 - } - })]; - }, - proxy: true - } : null, { - key: "description", - fn: function () { - return [_c("div", { - staticClass: "app-sidebar__badges" - }, [_c(_setup.AppLevelBadge, { - attrs: { - level: _setup.app.level - } - }), _vm._v(" "), _setup.hasRating ? _c(_setup.AppScore, { - attrs: { - score: _setup.rating - } - }) : _vm._e()], 1)]; - }, - proxy: true - }], null, true) - }, [_vm._v(" "), _vm._v(" "), _c(_setup.AppDescriptionTab, { - attrs: { - app: _setup.app - } - }), _vm._v(" "), _c(_setup.AppDetailsTab, { - attrs: { - app: _setup.app - } - }), _vm._v(" "), _c(_setup.AppReleasesTab, { - attrs: { - app: _setup.app - } - })], 1) : _vm._e(); -}; -var staticRenderFns = []; -render._withStripped = true; - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.apps-list[data-v-6d1e92a4] { - display: flex; - flex-wrap: wrap; - align-content: flex-start; -} -.apps-list--move[data-v-6d1e92a4] { - transition: transform 1s; -} -.apps-list #app-list-update-all[data-v-6d1e92a4] { - margin-left: 10px; -} -.apps-list__toolbar[data-v-6d1e92a4] { - height: 60px; - padding: 8px; - padding-left: 60px; - width: 100%; - background-color: var(--color-main-background); - position: sticky; - top: 0; - z-index: 1; - display: flex; - align-items: center; -} -.apps-list--list-view[data-v-6d1e92a4] { - margin-bottom: 100px; - position: relative; -} -.apps-list__list-container[data-v-6d1e92a4] { - width: 100%; -} -.apps-list__store-container[data-v-6d1e92a4] { - display: flex; - flex-wrap: wrap; -} -.apps-list__bundle-heading[data-v-6d1e92a4] { - display: flex; - align-items: center; - margin: 20px 10px 20px 0; -} -.apps-list__bundle-header[data-v-6d1e92a4] { - margin: 0 10px 0 50px; - font-weight: bold; - font-size: 20px; - line-height: 30px; - color: var(--color-text-light); -} -#apps-list-search .app-item h2[data-v-6d1e92a4] { - margin-bottom: 0; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss": -/*!********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss ***! - \********************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `/** - * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -.app-item[data-v-429da85a] { - position: relative; -} -.app-item[data-v-429da85a]:hover { - background-color: var(--color-background-dark); -} -.app-item--list-view[data-v-429da85a] { - --app-item-padding: calc(var(--default-grid-baseline) * 2); - --app-item-height: calc(var(--default-clickable-area) + var(--app-item-padding) * 2); - /* hide app version and level on narrower screens */ - /* Hide actions on a small screen. Click on app opens fill-screen sidebar with the buttons */ -} -.app-item--list-view.app-item--selected[data-v-429da85a] { - background-color: var(--color-background-dark); -} -.app-item--list-view > *[data-v-429da85a] { - vertical-align: middle; - border-bottom: 1px solid var(--color-border); - padding: var(--app-item-padding); - height: var(--app-item-height); -} -.app-item--list-view .app-image[data-v-429da85a] { - width: var(--default-clickable-area); - height: auto; - text-align: right; -} -.app-item--list-view .app-image-icon svg[data-v-429da85a], -.app-item--list-view .app-image-icon .icon-settings-dark[data-v-429da85a] { - margin-top: 5px; - width: 20px; - height: 20px; - opacity: 0.5; - background-size: cover; - display: inline-block; -} -.app-item--list-view .app-name[data-v-429da85a] { - padding: 0 var(--app-item-padding); -} -.app-item--list-view .app-name--link[data-v-429da85a] { - height: var(--app-item-height); - display: flex; - align-items: center; -} -.app-item--list-view .app-name--link[data-v-429da85a]::after { - content: ""; - position: absolute; - left: 0; - right: 0; - height: var(--app-item-height); -} -.app-item--list-view .app-actions[data-v-429da85a] { - display: flex; - gap: var(--app-item-padding); - flex-wrap: wrap; - justify-content: end; -} -.app-item--list-view .app-actions .icon-loading-small[data-v-429da85a] { - display: inline-block; - top: 4px; - margin-right: 10px; -} -@media only screen and (max-width: 900px) { -.app-item--list-view .app-version[data-v-429da85a], - .app-item--list-view .app-level[data-v-429da85a] { - display: none; -} -} -@media only screen and (max-width: 512px) { -.app-item--list-view .app-actions[data-v-429da85a] { - display: none; -} -} -.app-item--store-view[data-v-429da85a] { - padding: 30px; -} -.app-item--store-view .app-image-icon .icon-settings-dark[data-v-429da85a] { - width: 100%; - height: 150px; - background-size: 45px; - opacity: 0.5; -} -.app-item--store-view .app-image-icon svg[data-v-429da85a] { - position: absolute; - bottom: 43px; - /* position halfway vertically */ - width: 64px; - height: 64px; - opacity: 0.1; -} -.app-item--store-view .app-name[data-v-429da85a] { - margin: 5px 0; -} -.app-item--store-view .app-name--link[data-v-429da85a]::after { - content: ""; - position: absolute; - top: 0; - left: 0; - right: 0; - bottom: 0; -} -.app-item--store-view .app-actions[data-v-429da85a] { - margin: 10px 0; -} -@media only screen and (min-width: 1601px) { -.app-item--store-view[data-v-429da85a] { - width: 25%; -} -.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { - width: 33%; -} -} -@media only screen and (max-width: 1600px) { -.app-item--store-view[data-v-429da85a] { - width: 25%; -} -.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { - width: 33%; -} -} -@media only screen and (max-width: 1400px) { -.app-item--store-view[data-v-429da85a] { - width: 33%; -} -.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { - width: 50%; -} -} -@media only screen and (max-width: 900px) { -.app-item--store-view[data-v-429da85a] { - width: 50%; -} -.app-item--store-view.app-item--with-sidebar[data-v-429da85a] { - width: 100%; -} -} -@media only screen and (max-width: 1024px) { -.app-item--store-view[data-v-429da85a] { - width: 50%; -} -} -@media only screen and (max-width: 480px) { -.app-item--store-view[data-v-429da85a] { - width: 100%; -} -} -.app-icon[data-v-429da85a] { - filter: var(--background-invert-if-bright); -} -.app-image[data-v-429da85a] { - position: relative; - height: 150px; - opacity: 1; - overflow: hidden; -} -.app-image img[data-v-429da85a] { - width: 100%; -} -.app-version[data-v-429da85a] { - color: var(--color-text-maxcontrast); -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-level-badge[data-v-dbef4182] { - color: var(--color-text-maxcontrast); - background-color: transparent; - border: 1px solid var(--color-text-maxcontrast); - border-radius: var(--border-radius); - display: flex; - flex-direction: row; - gap: 6px; - padding: 3px 6px; - width: fit-content; -} -.app-level-badge--supported[data-v-dbef4182] { - border-color: var(--color-success); - color: var(--color-success); -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-discover[data-v-2c2ea092] { - max-width: 1008px; /* 900px + 2x 54px padding for the carousel controls */ - margin-inline: auto; - padding-inline: 54px; - /* Padding required to make last element not bound to the bottom */ - padding-block-end: var(--default-clickable-area, 44px); - display: flex; - flex-direction: column; - gap: var(--default-clickable-area, 44px); -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-description[data-v-645c86d4] { - padding: 12px; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss": -/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss ***! - \**********************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-details[data-v-564443e0] { - padding: 20px; -} -.app-details__actions-manage[data-v-564443e0] { - display: flex; -} -.app-details__actions-manage input[data-v-564443e0] { - flex: 0 1 auto; - min-width: 0; - text-overflow: ellipsis; - white-space: nowrap; - overflow: hidden; -} -.app-details__authors[data-v-564443e0] { - color: var(--color-text-maxcontrast); -} -.app-details__section[data-v-564443e0] { - margin-top: 15px; -} -.app-details__section h4[data-v-564443e0] { - font-size: 16px; - font-weight: bold; - margin-block-end: 5px; -} -.app-details__interact[data-v-564443e0] { - display: flex; - flex-direction: row; - flex-wrap: wrap; - gap: 12px; -} -.app-details__documentation a[data-v-564443e0] { - text-decoration: underline; -} -.app-details__documentation li[data-v-564443e0] { - padding-inline-start: 20px; -} -.app-details__documentation li[data-v-564443e0]::before { - width: 5px; - height: 5px; - border-radius: 100%; - background-color: var(--color-main-text); - content: ""; - float: inline-start; - margin-inline-start: -13px; - position: relative; - top: 10px; -} -.force[data-v-564443e0] { - color: var(--color-error); - border-color: var(--color-error); - background: var(--color-main-background); -} -.force[data-v-564443e0]:hover, -.force[data-v-564443e0]:active { - color: var(--color-main-background); - border-color: var(--color-error) !important; - background: var(--color-error); -} -.missing-dependencies[data-v-564443e0] { - list-style: initial; - list-style-type: initial; - list-style-position: inside; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss": -/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss ***! - \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar-tabs__release h2[data-v-2c452a5c] { - border-bottom: 1px solid var(--color-border); - font-size: 24px; -} -.app-sidebar-tabs__release-text[data-v-2c452a5c] h3 { - font-size: 20px; -} -.app-sidebar-tabs__release-text[data-v-2c452a5c] h4 { - font-size: 17px; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss": -/*!*************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.settings-markdown[data-v-11f4a1b0] h1, -.settings-markdown[data-v-11f4a1b0] h2, -.settings-markdown[data-v-11f4a1b0] h3, -.settings-markdown[data-v-11f4a1b0] h4, -.settings-markdown[data-v-11f4a1b0] h5, -.settings-markdown[data-v-11f4a1b0] h6 { - font-weight: 600; - line-height: 120%; - margin-top: 24px; - margin-bottom: 12px; - color: var(--color-main-text); -} -.settings-markdown[data-v-11f4a1b0] h1 { - font-size: 36px; - margin-top: 48px; -} -.settings-markdown[data-v-11f4a1b0] h2 { - font-size: 28px; - margin-top: 48px; -} -.settings-markdown[data-v-11f4a1b0] h3 { - font-size: 24px; -} -.settings-markdown[data-v-11f4a1b0] h4 { - font-size: 21px; -} -.settings-markdown[data-v-11f4a1b0] h5 { - font-size: 17px; -} -.settings-markdown[data-v-11f4a1b0] h6 { - font-size: var(--default-font-size); -} -.settings-markdown[data-v-11f4a1b0] pre { - white-space: pre; - overflow-x: auto; - background-color: var(--color-background-dark); - border-radius: var(--border-radius); - padding: 1em 1.3em; - margin-bottom: 1em; -} -.settings-markdown[data-v-11f4a1b0] p code { - background-color: var(--color-background-dark); - border-radius: var(--border-radius); - padding: 0.1em 0.3em; -} -.settings-markdown[data-v-11f4a1b0] li { - position: relative; -} -.settings-markdown[data-v-11f4a1b0] ul, .settings-markdown[data-v-11f4a1b0] ol { - padding-left: 10px; - margin-left: 10px; -} -.settings-markdown[data-v-11f4a1b0] ul li { - list-style-type: disc; -} -.settings-markdown[data-v-11f4a1b0] ul > li > ul > li { - list-style-type: circle; -} -.settings-markdown[data-v-11f4a1b0] ul > li > ul > li ul li { - list-style-type: square; -} -.settings-markdown[data-v-11f4a1b0] blockquote { - padding-left: 1em; - border-left: 4px solid var(--color-primary-element); - color: var(--color-text-maxcontrast); - margin-left: 0; - margin-right: 0; -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss": -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, `.app-sidebar--with-screenshot[data-v-a38ee2fa] .app-sidebar-header__figure { - background-size: cover; -} -.app-sidebar__fallback-icon[data-v-a38ee2fa] { - width: 100%; - height: 100%; -} -.app-sidebar__badges[data-v-a38ee2fa] { - display: flex; - flex-direction: row; - gap: 12px; -} -.app-sidebar__version[data-v-a38ee2fa] { - color: var(--color-text-maxcontrast); -}`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css": -/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css ***! - \*****************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, ` -.app-score__wrapper[data-v-0ecce4fc] { - display: inline-flex; - color: var(--color-favorite, #a08b00); -> *[data-v-0ecce4fc] { - vertical-align: text-bottom; -} -} -`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css": -/*!****************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css ***! - \****************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, ` -.empty-content__loading[data-v-6f6912c9] { - height: 100%; -} -.app-settings-content__label[data-v-6f6912c9] { - margin-block-start: var(--app-navigation-padding); - margin-inline-start: calc(var(--default-clickable-area) + var(--app-navigation-padding) * 2); - min-height: var(--default-clickable-area); - line-height: var(--default-clickable-area); - vertical-align: center; -} -`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css": -/*!**************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css ***! - \**************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/css-loader/dist/runtime/noSourceMaps.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); -/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__); -// Imports - - -var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default())); -// Module -___CSS_LOADER_EXPORT___.push([module.id, ` -/* The categories-loading indicator */ -.categories--loading[data-v-0208f5bd] { - flex: 1; - display: flex; - align-items: center; - justify-content: center; -} -`, ""]); -// Exports -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true": -/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true ***! - \****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss": -/*!************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss ***! - \************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss": -/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss ***! - \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss": -/*!**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss ***! - \**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss": -/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss ***! - \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss": -/*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss ***! - \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss": -/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss ***! - \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css": -/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css ***! - \*********************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css": -/*!********************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css ***! - \********************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css": -/*!******************************************************************************************************************************************************************************************************************************************************************************************************************!*\ - !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css ***! - \******************************************************************************************************************************************************************************************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "./node_modules/style-loader/dist/runtime/styleDomAPI.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "./node_modules/style-loader/dist/runtime/insertBySelector.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "./node_modules/style-loader/dist/runtime/insertStyleElement.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "./node_modules/style-loader/dist/runtime/styleTagTransform.js"); -/* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__); -/* harmony import */ var _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css */ "./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css"); - - - - - - - - - - - -var options = {}; - -options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default()); -options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default()); - - options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head"); - -options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default()); -options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default()); - -var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"], options); - - - - - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList.vue": -/*!**************************************************!*\ - !*** ./apps/settings/src/components/AppList.vue ***! - \**************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppList.vue?vue&type=template&id=6d1e92a4&scoped=true */ "./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true"); -/* harmony import */ var _AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppList.vue?vue&type=script&lang=js */ "./apps/settings/src/components/AppList.vue?vue&type=script&lang=js"); -/* harmony import */ var _AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true */ "./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "6d1e92a4", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppList.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppItem.vue": -/*!**********************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppItem.vue ***! - \**********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppItem.vue?vue&type=template&id=429da85a&scoped=true */ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true"); -/* harmony import */ var _AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppItem.vue?vue&type=script&lang=js */ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js"); -/* harmony import */ var _AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss */ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "429da85a", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppList/AppItem.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue": -/*!****************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue ***! - \****************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true */ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true"); -/* harmony import */ var _AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss */ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "dbef4182", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppList/AppLevelBadge.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppScore.vue": -/*!***********************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppScore.vue ***! - \***********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true */ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true"); -/* harmony import */ var _AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppScore.vue?vue&type=script&lang=ts */ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts"); -/* harmony import */ var _AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css */ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "0ecce4fc", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppList/AppScore.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue": -/*!***********************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true"); -/* harmony import */ var _AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "2c2ea092", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue": -/*!****************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue ***! - \****************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true"); -/* harmony import */ var _AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "645c86d4", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue": -/*!************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue ***! - \************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true"); -/* harmony import */ var _AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppDetailsTab.vue?vue&type=script&lang=js */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js"); -/* harmony import */ var _AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "564443e0", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue": -/*!*************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue ***! - \*************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true"); -/* harmony import */ var _AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss */ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "2c452a5c", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/Markdown.vue": -/*!***************************************************!*\ - !*** ./apps/settings/src/components/Markdown.vue ***! - \***************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true */ "./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true"); -/* harmony import */ var _Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./Markdown.vue?vue&type=script&lang=js */ "./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js"); -/* harmony import */ var _Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss */ "./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"], - _Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "11f4a1b0", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/Markdown.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/SvgFilterMixin.vue": -/*!*********************************************************!*\ - !*** ./apps/settings/src/components/SvgFilterMixin.vue ***! - \*********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./SvgFilterMixin.vue?vue&type=script&lang=js */ "./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); -var render, staticRenderFns -; - - - -/* normalize component */ -; -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_1__["default"])( - _SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"], - render, - staticRenderFns, - false, - null, - null, - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/components/SvgFilterMixin.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStore.vue": -/*!**********************************************!*\ - !*** ./apps/settings/src/views/AppStore.vue ***! - \**********************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStore.vue?vue&type=template&id=6f6912c9&scoped=true */ "./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true"); -/* harmony import */ var _AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStore.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css */ "./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "6f6912c9", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/views/AppStore.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreNavigation.vue": -/*!********************************************************!*\ - !*** ./apps/settings/src/views/AppStoreNavigation.vue ***! - \********************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true */ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true"); -/* harmony import */ var _AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css */ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "0208f5bd", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/views/AppStoreNavigation.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreSidebar.vue": -/*!*****************************************************!*\ - !*** ./apps/settings/src/views/AppStoreSidebar.vue ***! - \*****************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true */ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true"); -/* harmony import */ var _AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts */ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts"); -/* harmony import */ var _AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss */ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss"); -/* harmony import */ var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/vue-loader/lib/runtime/componentNormalizer.js"); - - - -; - - -/* normalize component */ - -var component = (0,_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])( - _AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_1__["default"], - _AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render, - _AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns, - false, - null, - "a38ee2fa", - null - -) - -/* hot reload */ -if (false) { var api; } -component.options.__file = "apps/settings/src/views/AppStoreSidebar.vue" -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (component.exports); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts": -/*!***************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts ***! - \***************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts": -/*!***********************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts ***! - \***********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=script&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=script&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_script_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts": -/*!**********************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts ***! - \**********************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts": -/*!***************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts ***! - \***************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts": -/*!************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts ***! - \************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts": -/*!*********************************************************************************!*\ - !*** ./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts": -/*!*******************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts ***! - \*******************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts": -/*!****************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts ***! - \****************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts */ "./node_modules/babel-loader/lib/index.js!./node_modules/ts-loader/index.js??clonedRuleSet-4.use[1]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=script&setup=true&lang=ts"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_ts_loader_index_js_clonedRuleSet_4_use_1_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_script_setup_true_lang_ts__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList.vue?vue&type=script&lang=js": -/*!**************************************************************************!*\ - !*** ./apps/settings/src/components/AppList.vue?vue&type=script&lang=js ***! - \**************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js": -/*!**********************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js ***! - \**********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js": -/*!************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js ***! - \************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js": -/*!***************************************************************************!*\ - !*** ./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js ***! - \***************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js": -/*!*********************************************************************************!*\ - !*** ./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js ***! - \*********************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SvgFilterMixin.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/SvgFilterMixin.vue?vue&type=script&lang=js"); - /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_SvgFilterMixin_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]); - -/***/ }), - -/***/ "./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true": -/*!********************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true ***! - \********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_template_id_6d1e92a4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=template&id=6d1e92a4&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=template&id=6d1e92a4&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true": -/*!****************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true ***! - \****************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_template_id_429da85a_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=template&id=429da85a&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=template&id=429da85a&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true": -/*!**********************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true ***! - \**********************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_template_id_dbef4182_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=template&id=dbef4182&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true": -/*!*****************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true ***! - \*****************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_template_id_0ecce4fc_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=template&id=0ecce4fc&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true": -/*!*****************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true ***! - \*****************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_template_id_2c2ea092_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=template&id=2c2ea092&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true": -/*!**********************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true ***! - \**********************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_template_id_645c86d4_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=template&id=645c86d4&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true": -/*!******************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true ***! - \******************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_template_id_564443e0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=template&id=564443e0&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true": -/*!*******************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true ***! - \*******************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_template_id_2c452a5c_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=template&id=2c452a5c&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true": -/*!*********************************************************************************************!*\ - !*** ./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true ***! - \*********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_template_id_11f4a1b0_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=template&id=11f4a1b0&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true": -/*!****************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true ***! - \****************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_template_id_6f6912c9_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=template&id=6f6912c9&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=template&id=6f6912c9&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true": -/*!**************************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true ***! - \**************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_template_id_0208f5bd_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=template&id=0208f5bd&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true": -/*!***********************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true ***! - \***********************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ render: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render), -/* harmony export */ staticRenderFns: () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns) -/* harmony export */ }); -/* harmony import */ var _node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_template_id_a38ee2fa_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true */ "./node_modules/babel-loader/lib/index.js!./node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=template&id=a38ee2fa&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true": -/*!***********************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true ***! - \***********************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppList_vue_vue_type_style_index_0_id_6d1e92a4_lang_scss_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList.vue?vue&type=style&index=0&id=6d1e92a4&lang=scss&scoped=true"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss": -/*!*******************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss ***! - \*******************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppItem_vue_vue_type_style_index_0_id_429da85a_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppItem.vue?vue&type=style&index=0&id=429da85a&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss": -/*!*************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss ***! - \*************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppLevelBadge_vue_vue_type_style_index_0_id_dbef4182_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppLevelBadge.vue?vue&type=style&index=0&id=dbef4182&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss": -/*!********************************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss ***! - \********************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreDiscoverSection_vue_vue_type_style_index_0_id_2c2ea092_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreDiscover/AppStoreDiscoverSection.vue?vue&type=style&index=0&id=2c2ea092&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss": -/*!*************************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss ***! - \*************************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDescriptionTab_vue_vue_type_style_index_0_id_645c86d4_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDescriptionTab.vue?vue&type=style&index=0&id=645c86d4&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss": -/*!*********************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss ***! - \*********************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppDetailsTab_vue_vue_type_style_index_0_id_564443e0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue?vue&type=style&index=0&id=564443e0&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss": -/*!**********************************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss ***! - \**********************************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppReleasesTab_vue_vue_type_style_index_0_id_2c452a5c_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppStoreSidebar/AppReleasesTab.vue?vue&type=style&index=0&id=2c452a5c&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss": -/*!************************************************************************************************************!*\ - !*** ./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss ***! - \************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Markdown_vue_vue_type_style_index_0_id_11f4a1b0_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/Markdown.vue?vue&type=style&index=0&id=11f4a1b0&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss": -/*!**************************************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss ***! - \**************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_sass_loader_dist_cjs_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreSidebar_vue_vue_type_style_index_0_id_a38ee2fa_scoped_true_lang_scss__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/sass-loader/dist/cjs.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreSidebar.vue?vue&type=style&index=0&id=a38ee2fa&scoped=true&lang=scss"); - - -/***/ }), - -/***/ "./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css": -/*!*******************************************************************************************************************!*\ - !*** ./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css ***! - \*******************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppScore_vue_vue_type_style_index_0_id_0ecce4fc_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../../node_modules/style-loader/dist/cjs.js!../../../../../node_modules/css-loader/dist/cjs.js!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/components/AppList/AppScore.vue?vue&type=style&index=0&id=0ecce4fc&scoped=true&lang=css"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css": -/*!******************************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css ***! - \******************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStore_vue_vue_type_style_index_0_id_6f6912c9_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStore.vue?vue&type=style&index=0&id=6f6912c9&scoped=true&lang=css"); - - -/***/ }), - -/***/ "./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css": -/*!****************************************************************************************************************!*\ - !*** ./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css ***! - \****************************************************************************************************************/ -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppStoreNavigation_vue_vue_type_style_index_0_id_0208f5bd_scoped_true_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../../node_modules/style-loader/dist/cjs.js!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/vue-loader/lib/index.js??vue-loader-options!./apps/settings/src/views/AppStoreNavigation.vue?vue&type=style&index=0&id=0208f5bd&scoped=true&lang=css"); - - -/***/ }), - -/***/ "./node_modules/@nextcloud/vue/dist/Components/NcAppSidebar.mjs": -/*!**********************************************************************!*\ - !*** ./node_modules/@nextcloud/vue/dist/Components/NcAppSidebar.mjs ***! - \**********************************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* reexport safe */ _chunks_NcAppSidebar_CqER6_dl_mjs__WEBPACK_IMPORTED_MODULE_0__.N) -/* harmony export */ }); -/* harmony import */ var _chunks_NcAppSidebar_CqER6_dl_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../chunks/NcAppSidebar-CqER6-dl.mjs */ "./node_modules/@nextcloud/vue/dist/chunks/NcAppSidebar-CqER6-dl.mjs"); - - - - -/***/ }), - -/***/ "./node_modules/p-limit/index.js": -/*!***************************************!*\ - !*** ./node_modules/p-limit/index.js ***! - \***************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ pLimit) -/* harmony export */ }); -/* harmony import */ var yocto_queue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! yocto-queue */ "./node_modules/yocto-queue/index.js"); - -function pLimit(concurrency) { - if (!((Number.isInteger(concurrency) || concurrency === Number.POSITIVE_INFINITY) && concurrency > 0)) { - throw new TypeError('Expected `concurrency` to be a number from 1 and up'); - } - const queue = new yocto_queue__WEBPACK_IMPORTED_MODULE_0__["default"](); - let activeCount = 0; - const next = () => { - activeCount--; - if (queue.size > 0) { - queue.dequeue()(); - } - }; - const run = async (fn, resolve, args) => { - activeCount++; - const result = (async () => fn(...args))(); - resolve(result); - try { - await result; - } catch {} - next(); - }; - const enqueue = (fn, resolve, args) => { - queue.enqueue(run.bind(undefined, fn, resolve, args)); - (async () => { - // This function needs to wait until the next microtask before comparing - // `activeCount` to `concurrency`, because `activeCount` is updated asynchronously - // when the run function is dequeued and called. The comparison in the if-statement - // needs to happen asynchronously as well to get an up-to-date value for `activeCount`. - await Promise.resolve(); - if (activeCount < concurrency && queue.size > 0) { - queue.dequeue()(); - } - })(); - }; - const generator = function (fn) { - for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { - args[_key - 1] = arguments[_key]; - } - return new Promise(resolve => { - enqueue(fn, resolve, args); - }); - }; - Object.defineProperties(generator, { - activeCount: { - get: () => activeCount - }, - pendingCount: { - get: () => queue.size - }, - clearQueue: { - value: () => { - queue.clear(); - } - } - }); - return generator; -} - -/***/ }), - -/***/ "./node_modules/yocto-queue/index.js": -/*!*******************************************!*\ - !*** ./node_modules/yocto-queue/index.js ***! - \*******************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* binding */ Queue) -/* harmony export */ }); -let _Symbol$iterator; -function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); } -function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } } -function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; } -function _classApplyDescriptorSet(receiver, descriptor, value) { if (descriptor.set) { descriptor.set.call(receiver, value); } else { if (!descriptor.writable) { throw new TypeError("attempted to set read only private field"); } descriptor.value = value; } } -function _classPrivateFieldGet(receiver, privateMap) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); return _classApplyDescriptorGet(receiver, descriptor); } -function _classExtractFieldDescriptor(receiver, privateMap, action) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to " + action + " private field on non-instance"); } return privateMap.get(receiver); } -function _classApplyDescriptorGet(receiver, descriptor) { if (descriptor.get) { return descriptor.get.call(receiver); } return descriptor.value; } -function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : String(i); } -function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } -/* -How it works: -`this.#head` is an instance of `Node` which keeps track of its current value and nests another instance of `Node` that keeps the value that comes after it. When a value is provided to `.enqueue()`, the code needs to iterate through `this.#head`, going deeper and deeper to find the last value. However, iterating through every single item is slow. This problem is solved by saving a reference to the last value as `this.#tail` so that it can reference it to add a new value. -*/ - -class Node { - constructor(value) { - _defineProperty(this, "value", void 0); - _defineProperty(this, "next", void 0); - this.value = value; - } -} -var _head = /*#__PURE__*/new WeakMap(); -var _tail = /*#__PURE__*/new WeakMap(); -var _size = /*#__PURE__*/new WeakMap(); -_Symbol$iterator = Symbol.iterator; -class Queue { - constructor() { - _classPrivateFieldInitSpec(this, _head, { - writable: true, - value: void 0 - }); - _classPrivateFieldInitSpec(this, _tail, { - writable: true, - value: void 0 - }); - _classPrivateFieldInitSpec(this, _size, { - writable: true, - value: void 0 - }); - this.clear(); - } - enqueue(value) { - var _this$size, _this$size2; - const node = new Node(value); - if (_classPrivateFieldGet(this, _head)) { - _classPrivateFieldGet(this, _tail).next = node; - _classPrivateFieldSet(this, _tail, node); - } else { - _classPrivateFieldSet(this, _head, node); - _classPrivateFieldSet(this, _tail, node); - } - _classPrivateFieldSet(this, _size, (_this$size = _classPrivateFieldGet(this, _size), _this$size2 = _this$size++, _this$size)), _this$size2; - } - dequeue() { - var _this$size3, _this$size4; - const current = _classPrivateFieldGet(this, _head); - if (!current) { - return; - } - _classPrivateFieldSet(this, _head, _classPrivateFieldGet(this, _head).next); - _classPrivateFieldSet(this, _size, (_this$size3 = _classPrivateFieldGet(this, _size), _this$size4 = _this$size3--, _this$size3)), _this$size4; - return current.value; - } - clear() { - _classPrivateFieldSet(this, _head, undefined); - _classPrivateFieldSet(this, _tail, undefined); - _classPrivateFieldSet(this, _size, 0); - } - get size() { - return _classPrivateFieldGet(this, _size); - } - *[_Symbol$iterator]() { - let current = _classPrivateFieldGet(this, _head); - while (current) { - yield current.value; - current = current.next; - } - } -} - -/***/ }), - -/***/ "./node_modules/vue-router/composables.mjs": -/*!*************************************************!*\ - !*** ./node_modules/vue-router/composables.mjs ***! - \*************************************************/ -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ isSameRouteLocationParams: () => (/* binding */ isSameRouteLocationParams), -/* harmony export */ onBeforeRouteLeave: () => (/* binding */ onBeforeRouteLeave), -/* harmony export */ onBeforeRouteUpdate: () => (/* binding */ onBeforeRouteUpdate), -/* harmony export */ useLink: () => (/* binding */ useLink), -/* harmony export */ useRoute: () => (/* binding */ useRoute), -/* harmony export */ useRouter: () => (/* binding */ useRouter) -/* harmony export */ }); -/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.runtime.esm.js"); -/*! - * vue-router v3.6.5 - * (c) 2022 Evan You - * @license MIT - */ - - -// dev only warn if no current instance - -function throwNoCurrentInstance (method) { - if (!(0,vue__WEBPACK_IMPORTED_MODULE_0__.getCurrentInstance)()) { - throw new Error( - ("[vue-router]: Missing current instance. " + method + "() must be called inside