diff --git a/package-lock.json b/package-lock.json index 6c464c8..eb97cba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "idbstudio", - "version": "1.2.1", + "version": "1.2.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -5844,9 +5844,9 @@ } }, "jsstore": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/jsstore/-/jsstore-2.1.2.tgz", - "integrity": "sha512-n7xA6EMMARvOutyMzpPjp6ZhBYIdu4mi5gikgXy1F6wCZStMyr3b9apFQThpQBUQ47mcnMPWE0iM+JF9evZybg==" + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/jsstore/-/jsstore-2.2.1.tgz", + "integrity": "sha512-FA3tGl4GDliNqGzxppkbO37tW6RgGADXyU0hb6pRJ+ym6J214F5iXFCHUvAcgzbVlR8t0UdsX+VXPCuStExBsg==" }, "keyv": { "version": "3.0.0", diff --git a/package.json b/package.json index 55c39ec..6d82de6 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "commander": "^2.15.1", "express": "^4.16.3", "fs-extra": "^6.0.1", - "jsstore": "^2.1.2", + "jsstore": "^2.2.1", "loading-indicator": "^2.0.0", "vue": "^2.5.13", "vue-context-menu": "^2.0.6" diff --git a/src/code/component/query_executor.vue b/src/code/component/query_executor.vue index 605acc3..5b80048 100644 --- a/src/code/component/query_executor.vue +++ b/src/code/component/query_executor.vue @@ -177,26 +177,22 @@ export default class QueryExecutor extends Vue { evaluateAndShowResult(qry: string) { var queryHelperInstance = new QueryHelper(qry); - if (queryHelperInstance.isQryValid()) { - const query = queryHelperInstance.getQuery(); - if (queryHelperInstance.errMessage.length == 0) { - new MainService() - .executeQry(query) - .then(qryResult => { - this.showResultInfo = true; - this.resultCount = - Util.getType(qryResult.result) === DATA_TYPE.Array - ? qryResult.result.length - : 0; - this.timeTaken = qryResult.timeTaken.toString(); - vueEvent.$emit("on_qry_result", qryResult.result); - }) - .catch(function(err) { - vueEvent.$emit("on_qry_error", err); - }); - } else { - vueEvent.$emit("on_error", queryHelperInstance.errMessage); - } + if (queryHelperInstance.validateAndModifyQry()) { + const query = queryHelperInstance.query; + new MainService() + .executeQry(query) + .then(qryResult => { + this.showResultInfo = true; + this.resultCount = + Util.getType(qryResult.result) === DATA_TYPE.Array + ? qryResult.result.length + : 0; + this.timeTaken = qryResult.timeTaken.toString(); + vueEvent.$emit("on_qry_result", qryResult.result); + }) + .catch(function(err) { + vueEvent.$emit("on_qry_error", err); + }); } else { vueEvent.$emit("on_error", queryHelperInstance.errMessage); } diff --git a/src/code/enum.ts b/src/code/enum.ts index b481461..12675c8 100644 --- a/src/code/enum.ts +++ b/src/code/enum.ts @@ -17,4 +17,5 @@ export enum API { BulkInsert = "bulkInsert", ExportJson = "exportJson", ChangeLogStatus = "changeLogStatus", + Transaction = "transaction" } \ No newline at end of file diff --git a/src/code/helpers/query_helper.ts b/src/code/helpers/query_helper.ts index a19a322..5aac7c4 100644 --- a/src/code/helpers/query_helper.ts +++ b/src/code/helpers/query_helper.ts @@ -7,7 +7,7 @@ export class QueryHelper { this.query = query; } - getQuery() { + validateAndModifyQry() { var qry; var isAnyApiFound = false; this.allowedApi.forEach((api) => { @@ -15,14 +15,14 @@ export class QueryHelper { const index = this.query.indexOf(api + "("); if (index >= 0) { isAnyApiFound = true; - this.query = `${this.query.substring(0, index)}this.connection. + this.query = `${this.query.substring(0, index)}con. ${this.query.substring(index, this.query.length)}`; } }); if (!isAnyApiFound) { this.errMessage = "No valid api was found"; } - return this.query; + return !this.errMessage.length; } get allowedApi() { @@ -36,19 +36,19 @@ export class QueryHelper { API.Count, API.DropDb, API.BulkInsert, - API.ExportJson + API.ExportJson, + API.Transaction ]; } - isQryValid() { - const notAllowedKeywords = ["Instance", "then", "catch"]; - notAllowedKeywords.every((item) => { - if (this.query.indexOf(item) >= 0) { - this.errMessage = `keyword: '${item}' is not allowed, only write code for api call`; - return false; - } + private isQryValid_() { + const fn = eval(this.query); + if (typeof fn.then === 'function') { return true; - }); - return !this.errMessage.length; + } + else { + this.errMessage = "The query should return a promise"; + } + return false; } } \ No newline at end of file diff --git a/src/code/service/main_service.ts b/src/code/service/main_service.ts index 798f847..05eafdd 100644 --- a/src/code/service/main_service.ts +++ b/src/code/service/main_service.ts @@ -10,6 +10,7 @@ export class MainService extends BaseService { if (Config.isLogEnabled === true) { console.log("qry from service - " + query); } + const con = this.connection; return new Promise((resolve, reject) => { var startTime = performance.now(); this.evaluateQry_(query).then(qryResult => { diff --git a/src/code/service/service_helper.ts b/src/code/service/service_helper.ts index b7ebcf5..2a57633 100644 --- a/src/code/service/service_helper.ts +++ b/src/code/service/service_helper.ts @@ -1,6 +1,8 @@ import * as JsStore from 'jsstore'; -import * as workerPath from "file-loader?name=scripts/[name].[hash].js!jsstore/dist/jsstore.worker.min.js"; +import * as workerPath from "file-loader?name=scripts/[name].[hash].js!jsstore/dist/jsstore.worker.js"; export class ServiceHelper { static idbCon = new JsStore.Instance(new Worker(workerPath)); -} \ No newline at end of file +} + +(window as any).con = ServiceHelper.idbCon; \ No newline at end of file diff --git a/src/output/index.html b/src/output/index.html index dbbe209..c44c25e 100644 --- a/src/output/index.html +++ b/src/output/index.html @@ -1 +1 @@ -<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta name="keywords" content="idbstudio, jsstore, indexeddb, tools, idb"><meta name="description" content="idbstudio is a management tools for indexeddb library jsstore. It helps users to execute , debug and learn jsstore query."><meta name="robots" content="index, follow"><meta name="author" content="Ujjwal Gupta"><meta name="Revisit-After" content="1 days"><meta name="Rating" content="General"><meta property="og:title" content="IDBStudio"><meta property="og:type" content="IndexedDB management tool"><meta property="og:url" content="https://ujjwalguptaofficial.github.io/idbstudio/"><meta property="og:site_name" content="IDBStudio"><meta property="og:description" content="idbstudio is a management tools for indexeddb library jsstore. It helps users to execute , debug and learn jsstore query."><meta property="og:image" content="/img/JsStore_1200_630.png"><meta name="twitter:creator" content="@ujjwal_kr_gupta"><meta name="twitter:title" content="IDBStudio"><meta name="twitter:description" content="idbstudio is a management tools for indexeddb library jsstore. It helps users to execute , debug and learn jsstore query."><meta name="twitter:image" content="http://jsstore.net/img/JsStore_1200_630.png"><title>IDBStudio</title><link href="./assets/css/fontawesome-all.min.css" rel="stylesheet"><script src="./assets/scripts/ace.min.js"></script><script src="./assets/scripts/mode-javascript.js"></script></head><body><div id="app"></div><script src="scripts/bundle.js?3e7f3ead60fa3c9f587c"></script></body></html> \ No newline at end of file +<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta name="keywords" content="idbstudio, jsstore, indexeddb, tools, idb"><meta name="description" content="idbstudio is a management tools for indexeddb library jsstore. It helps users to execute , debug and learn jsstore query."><meta name="robots" content="index, follow"><meta name="author" content="Ujjwal Gupta"><meta name="Revisit-After" content="1 days"><meta name="Rating" content="General"><meta property="og:title" content="IDBStudio"><meta property="og:type" content="IndexedDB management tool"><meta property="og:url" content="https://ujjwalguptaofficial.github.io/idbstudio/"><meta property="og:site_name" content="IDBStudio"><meta property="og:description" content="idbstudio is a management tools for indexeddb library jsstore. It helps users to execute , debug and learn jsstore query."><meta property="og:image" content="/img/JsStore_1200_630.png"><meta name="twitter:creator" content="@ujjwal_kr_gupta"><meta name="twitter:title" content="IDBStudio"><meta name="twitter:description" content="idbstudio is a management tools for indexeddb library jsstore. It helps users to execute , debug and learn jsstore query."><meta name="twitter:image" content="http://jsstore.net/img/JsStore_1200_630.png"><title>IDBStudio</title><link href="./assets/css/fontawesome-all.min.css" rel="stylesheet"><script src="./assets/scripts/ace.min.js"></script><script src="./assets/scripts/mode-javascript.js"></script></head><body><div id="app"></div><script src="scripts/bundle.js?378a89433bd31e65e065"></script></body></html> \ No newline at end of file diff --git a/src/output/scripts/bundle.js b/src/output/scripts/bundle.js index d1a9d09..e940251 100644 --- a/src/output/scripts/bundle.js +++ b/src/output/scripts/bundle.js @@ -1,5 +1,5 @@ /*! - * @license :idbstudio - V1.2.1 - 10/06/2018 + * @license :idbstudio - V1.2.2 - 11/07/2018 * https://github.com/ujjwalguptaofficial/idbstudio * Copyright (c) 2018 @Ujjwal Gupta; Licensed APACHE-2.0 */ @@ -11438,6 +11438,7 @@ var MainService = /** @class */ (function (_super) { if (jsstore__WEBPACK_IMPORTED_MODULE_1__["Config"].isLogEnabled === true) { console.log("qry from service - " + query); } + var con = this.connection; return new Promise(function (resolve, reject) { var startTime = performance.now(); _this.evaluateQry_(query).then(function (qryResult) { @@ -11511,17 +11512,18 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ServiceHelper", function() { return ServiceHelper; }); /* harmony import */ var jsstore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35); /* harmony import */ var jsstore__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(jsstore__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var file_loader_name_scripts_name_hash_js_jsstore_dist_jsstore_worker_min_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36); -/* harmony import */ var file_loader_name_scripts_name_hash_js_jsstore_dist_jsstore_worker_min_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(file_loader_name_scripts_name_hash_js_jsstore_dist_jsstore_worker_min_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var file_loader_name_scripts_name_hash_js_jsstore_dist_jsstore_worker_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(36); +/* harmony import */ var file_loader_name_scripts_name_hash_js_jsstore_dist_jsstore_worker_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(file_loader_name_scripts_name_hash_js_jsstore_dist_jsstore_worker_js__WEBPACK_IMPORTED_MODULE_1__); var ServiceHelper = /** @class */ (function () { function ServiceHelper() { } - ServiceHelper.idbCon = new jsstore__WEBPACK_IMPORTED_MODULE_0__["Instance"](new Worker(file_loader_name_scripts_name_hash_js_jsstore_dist_jsstore_worker_min_js__WEBPACK_IMPORTED_MODULE_1__)); + ServiceHelper.idbCon = new jsstore__WEBPACK_IMPORTED_MODULE_0__["Instance"](new Worker(file_loader_name_scripts_name_hash_js_jsstore_dist_jsstore_worker_js__WEBPACK_IMPORTED_MODULE_1__)); return ServiceHelper; }()); +window.con = ServiceHelper.idbCon; /***/ }), @@ -11529,7 +11531,7 @@ var ServiceHelper = /** @class */ (function () { /***/ (function(module, exports) { /*! - * @license :jsstore - V2.1.2 - 09/06/2018 + * @license :jsstore - V2.2.1 - 01/07/2018 * https://github.com/ujjwalguptaofficial/JsStore * Copyright (c) 2018 @Ujjwal Gupta; Licensed MIT */ @@ -11931,6 +11933,20 @@ var Instance = /** @class */ (function (_super) { query: null }); }; + /** + * execute the transaction + * + * @param {ITranscationQry} query + * @returns + * @memberof Instance + */ + Instance.prototype.transaction = function (query) { + query.logic = query.logic.toString(); + return this.pushApi({ + name: _enums__WEBPACK_IMPORTED_MODULE_0__["API"].Transaction, + query: query + }); + }; return Instance; }(_instance_helper__WEBPACK_IMPORTED_MODULE_1__["InstanceHelper"])); @@ -11997,6 +12013,7 @@ var API; API["ExportJson"] = "export_json"; API["ChangeLogStatus"] = "change_log_status"; API["Terminate"] = "terminate"; + API["Transaction"] = "transaction"; })(API || (API = {})); @@ -12292,7 +12309,7 @@ var Column = /** @class */ (function () { /* 36 */ /***/ (function(module, exports, __webpack_require__) { -module.exports = __webpack_require__.p + "scripts/jsstore.worker.min.86e3c8e8ff529b5eaee0edee0e771a2b.js"; +module.exports = __webpack_require__.p + "scripts/jsstore.worker.4048421cf4853f428aa9a85486d71967.js"; /***/ }), /* 37 */ @@ -12692,27 +12709,22 @@ var QueryExecutor = /** @class */ (function (_super) { QueryExecutor.prototype.evaluateAndShowResult = function (qry) { var _this = this; var queryHelperInstance = new _helpers_query_helper__WEBPACK_IMPORTED_MODULE_6__["QueryHelper"](qry); - if (queryHelperInstance.isQryValid()) { - var query = queryHelperInstance.getQuery(); - if (queryHelperInstance.errMessage.length == 0) { - new _service_main_service__WEBPACK_IMPORTED_MODULE_5__["MainService"]() - .executeQry(query) - .then(function (qryResult) { - _this.showResultInfo = true; - _this.resultCount = - _util__WEBPACK_IMPORTED_MODULE_8__["Util"].getType(qryResult.result) === jsstore__WEBPACK_IMPORTED_MODULE_9__["DATA_TYPE"].Array - ? qryResult.result.length - : 0; - _this.timeTaken = qryResult.timeTaken.toString(); - _common_var__WEBPACK_IMPORTED_MODULE_2__["vueEvent"].$emit("on_qry_result", qryResult.result); - }) - .catch(function (err) { - _common_var__WEBPACK_IMPORTED_MODULE_2__["vueEvent"].$emit("on_qry_error", err); - }); - } - else { - _common_var__WEBPACK_IMPORTED_MODULE_2__["vueEvent"].$emit("on_error", queryHelperInstance.errMessage); - } + if (queryHelperInstance.validateAndModifyQry()) { + var query = queryHelperInstance.query; + new _service_main_service__WEBPACK_IMPORTED_MODULE_5__["MainService"]() + .executeQry(query) + .then(function (qryResult) { + _this.showResultInfo = true; + _this.resultCount = + _util__WEBPACK_IMPORTED_MODULE_8__["Util"].getType(qryResult.result) === jsstore__WEBPACK_IMPORTED_MODULE_9__["DATA_TYPE"].Array + ? qryResult.result.length + : 0; + _this.timeTaken = qryResult.timeTaken.toString(); + _common_var__WEBPACK_IMPORTED_MODULE_2__["vueEvent"].$emit("on_qry_result", qryResult.result); + }) + .catch(function (err) { + _common_var__WEBPACK_IMPORTED_MODULE_2__["vueEvent"].$emit("on_qry_error", err); + }); } else { _common_var__WEBPACK_IMPORTED_MODULE_2__["vueEvent"].$emit("on_error", queryHelperInstance.errMessage); @@ -13328,7 +13340,7 @@ var QueryHelper = /** @class */ (function () { this.errMessage = ""; this.query = query; } - QueryHelper.prototype.getQuery = function () { + QueryHelper.prototype.validateAndModifyQry = function () { var _this = this; var qry; var isAnyApiFound = false; @@ -13337,13 +13349,13 @@ var QueryHelper = /** @class */ (function () { var index = _this.query.indexOf(api + "("); if (index >= 0) { isAnyApiFound = true; - _this.query = _this.query.substring(0, index) + "this.connection.\n " + _this.query.substring(index, _this.query.length); + _this.query = _this.query.substring(0, index) + "con.\n " + _this.query.substring(index, _this.query.length); } }); if (!isAnyApiFound) { this.errMessage = "No valid api was found"; } - return this.query; + return !this.errMessage.length; }; Object.defineProperty(QueryHelper.prototype, "allowedApi", { get: function () { @@ -13357,23 +13369,22 @@ var QueryHelper = /** @class */ (function () { _enum__WEBPACK_IMPORTED_MODULE_0__["API"].Count, _enum__WEBPACK_IMPORTED_MODULE_0__["API"].DropDb, _enum__WEBPACK_IMPORTED_MODULE_0__["API"].BulkInsert, - _enum__WEBPACK_IMPORTED_MODULE_0__["API"].ExportJson + _enum__WEBPACK_IMPORTED_MODULE_0__["API"].ExportJson, + _enum__WEBPACK_IMPORTED_MODULE_0__["API"].Transaction ]; }, enumerable: true, configurable: true }); - QueryHelper.prototype.isQryValid = function () { - var _this = this; - var notAllowedKeywords = ["Instance", "then", "catch"]; - notAllowedKeywords.every(function (item) { - if (_this.query.indexOf(item) >= 0) { - _this.errMessage = "keyword: '" + item + "' is not allowed, only write code for api call"; - return false; - } + QueryHelper.prototype.isQryValid_ = function () { + var fn = eval(this.query); + if (typeof fn.then === 'function') { return true; - }); - return !this.errMessage.length; + } + else { + this.errMessage = "The query should return a promise"; + } + return false; }; return QueryHelper; }()); @@ -13407,6 +13418,7 @@ var API; API["BulkInsert"] = "bulkInsert"; API["ExportJson"] = "exportJson"; API["ChangeLogStatus"] = "changeLogStatus"; + API["Transaction"] = "transaction"; })(API || (API = {})); diff --git a/src/output/scripts/bundle.js.map b/src/output/scripts/bundle.js.map index 36452ba..646951c 100644 --- a/src/output/scripts/bundle.js.map +++ b/src/output/scripts/bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/code/index.ts","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./src/code/component/main.vue","webpack:///./src/code/component/main.vue?c837","webpack:///./src/code/component/main.vue?b8af","webpack:///./src/code/component/main.vue?4b91","webpack:///./node_modules/vue-property-decorator/lib/vue-property-decorator.umd.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.common.js","webpack:///./node_modules/reflect-metadata/Reflect.js","webpack:///./src/code/component/menu.vue","webpack:///./src/code/component/menu.vue?c9f8","webpack:///./src/code/component/menu.vue?f46b","webpack:///./src/code/component/menu.vue?4ec7","webpack:///./src/code/common_var.ts","webpack:///./src/code/component/menu.vue?c391","webpack:///./src/code/component/menu.vue?3d4c","webpack:///./src/code/component/menu.vue?7315","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./src/code/component/db_info.vue","webpack:///./src/code/component/db_info.vue?396e","webpack:///./src/code/component/db_info.vue?24c6","webpack:///./src/code/component/db_info.vue?9c10","webpack:///./src/code/service/main_service.ts","webpack:///./src/code/service/base_service.ts","webpack:///./src/code/service/service_helper.ts","webpack:///./node_modules/jsstore/dist/jsstore.commonjs2.js","webpack:///./node_modules/jsstore/dist/jsstore.worker.min.js","webpack:///./node_modules/vue-context-menu/vue-context-menu.js","webpack:///./src/code/component/db_info.vue?4918","webpack:///./src/code/component/db_info.vue?a011","webpack:///./src/code/component/db_info.vue?4b17","webpack:///./src/code/component/query_executor.vue","webpack:///./src/code/component/query_executor.vue?0f9f","webpack:///./src/code/component/query_executor.vue?4a4a","webpack:///./src/code/component/query_executor.vue?e9d7","webpack:///./src/code/component/editor.vue","webpack:///./src/code/component/editor.vue?e63e","webpack:///./src/code/component/editor.vue?0fc2","webpack:///./src/code/component/editor.vue?4ac5","webpack:///./src/code/helpers/dom_helper.ts","webpack:///./src/code/util.ts","webpack:///./src/code/component/editor.vue?0d9c","webpack:///./src/code/component/editor.vue?1994","webpack:///./src/code/component/editor.vue?83d5","webpack:///./src/code/component/qry_result.vue","webpack:///./src/code/component/qry_result.vue?ffea","webpack:///./src/code/component/qry_result.vue?41c7","webpack:///./src/code/component/qry_result.vue?78b9","webpack:///./src/code/component/qry_result.vue?f495","webpack:///./src/code/component/qry_result.vue?4dbc","webpack:///./src/code/component/qry_result.vue?5c4e","webpack:///./src/code/helpers/query_helper.ts","webpack:///./src/code/enum.ts","webpack:///./src/code/component/query_link.vue","webpack:///./src/code/component/query_link.vue?2e9d","webpack:///./src/code/component/query_link.vue?ff42","webpack:///./src/code/component/query_link.vue?277e","webpack:///./src/code/component/query_executor.vue?3f4c","webpack:///./src/code/component/query_executor.vue?7e2d","webpack:///./src/code/component/query_executor.vue?4614","webpack:///./src/code/component/start.vue","webpack:///./src/code/component/start.vue?4a41","webpack:///./src/code/component/start.vue?6e4b","webpack:///./src/code/component/start.vue?f100","webpack:///./src/code/service/demo_service.ts","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/btoa.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./src/code/component/start.vue?66e0","webpack:///./src/code/component/start.vue?b642","webpack:///./src/code/component/start.vue?ffbd","webpack:///./src/code/css/common.css?ac05","webpack:///./src/code/css/common.css","webpack:///./node_modules/css-loader/lib/url/escape.js","webpack:///./src/code/fonts/Allerta-Regular.ttf","webpack:///./src/code/fonts/ABeeZee-Regular.ttf","webpack:///./node_modules/bootstrap-vue/es/index.js","webpack:///./node_modules/bootstrap-vue/es/components/index.js","webpack:///./node_modules/bootstrap-vue/es/components/alert/index.js","webpack:///./node_modules/bootstrap-vue/es/components/alert/alert.js","webpack:///./node_modules/bootstrap-vue/es/components/button/button-close.js","webpack:///./node_modules/vue-functional-data-merge/dist/lib.esm.js","webpack:///./node_modules/bootstrap-vue/es/utils/plugins.js","webpack:///./node_modules/bootstrap-vue/es/components/badge/index.js","webpack:///./node_modules/bootstrap-vue/es/components/badge/badge.js","webpack:///./node_modules/bootstrap-vue/es/utils/pluck-props.js","webpack:///./node_modules/bootstrap-vue/es/utils/object.js","webpack:///./node_modules/bootstrap-vue/es/utils/array.js","webpack:///./node_modules/bootstrap-vue/es/utils/identity.js","webpack:///./node_modules/bootstrap-vue/es/components/link/link.js","webpack:///./node_modules/bootstrap-vue/es/components/breadcrumb/index.js","webpack:///./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb.js","webpack:///./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-item.js","webpack:///./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-link.js","webpack:///./node_modules/bootstrap-vue/es/components/button/index.js","webpack:///./node_modules/bootstrap-vue/es/components/button/button.js","webpack:///./node_modules/bootstrap-vue/es/utils/dom.js","webpack:///./node_modules/bootstrap-vue/es/components/button-group/index.js","webpack:///./node_modules/bootstrap-vue/es/components/button-group/button-group.js","webpack:///./node_modules/bootstrap-vue/es/components/button-toolbar/index.js","webpack:///./node_modules/bootstrap-vue/es/components/button-toolbar/button-toolbar.js","webpack:///./node_modules/bootstrap-vue/es/utils/key-codes.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/index.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group-prepend.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/es/components/card/index.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card.js","webpack:///./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js","webpack:///./node_modules/bootstrap-vue/es/utils/upper-first.js","webpack:///./node_modules/bootstrap-vue/es/utils/unprefix-prop-name.js","webpack:///./node_modules/bootstrap-vue/es/utils/lower-first.js","webpack:///./node_modules/bootstrap-vue/es/utils/copyProps.js","webpack:///./node_modules/bootstrap-vue/es/mixins/card-mixin.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-group.js","webpack:///./node_modules/bootstrap-vue/es/components/carousel/index.js","webpack:///./node_modules/bootstrap-vue/es/components/carousel/carousel.js","webpack:///./node_modules/bootstrap-vue/es/utils/observe-dom.js","webpack:///./node_modules/bootstrap-vue/es/mixins/id.js","webpack:///./node_modules/bootstrap-vue/es/components/carousel/carousel-slide.js","webpack:///./node_modules/bootstrap-vue/es/components/image/img.js","webpack:///./node_modules/bootstrap-vue/es/utils/warn.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/index.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/container.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/col.js","webpack:///./node_modules/bootstrap-vue/es/utils/memoize.js","webpack:///./node_modules/bootstrap-vue/es/utils/suffix-prop-name.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/form-row.js","webpack:///./node_modules/bootstrap-vue/es/components/collapse/index.js","webpack:///./node_modules/bootstrap-vue/es/components/collapse/collapse.js","webpack:///./node_modules/bootstrap-vue/es/mixins/listen-on-root.js","webpack:///./node_modules/bootstrap-vue/es/directives/toggle/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/toggle/toggle.js","webpack:///./node_modules/bootstrap-vue/es/utils/target.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/index.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/es/mixins/dropdown.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/bootstrap-vue/es/mixins/clickout.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css?54e5","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item-button.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown-header.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown-divider.js","webpack:///./node_modules/bootstrap-vue/es/components/embed/index.js","webpack:///./node_modules/bootstrap-vue/es/components/embed/embed.js","webpack:///./node_modules/bootstrap-vue/es/components/form/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form-row.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form-text.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form-invalid-feedback.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form-valid-feedback.js","webpack:///./node_modules/bootstrap-vue/es/components/form-group/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-group/form-group.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/es/components/form-checkbox/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-custom.js","webpack:///./node_modules/bootstrap-vue/es/utils/loose-equal.js","webpack:///./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox-group.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-options.js","webpack:///./node_modules/bootstrap-vue/es/components/form-radio/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-radio/form-radio.js","webpack:///./node_modules/bootstrap-vue/es/components/form-radio/form-radio-group.js","webpack:///./node_modules/bootstrap-vue/es/components/form-input/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/es/components/form-input/form-input.css?b5c7","webpack:///./node_modules/bootstrap-vue/es/components/form-input/form-input.css","webpack:///./node_modules/bootstrap-vue/es/components/form-textarea/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-textarea/form-textarea.js","webpack:///./node_modules/bootstrap-vue/es/components/form-file/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-file/form-file.js","webpack:///./node_modules/bootstrap-vue/es/components/form-select/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-select/form-select.js","webpack:///./node_modules/bootstrap-vue/es/components/image/index.js","webpack:///./node_modules/bootstrap-vue/es/components/image/img-lazy.js","webpack:///./node_modules/bootstrap-vue/es/components/jumbotron/index.js","webpack:///./node_modules/bootstrap-vue/es/components/jumbotron/jumbotron.js","webpack:///./node_modules/bootstrap-vue/es/components/link/index.js","webpack:///./node_modules/bootstrap-vue/es/components/list-group/index.js","webpack:///./node_modules/bootstrap-vue/es/components/list-group/list-group.js","webpack:///./node_modules/bootstrap-vue/es/components/list-group/list-group-item.js","webpack:///./node_modules/bootstrap-vue/es/components/media/index.js","webpack:///./node_modules/bootstrap-vue/es/components/media/media.js","webpack:///./node_modules/bootstrap-vue/es/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/es/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/es/components/modal/index.js","webpack:///./node_modules/bootstrap-vue/es/components/modal/modal.js","webpack:///./node_modules/bootstrap-vue/es/utils/bv-event.class.js","webpack:///./node_modules/bootstrap-vue/es/directives/modal/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/modal/modal.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/index.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav-item.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav-text.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav-form.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav-item-dropdown.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/index.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/navbar.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/navbar-nav.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/navbar-brand.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/navbar-toggle.js","webpack:///./node_modules/bootstrap-vue/es/components/pagination/index.js","webpack:///./node_modules/bootstrap-vue/es/components/pagination/pagination.js","webpack:///./node_modules/bootstrap-vue/es/mixins/pagination.js","webpack:///./node_modules/bootstrap-vue/es/utils/range.js","webpack:///./node_modules/bootstrap-vue/es/components/pagination-nav/index.js","webpack:///./node_modules/bootstrap-vue/es/components/pagination-nav/pagination-nav.js","webpack:///./node_modules/bootstrap-vue/es/components/popover/index.js","webpack:///./node_modules/bootstrap-vue/es/components/popover/popover.js","webpack:///./node_modules/bootstrap-vue/es/utils/popover.class.js","webpack:///./node_modules/bootstrap-vue/es/utils/tooltip.class.js","webpack:///./node_modules/bootstrap-vue/es/mixins/toolpop.js","webpack:///./node_modules/bootstrap-vue/es/utils/ssr.js","webpack:///./node_modules/bootstrap-vue/es/components/progress/index.js","webpack:///./node_modules/bootstrap-vue/es/components/progress/progress.js","webpack:///./node_modules/bootstrap-vue/es/components/progress/progress-bar.js","webpack:///./node_modules/bootstrap-vue/es/components/table/index.js","webpack:///./node_modules/bootstrap-vue/es/components/table/table.js","webpack:///./node_modules/lodash.startcase/index.js","webpack:///./node_modules/lodash.get/index.js","webpack:///./node_modules/bootstrap-vue/es/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/es/components/table/table.css?b646","webpack:///./node_modules/bootstrap-vue/es/components/table/table.css","webpack:///./node_modules/bootstrap-vue/es/components/tabs/index.js","webpack:///./node_modules/bootstrap-vue/es/components/tabs/tabs.js","webpack:///./node_modules/bootstrap-vue/es/components/tabs/tab.js","webpack:///./node_modules/bootstrap-vue/es/components/tooltip/index.js","webpack:///./node_modules/bootstrap-vue/es/components/tooltip/tooltip.js","webpack:///./node_modules/bootstrap-vue/es/directives/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/scrollspy/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.js","webpack:///./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.class.js","webpack:///./node_modules/bootstrap-vue/es/directives/tooltip/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/tooltip/tooltip.js","webpack:///./node_modules/bootstrap-vue/es/directives/popover/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/popover/popover.js","webpack:///./node_modules/bootstrap/dist/css/bootstrap.min.css?bc99","webpack:///./node_modules/bootstrap/dist/css/bootstrap.min.css","webpack:///./node_modules/bootstrap-vue/dist/bootstrap-vue.min.css?d906","webpack:///./node_modules/bootstrap-vue/dist/bootstrap-vue.min.css"],"names":[],"mappings":";;;;;;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;;;;;ACnEsB;AACkB;AACC;AACK;AACI;AAElD,wBAAwB;AACxB,2CAAG,CAAC,GAAG,CAAC,qDAAY,CAAC,CAAC;AAEtB,mBAAmB;AACnB,IAAI,OAAO,GAAG,IAAI,2CAAG,CAAC;IAClB,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,WAAC,IAAI,QAAC,CAAC,2DAAI,CAAC,EAAP,CAAO;CACvB,CAAC,CAAC;;;;;;;;;ACbH;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,8BAA8B;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;;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;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;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;;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;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;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,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;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,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAEA;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;;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,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA,0BAA0B;AAC1B,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qCAAqC,OAAO;AAC5C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;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,OAAO;AACP,KAAK,QAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,QAEP;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uCAAuC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;AAKA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;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;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gEAAgE,+BAA+B;AAC/F,mCAAmC;AACnC;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,QAGH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO,QAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,QAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;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;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;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,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;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,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA,2DAA2D;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA,wBAAwB;AACxB;AACA,4BAA4B,4BAA4B;AACxD,4BAA4B,gCAAgC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yDAAyD,UAAU;AACnE,iBAAiB,wBAAwB,OAAO,uBAAuB;AACvE;AACA;AACA,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;;AAEA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO,kDAAkD;AACzD;AACA;AACA;AACA;AACA,OAAO,kDAAkD;AACzD;AACA;AACA;AACA;AACA,OAAO;AACP,mCAAmC,gEAAgE;AACnG;AACA;AACA;AACA,gCAAgC;AAChC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,SAAS;AAChC;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,uBAAuB,OAAO,gCAAgC;AAC/E,wDAAwD,oBAAoB;AAC5E;AACA;AACA;AACA,2BAA2B,gEAAgE;AAC3F,OAAO;AACP,mCAAmC,iCAAiC;AACpE;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2DAA2D,oBAAoB;AAC/E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;AAUA;;;;;;;;;AASA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAsD;AACtE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,6CAA6C,EAAE;AACtD;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,UAAU;AACV;AACA,uCAAuC,SAAS;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,4BAA4B,EAAE;AAC3E,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,+BAA+B,EAAE;AAC9E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa;;AAE3D;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,iCAAiC,qCAAqC;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uCAAuC,EAAE;AACpF;AACA;AACA;AACA,6CAA6C,2CAA2C,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,8BAA8B,EAAE;AACrE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,uCAAuC,EAAE;AACtF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;;AAEA;AACA;AACA,0EAA0E,0BAA0B,EAAE;AACtG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA,gEAAgE,sBAAsB,EAAE;AACxF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;;;;;;;;AC/1PA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9DA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;ACzLD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACvLJ;AAClC;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAWA;AACA;AACA,gF;;;;;;;;;;;;;;;;;;;;;;AChCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iCAAiC;AAClD;AACA;AACA;AACA,eAAe,6BAA6B,gBAAgB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,iCAAiC,SAAS,6BAA6B,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uB;;;;;;;;;wCCpD4K,2OAAoB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACmB1K;AAC6B;AAErB;AACK;AACc;AACjB;AACS;AACd;AACI;AACE;AAGjC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAU9C;IAAkC,wBAAG;IAGnC;QAAA,YACE,iBAAO,SAGR;QAND,kBAAY,GAAG,KAAK,CAAC;QAInB,KAAI,CAAC,UAAU,EAAE,CAAC;QAClB,KAAI,CAAC,aAAa,EAAE,CAAC;;IACvB,CAAC;IAED,4BAAa,GAAb;QACE,IAAI,GAAG,GAAG,0CAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,0CAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrB,8CAAM,CAAC,YAAY,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;SACjD;IACH,CAAC;IAED,qCAAsB,GAAtB;QACE,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;IACzC,CAAC;IAEO,yBAAU,GAAlB;QAAA,iBASC;QARC,oDAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAU;YACjC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,oDAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAM;YAChC,KAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,KAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IA7BkB,IAAI;QARxB,wEAAS,CAAC;YACT,UAAU,EAAE;gBACV,IAAI;gBACJ,MAAM;gBACN,aAAa;gBACb,KAAK;aACN;SACF,CAAC;OACmB,IAAI,CA8BxB;IAAD,WAAC;CAAA,CA9BiC,2CAAG,GA8BpC;+DA9BoB,IAAI;;;;;;;AC3CzB;AACA;AACA,UAC2C;AAC3C,CAAC,kDAAkD;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,sCAAsC;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA;AACA,gCAAgC,sDAAsD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,cAAc;;AAE5D,CAAC;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,cAAc;;AAE5D,+BAA+B,iFAAiF;;AAEhH;;AAEA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qCAAqC,EAAE;AAC5F;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,uBAAuB,gBAAgB;AACvC;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,sCAAsC,gBAAgB,EAAE;AACxD,2CAA2C,wBAAwB,EAAE;AACrE;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0CAA0C,oBAAoB,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;;AAEA;AACA;AACA;;;;;;;ACtOA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mDAAmD;AAC3G;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,6BAA6B,gBAAgB,kBAAkB;AAC/D;AACA;AACA;AACA;AACA,+BAA+B,4CAA4C;AAC3E;AACA,mCAAmC,wBAAwB,kBAAkB,EAAE;AAC/E,mCAAmC,yBAAyB,EAAE,EAAE;AAChE;AACA,uCAAuC,8BAA8B;AACrE,uCAAuC,mBAAmB,EAAE;AAC5D;AACA,uCAAuC,qDAAqD;AAC5F,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF,qEAAqE,aAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B,EAAE;AAClE;AACA;AACA,iBAAiB;AACjB,oDAAoD,+CAA+C;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,UAAU;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0DAA0D;AAC5G,oDAAoD,4DAA4D;AAChH,qDAAqD,4DAA4D;AACjH,2DAA2D,uBAAuB;AAClF,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAuB,EAAE;AAC/D;AACA;AACA,iBAAiB;AACjB,sDAAsD,6BAA6B;AACnF,sDAAsD,0CAA0C;AAChG,yDAAyD,gCAAgC;AACzF,mDAAmD,mBAAmB;AACtE,kDAAkD,yBAAyB;AAC3E,oDAAoD,2BAA2B;AAC/E,qDAAqD,4BAA4B;AACjF,2DAA2D,oBAAoB;AAC/E,6DAA6D,oBAAoB;AACjF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0BAA0B;AACtF;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC,0BAA0B;AAC3B,mC;;;;;;;;;;;;;AC3mCkC;AAClC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAWA;AACA;AACA,gF;;;;;;;;;;;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,SAAS,gBAAgB,EAAE;AAC/C,gBAAgB,uBAAuB;AACvC;AACA,cAAc,4BAA4B;AAC1C;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,uB;;;;;;;;;wCC1E4K,2OAAoB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoB1K;AAC6B;AACV;AAGzC;IAAkC,wBAAG;IAqBnC;QAAA,YACE,iBAAO,SAER;QAvBD,YAAM,GAAW,EAAE,CAAC;QAsBlB,KAAI,CAAC,UAAU,EAAE,CAAC;;IACpB,CAAC;IAtBD,2BAAY,GAAZ;QACE,oDAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,wBAAS,GAAT,UAAU,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,yBAAU,GAAV;QAAA,iBAKC;QAJC,oDAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,UAAC,MAAc;YACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yBAAU,GAAV;QACE,oDAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAnBkB,IAAI;QADxB,gEAAS;OACW,IAAI,CAyBxB;IAAD,WAAC;CAAA,CAzBiC,2CAAG,GAyBpC;+DAzBoB,IAAI;;;;;;;;;;;ACzBH;AACf,IAAM,QAAQ,GAAG,IAAI,2CAAG,EAAE,CAAC;;;;;;;;;;;;ACDkU,yYAAoB,C;;;;;;ACAxX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,sDAAuD,8BAA8B,gBAAgB,sBAAsB,iBAAiB,iBAAiB,GAAG,+BAA+B,mBAAmB,GAAG,mCAAmC,4BAA4B,GAAG,yCAAyC,mBAAmB,yBAAyB,kBAAkB,GAAG,oCAAoC,wBAAwB,sBAAsB,wBAAwB,2BAA2B,GAAG;;AAEzgB;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;;;AC3EA;AAAA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7NA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AAAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5FkC;AAClC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAWA;AACA;AACA,gF;;;;;;;;;;;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA,wBAAwB,SAAS,gBAAgB,EAAE;AACnD;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB,YAAY,EAAE;AACpE;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,oBAAoB;AAC9E;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B,iBAAiB,EAAE;AACtE;AACA;AACA;AACA,yBAAyB,+CAA+C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E;AACA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B,kBAAkB,EAAE;AAC/E;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC,eAAe;AACf,SAAS;AACT;AACA,oBAAoB,+BAA+B,uBAAuB,EAAE;AAC5E;AACA;AACA;AACA,oBAAoB,+BAA+B,wBAAwB,EAAE;AAC7E;AACA;AACA;AACA,oBAAoB,+BAA+B,wBAAwB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iGAAiG,2DAA2D,EAAE;;AAE9J;AACA,mGAAmG,0DAA0D,EAAE;;AAE/J,sGAAsG,6DAA6D,EAAE;;AAErK,kGAAkG,yDAAyD,EAAE;;AAE7J,mGAAmG,0DAA0D,EAAE;;AAE/J,4FAA4F,mDAAmD,EAAE;;AAEjJ;AACA,+FAA+F,uDAAuD,EAAE;;AAExJ;AACA,kGAAkG,0DAA0D,EAAE;;AAE9J;AACA,+FAA+F,4DAA4D,EAAE;;;;;;;;;AAS7J,OAAO;AACP;AACA;;AAEA;AACA;AACA,kGAAkG,iBAAiB,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA;;AAEA;AACA;AACA,oGAAoG,mBAAmB,EAAE;AACzH,uGAAuG,sBAAsB,EAAE;AAC/H,mGAAmG,kBAAkB,EAAE;AACvH,oGAAoG,mBAAmB,EAAE;AACzH,6FAA6F,YAAY,EAAE;AAC3G;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;;;AAGnB,OAAO;AACP;AACA;;AAEA;AACA;AACA,wGAAwG,uBAAuB,EAAE;AACjI;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,oDAAoD,EAAE;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA;;AAEA;AACA;AACA,mGAAmG,kBAAkB,EAAE;AACvH;AACA;;;AAGA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA;;AAEA;AACA;AACA,gGAAgG,eAAe,EAAE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA;;AAEA;AACA;AACA,mGAAmG,kBAAkB,EAAE;AACvH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,+FAA+F,uDAAuD,EAAE;;;;;AAKxJ,OAAO;AACP;AACA;;AAEA;AACA;AACA,gGAAgG,eAAe,EAAE;AACjH;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA,6C;;;;;;ACtvBA,0G;;;;;;ACAA,eAAe,mCAAiM,iBAAiB,mBAAmB,cAAc,4BAA4B,YAAY,qBAAqB,2DAA2D,SAAS,mCAAmC,SAAS,qBAAqB,qCAAqC,oCAAoC,EAAE,iBAAiB,iCAAiC,iBAAiB,YAAY,UAAU,sBAAsB,mBAAmB,iDAAiD,mBAAmB,kBAAkB,KAAK,gCAAgC,oBAAoB,iBAAiB,aAAa,sBAAsB,cAAc,8CAA8C,cAAc,qBAAqB,SAAS,OAAO,kBAAkB,SAAS,mBAAmB,2GAA2G,kBAAkB,oHAAoH,iBAAiB,aAAa,cAAc,0BAA0B,WAAW,sCAAsC,SAAS,EAAE,kBAAkB,WAAW,2BAA2B,IAAI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AA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS,yBAAyB,EAAE;AACzC;AACA;AACA;AACA,SAAS,SAAS,2BAA2B,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,uBAAuB;AACvB,iBAAiB;AACjB;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,qBAAqB,OAAO,kBAAkB,EAAE;AAC1E;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,qBAAqB,OAAO,kBAAkB,EAAE;AAC1E;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAqD;AACzE,iBAAiB;AACjB,WAAW;AACX;AACA;AACA;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,uBAAuB;AACvB,iBAAiB;AACjB;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,qBAAqB,OAAO,qBAAqB,EAAE;AAC7E;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,0CAA0C,EAAE;AAC9D;AACA;AACA;AACA,aAAa,SAAS,WAAW,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,iBAAiB;AACjB,+BAA+B,SAAS,sBAAsB,EAAE;AAChE;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,eAAe,EAAE;AAClD;AACA,uBAAuB,SAAS,sBAAsB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,2BAA2B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;A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AQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,2BAA2B;AAC3B;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9SA;;AAEA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACpBA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kCAAkC,cAAc;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;+CC9EA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY;AACnB;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;;;;;;;;AC/FA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;ACnLA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;ACjEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;ACpDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACnEA;;AAEA;;AAEA;;AAEA;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;;AAEA;;;;;;;;ACnCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC;AACxC,OAAO;;AAEP;AACA,0DAA0D,wBAAwB;AAClF;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B,aAAa,EAAE;AAC5C;AACA;AACA,GAAG;AACH;;;;;;;;ACpDA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;ACnDA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;ACrFA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;ACnBA;;AAEA;AACA;AACA;;;;;;;;ACJA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;AClBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACxDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1B6U,kXAAoB,C;;;;;;ACAjW;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,wCAAyC,8BAA8B,gBAAgB,iBAAiB,uBAAuB,kBAAkB,qBAAqB,GAAG,sBAAsB,2BAA2B,mBAAmB,yBAAyB,wBAAwB,GAAG,kCAAkC,yBAAyB,eAAe,gBAAgB,iBAAiB,kBAAkB,kBAAkB,GAAG,2DAA2D,yBAAyB,mBAAmB,eAAe,gBAAgB,+BAA+B,yBAAyB,4BAA4B,6BAA6B,iCAAiC,8BAA8B,GAAG,+DAA+D,yBAAyB,kBAAkB,mBAAmB,0BAA0B,kBAAkB,yBAAyB,wBAAwB,2BAA2B,sBAAsB,mBAAmB,GAAG,4EAA4E,0BAA0B,yBAAyB,oEAAoE,uEAAuE,wEAAwE,4EAA4E,yEAAyE,GAAG,4EAA4E,0BAA0B,yBAAyB,wEAAwE,2EAA2E,4EAA4E,gFAAgF,6EAA6E,GAAG,4EAA4E,0BAA0B,yBAAyB,wEAAwE,2EAA2E,4EAA4E,gFAAgF,6EAA6E,GAAG,4EAA4E,0BAA0B,yBAAyB,yEAAyE,4EAA4E,6EAA6E,iFAAiF,8EAA8E,GAAG,4EAA4E,0BAA0B,yBAAyB,sEAAsE,yEAAyE,0EAA0E,8EAA8E,2EAA2E,GAAG,4EAA4E,0BAA0B,yBAAyB,yEAAyE,4EAA4E,6EAA6E,iFAAiF,8EAA8E,GAAG,4EAA4E,0BAA0B,yBAAyB,wEAAwE,2EAA2E,4EAA4E,gFAAgF,6EAA6E,GAAG,+BAA+B,QAAQ,wDAAwD,yCAAyC,GAAG,MAAM,6DAA6D,sCAAsC,0BAA0B,GAAG,GAAG,kCAAkC,QAAQ,2DAA2D,yCAAyC,GAAG,MAAM,gEAAgE,sCAAsC,0BAA0B,GAAG,GAAG,mCAAmC,oBAAoB,4DAA4D,yCAAyC,GAAG,kBAAkB,iEAAiE,sCAAsC,0BAA0B,GAAG,GAAG,uCAAuC,QAAQ,gEAAgE,yCAAyC,GAAG,MAAM,qEAAqE,sCAAsC,0BAA0B,GAAG,GAAG,oCAAoC,QAAQ,6DAA6D,yCAAyC,GAAG,MAAM,kEAAkE,sCAAsC,0BAA0B,GAAG,GAAG;;AAEn6L;;;;;;;ACPA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;AACA;;;AAGA;AACA,4CAA6C,0BAA0B,KAAK,oBAAoB,0BAA0B,KAAK,oBAAoB,6BAA6B,gFAA+F,KAAK,oBAAoB,6BAA6B,gFAA+F,KAAK,2BAA2B,0BAA0B,KAAK,eAAe,sBAAsB,KAAK;;AAE7gB;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACfA,qG;;;;;;ACAA,qG;;;;;;;;;;;ACAA;AACA;AACiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;ACnCA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;ACfA;;AAEA;AACA,eAAe,6EAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS,kCAAkC,OAAO,sBAAsB,EAAE;AAClH;AACA,qBAAqB,kCAAkC,4DAA4D,EAAE;AACrH,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,G;;;;;;;;ACjHA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA,G;;;;;;;;ACnDA;AAAA,wCAAwC,iCAAiC,IAAI,uFAAuF,UAAU,qBAAqB,gBAAgB,oBAAoB,IAAI,yCAAyC,WAAW,mBAAmB,0GAA0G,MAAM,4CAA4C,wEAAwE,MAAM,sCAAsC,EAAE,6CAA6C,EAAE,WAAW,4FAA4F,MAAM,qHAAqH,kBAAkB,uBAAuB,MAAM,yGAAyG,SAAgB;AAC7/B;;;;;;;;;;;;;ACDA;AAAA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;AC9DA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;ACfoB;;AAEpB;AACiB;AACgC;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,G;;;;;;;;;;;;AC/Ce;AACG;AAClB;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,IAAI;AACP,C;;;;;;;;;;;;;;;;;;;;ACnBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB,0BAA0B;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV,C;;;;;;;;;;;;ACpEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2DAA2D;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;ACtJA;AACA;AACA,C;;;;;;;;;;;;;;;ACFA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAEnP;AACS;AACZ;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,oBAAoB,6BAA6B,mGAAmG;;AAEpJ;AACA,+FAA+F,2BAA2B;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,kFAA4B,uBAAuB;AACnD,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,0HAAoE;;AAEpE;AACA;AACA,G;;;;;;;;;;;;ACpOA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;ACnBA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAEtP;AACF;AACD;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4EAAkC,uEAAiB,SAAS,iBAAiB,GAAG;AAChF,OAAO;AACP;;AAEA,sGAAoC,4BAA4B;AAChE;AACA,G;;;;;;;;;;;;AC9CoB;AACH;AAC6B;;AAE9C,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uBAAuB;AACrC,cAAc;AACd,KAAK,iEAAuB,eAAe;AAC3C;AACA,G;;;;;;;;;;;;;AC7BoB;AACpB;AACiB;AACgC;;AAEjD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA,6BAA6B;AAC7B,KAAK;AACL,6BAA6B;AAC7B;;AAEA;AACA;AACA,G;;;;;;;;;;;AC/CA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;ACnBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACiB;AACM;AACS;AACiB;;AAEjD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7G4B;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;AC1NA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;AChBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACI;;AAExB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC3CA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;AChB+B;AAC/B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;ACrHA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;AChBqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;ACxBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,qJAA+D,YAAY,2BAA2B,EAAE;AACxG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oJAA8D,YAAY,0BAA0B,EAAE;AACtG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;AC1EwC;;AAExC;AACA;AACA;AACA;AACA,G;;;;;;;;;;;ACNoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;ACvCoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;ACrBwC;;AAExC;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;;;;ACzBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACiB;AACjB;AACuC;AACI;AACA;AACN;;AAErC;AACA;;AAEA,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAAqC,uIAAwC;AAC7E;AACA;AACA;AACA,KAAK;AACL,6EAAmC,qIAAsC;AACzE;AACA;AACA,+EAAqC,uIAAwC;AAC7E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,G;;;;;;;;;;AC3EA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA,C;;;;;;;;ACRA;AAAA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;ACRA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA,C;;;;;;;;ACRA;AAAA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACRA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAExP;AACD;AACjB;;AAEA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6FAA6C;AAC7C,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;ACnBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACA;AACiB;AACjB;;AAEA,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,OAAO;AACP;AACA;AACA;AACA;AACA,mBAAmB;AACnB,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,0SAA0S;AACjT,KAAK;AACL;AACA,G;;;;;;;;;;;;;ACnEA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACiB;AACjB;;AAEA,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C,KAAK,0BAA0B,YAAY,0BAA0B,EAAE;AACvE;AACA,G;;;;;;;;;;;;;ACpCA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACiB;AACjB;;AAEA,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C,KAAK,0BAA0B,YAAY,0BAA0B,EAAE;AACvE;AACA,G;;;;;;;;;;ACpCoB;;AAEpB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,cAAc,2BAA2B;AACzC,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC/CoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2GAAyC,2BAA2B;AACpE;AACA,G;;;;;;;;;;;ACnCA;AACA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;ACjBA;AACA;AAC+E;AAC/E;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gBAAgB,yEAAyE;AACzF;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,cAAc,gDAAgD,wBAAwB,EAAE,cAAc,qBAAqB;AAClI;AACA,gBAAgB,yEAAyE;AACzF;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,cAAc,gDAAgD,wBAAwB,EAAE,cAAc,qBAAqB;AAClI;;AAEA;AACA;AACA;AACA,oBAAoB,oFAAoF;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,cAAc,8BAA8B;AAC5C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;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,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;AClciB;AACG;;AAEpB;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,OAAO,QAAQ,+BAA+B;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,4EAA4B,iCAAiC;AAC7D,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,C;;;;;;;ACjEA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;AC/BA;AACA;AACA;;AAEA;AACA,eAAe,2DAAa;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,sCAAsC,6BAA6B,sCAAsC,YAAY,0BAA0B,EAAE,2CAA2C,YAAY,uBAAuB,EAAE;;AAEjO;AACA;AACA,cAAc,8BAA8B;AAC5C,cAAc;AACd,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;AC1GA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA,oCAAoC,EAAE,YAAY,EAAE,8DAA8D,EAAE,GAAG,EAAE,iFAAiF,GAAG;;AAE7M;AACA,yDAAyD,EAAE,6BAA6B,EAAE,8BAA8B,EAAE;AAC1H,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,G;;;;;;;ACnIA;AAAA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA,qE;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACrBoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;AC5BA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACI;;AAExB;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,G;;;;;;;;;;;;;;ACxDA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACA;AAC+B;AACP;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL,2GAAyC,mBAAmB;AAC5D;AACA,G;;;;;;;;;;AC3IiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;ACTA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA,C;;;;;;;;;;ACXoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;;ACrBA;AACA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACjBA;AAC2B;;AAE3B;AACA;AACA;AACA;AACA;;+DAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD,cAAc,sBAAsB;AACpC,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;AC5LA;AAAA,kCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAE/K;AAClB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA,KAAK;;;AAGL;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;;AAEA,wFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;;;;;ACnEA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AACyC;;AAEzC;AACA;;AAEA;AACA,mBAAmB;;AAEnB;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;AC/De;;AAEf,sBAAsB;;AAEtB;;AAEA;AACA,kGAA4C;AAC5C;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,QAAQ,iCAAiC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;;AAEQ;;AAER,4E;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;AC9BA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,kEAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK,2BAA2B,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,SAAS,oBAAoB,+BAA+B;AACjF,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,G;;;;;;;;;;;;;;;;AC5HA;AACA;AACA;AAC4B;AACX;AACjB;AACA;AACoE;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAAuD;AACvD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;AC1YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,kCAAkC;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;AAMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;;AAEA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA,cAAc;AACd;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,gBAAgB;;AAE5D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB,yDAAyD;;AAE9E;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B,2BAA2B;AAC3B,gCAAgC;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gDAAgD;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;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,UAAU;AACV,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,cAAc;AAC5B;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,4BAA4B;AAC5B;;AAEA,qCAAqC;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,OAAO;AACrB,aAAa,WAAW;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,mBAAmB;AAClC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,IAAI;AACJ;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,WAAW,WAAW;AACtB;;AAEA;AACA;AACA,WAAW,WAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4BAA4B;AACzC,aAAa,YAAY;AACzB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc;AACd,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B,iDAAiD,uCAAuC,kDAAkD;AAC1I,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA,cAAc,OAAO;AACrB;AACA,cAAc,OAAO;AACrB;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;;;;;;;;;ACv9EA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACrBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,8XAA+X,iCAAiC,oCAAoC,GAAG,mOAAmO,gCAAgC,mCAAmC,GAAG;;AAEhvB;;;;;;;;;;;;ACPoB;AAC6B;;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;ACnBoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,6DAA6D;AAC3E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;AC7BoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC1BoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;ACrBA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACI;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B,KAAK,oGAAkC,gDAAgD;AACvF;AACA,G;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACxBoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;ACxCA;;AAEA,yH;;;;;;;;;ACFA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;ACxCoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,6BAA6B;AAC3C,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC/BoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,6BAA6B;AAC3C,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC/BA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;AChBA;AACqE;AACrE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe,2TAA+H;AAC9I;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C,yBAAyB;AACzB,8DAA8D,IAAI;AAClE;AACA;AACA;AACA;AACA,mCAAmC,mEAAmE;AACtG,6BAA6B,iCAAiC;AAC9D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA,yBAAyB,iCAAiC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,iDAAiD,IAAI;AACrD,sCAAsC,SAAS,yBAAyB,wBAAwB;AAChG;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,uCAAuC;AAC5C,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;ACjSA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;ACrCA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACkB;AAClB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,iBAAiB,8CAA8C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,cAAc;AACd,KAAK;;AAEL;AACA;AACA,mEAAmE,yDAAyD,GAAG,8DAA8D;AAC7L,OAAO;AACP,KAAK;AACL,yBAAyB,8BAA8B;AACvD;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,G;;;;;;;AC7JA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;AClHA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,G;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;ACZA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAExP;AACH;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA,2E;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,wEAA+B;AAC9C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,cAAc,YAAY,yBAAyB,EAAE;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AC1GkB;AACH;;AAEf;AACA,kBAAkB;AAClB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,G;;;;;;;;;;;AC5EA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,cAAc;AACd,KAAK;;AAEL;AACA;AACA,mEAAmE,yDAAyD,GAAG,8DAA8D;AAC7L,OAAO;AACP,KAAK;AACL,yBAAyB,8BAA8B;AACvD;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,kEAAyB;AACxC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,cAAc,YAAY,yBAAyB,EAAE;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AC1GA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChJA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,6JAA8J,sBAAsB,GAAG,2GAA2G,wBAAwB,GAAG,2GAA2G,mBAAmB,GAAG,0EAA0E,+BAA+B,GAAG,sDAAsD,iCAAiC,GAAG;;AAEpoB;;;;;;;;;;;ACPA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;AChBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;ACjJA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AAC4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc,qCAAqC;AACnD,WAAW;AACX,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA,G;;;;;;;;;;ACtPA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AAC4B;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD,mBAAmB;AACnB,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;ACvGA;AACA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACjBA;AAC+C;AAC/C;;AAEA;AACA,eAAe,qDAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;ACvLA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC,OAAO;AACP;;AAEA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kFAAkC,SAAS,gCAAgC,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,G;;;;;;;;;;ACjGA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AACA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACjBoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,G;;;;;;;;;;;;;AC5BA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACiB;AACO;AACyB;;AAEjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,mDAAmD,iBAAiB,KAAK;AACzE,8BAA8B;AAC9B;;AAEA;AACA;AACA,G;;;;;;;;;;;;ACrDA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;ACnBoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iFAAuC,8BAA8B,qCAAqC,EAAE;AAC5G;;AAEA;;AAEA;AACA,iFAAuC,8BAA8B,qCAAqC,EAAE;AAC5G;AACA;;AAEA,2GAAyC,uBAAuB;AAChE;AACA,G;;;;;;;;;;ACjDoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;ACrBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,KAAK;AACL;AACA,G;;;;;;;;;;;AC5BA;AACA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;ACjBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE0I;;AAE1I;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,wIAAmC;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA,wBAAwB,SAAS,uCAAuC,EAAE;AAC1E;AACA;AACA,sBAAsB;AACtB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA,yCAAyC;AACzC,KAAK;AACL;AACA;;AAEA,uCAAuC;AACvC,KAAK;AACL;AACA;;AAEA,yCAAyC;AACzC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;ACvuBA;AAAA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEhF;;AAEvE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,wE;;;;;;;;;;AC/DA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfqC;AACP;;AAE9B,mBAAmB;;+DAEnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;AC5BoB;AACpB;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;;ACzDoB;AAC6B;;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK,2DAAa,wCAAwC;AAC1D;AACA,G;;;;;;;;;;ACjBoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2GAAyC,6BAA6B;AACtE;AACA,G;;;;;;;;;;ACnBA;AACoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,oJAAoC,SAAS,eAAe,UAAU,eAAe,EAAE;AACvF;AACA,G;;;;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK,mEAAmE,YAAY,uBAAuB,EAAE;AAC7G;AACA;AACA;AACA,cAAc,gDAAgD;AAC9D;AACA;AACA;AACA;AACA,KAAK;AACL,oBAAoB,SAAS,oBAAoB,+BAA+B;AAChF,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;AC5BA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,G;;;;;;;;;;AClDoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;;;;ACjC6B;AACT;AACpB;AACiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;AChCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,WAAW;AACX,KAAK,qCAAqC,iCAAiC;AAC3E,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,G;;;;;;;;;;AC7CA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AACoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,cAAc;AACd;AACA;AACA,G;;;;;;;;;;;ACzDA;AAAA;AACA;AACA;;AAEA;AACA;AACoD;AACpD;;AAEA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qBAAqB;AACrB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sBAAsB;AACtB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sBAAsB;AACtB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qBAAqB;AACrB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA,eAAe,uEAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,kBAAkB;AAClB,SAAS;AACT;AACA,qBAAqB;AACrB,SAAS;AACT,OAAO;AACP;AACA;AACA,kBAAkB;AAClB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,wBAAwB;AAC1C,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA,mBAAmB;AACnB,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,mCAAmC;AACnC,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,SAAS;AACT;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA,SAAS;AACT;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;ACxaA;AAAA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA,4BAA4B,iBAAiB;AAC7C,CAAC,E;;;;;;;;;;ACND;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAEzP;AACjB;AACwB;;AAExB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+BAA+B,aAAa;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,G;;;;;;;;;;ACpFA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC,cAAc;AACd,KAAK,aAAa,eAAe,gCAAgC,iBAAiB;AAClF,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AChDA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACiB;AACgC;;AAEjD;AACA;AACA;;AAEA,wEAAwB;AACxB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,4GAA+D;AAC/D,gHAAmE;AACnE;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,wE;;;;;;;;;;;;ACnJA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACiB;AACW;AAC8G;;AAE1I;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;;;AAGA;AACA;;;AAGA;AACA;AACA;AACA,mFAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,4GAA+D;AAC/D;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA,iCAAiC,UAAU,GAAG,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D,iBAAiB,2CAA2C;AAC5D,kBAAkB,oBAAoB;AACtC,4BAA4B;AAC5B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,wE;;;;;;;;;;;;ACplCA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACA;AACA;AACkB;AACD;AACY;AACP;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,+EAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;ACpUA;AAAA;;AAEA;;AAEA,sD;;;;;;;;;;;ACJA;AACA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;ACjBA;;AAEA;AACA,eAAe,sEAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,qBAAqB,kDAAkD;AACvE,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,cAAc;AACd;AACA;AACA,G;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8BAA8B,YAAY,wBAAwB,EAAE;AACpE,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AC1GA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;;;;;ACfA;AAAA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACA;AACA;AACA;AACA;AACuB;AACL;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb,GAAG;AACH;AACA,aAAa;AACb,GAAG;AACH,2EAAqB;AACrB;AACA,GAAG;AACH;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA,8DAA8D;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAsD;AAC9E,SAAS;AACT,2BAA2B;AAC3B;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B,YAAY,2BAA2B;AAC3F;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B,YAAY,2BAA2B;AAC3F;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,uBAAuB,yCAAyC;AACzJ,KAAK;AACL;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,WAAW;AACX;AACA;AACA,qCAAqC;AACrC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,aAAa,SAAS,uCAAuC,EAAE;AACtE;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,sEAAsE,0BAA0B,yCAAyC;AAClK,KAAK;AACL;AACA;;AAEA;AACA,4BAA4B,mDAAmD,mBAAmB,KAAK,EAAE;;AAEzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,yCAAyC,8BAA8B;AACvE,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gCAAgC,qBAAqB;AACrD,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,YAAY,yBAAyB,GAAG,IAAI,QAAQ,GAAG;AACvD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yBAAyB,4EAA8B;AACvD,WAAW;AACX;AACA,uFAAiC;AACjC,WAAW;AACX,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4EAA8B;AACvD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4EAAsB,2DAA2D;AACjF,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AC14BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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,+CAA+C,EAAE;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yCAAyC,GAAG;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,YAAY,OAAO;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;A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A;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,wBAAwB,gCAAgC,yBAAyB,GAAG;AACpF;;AAEA;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD,cAAc;AACd,KAAK;;AAEL;AACA;AACA,uBAAuB,+DAA+D;AACtF,cAAc;AACd,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;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,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;ACzXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wCAAwC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AClHA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,4BAA4B,kBAAkB,UAAU,sBAAsB,EAAE,aAAa,eAAe;AACjI,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;ACfA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACA;;AAEA;AACe;;AAEf;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;ACxGA;AAAA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEiB;AACjB;AACA;AAC2J;;AAE3J;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;;AAEX;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,KAAK;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA,kDAAkD,QAAQ;AAC1D;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,0E;;;;;;;;;;AC9dA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACuB;AACvB;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,G;;;;;;;;;;ACpKA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACuB;AACvB;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,G;;;;;;ACpKA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,2PAA4P,eAAe,iBAAiB,iBAAiB,eAAe,cAAc,iBAAiB,iBAAiB,gBAAgB,eAAe,eAAe,aAAa,eAAe,oBAAoB,kBAAkB,oBAAoB,kBAAkB,eAAe,kBAAkB,iBAAi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","file":"scripts/bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import Vue from 'vue';\r\nimport Main from './component/main.vue';\r\nimport BootstrapVue from \"bootstrap-vue\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport \"bootstrap-vue/dist/bootstrap-vue.min.css\";\r\n\r\n// Configure vue setting\r\nVue.use(BootstrapVue);\r\n\r\n// Initiate vue app\r\nvar vue_app = new Vue({\r\n el: '#app',\r\n render: h => h(Main)\r\n});\r\n","/*!\n * Vue.js v2.5.16\n * (c) 2014-2018 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value e.g. [object Object]\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it... e.g.\n * PhantomJS 1.x. Technically we don't need this anymore since native bind is\n * now more performant in most browsers, but removing it would be breaking for\n * code that was able to run in PhantomJS 1.x, so this must be kept for\n * backwards compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\n\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n})\n\n/* */\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {};\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n if (!getter && arguments.length === 2) {\n val = obj[key];\n }\n var setter = property && property.set;\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'can only contain alphanumeric characters and the hyphen, ' +\n 'and must start with a letter.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false && isObject(value) && ('@binding' in value))\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', ')) +\n \", got \" + (toRawType(value)) + \".\",\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n logError(e, null, 'config.errorHandler');\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n/* globals MessageChannel */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using both microtasks and (macro) tasks.\n// In < 2.4 we used microtasks everywhere, but there are some scenarios where\n// microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690) or even between bubbling of the same\n// event (#6566). However, using (macro) tasks everywhere also has subtle problems\n// when state is changed right before repaint (e.g. #6813, out-in transitions).\n// Here we use microtask by default, but expose a way to force (macro) task when\n// needed (e.g. in event handlers attached by v-on).\nvar microTimerFunc;\nvar macroTimerFunc;\nvar useMacroTask = false;\n\n// Determine (macro) task defer implementation.\n// Technically setImmediate should be the ideal choice, but it's only available\n// in IE. The only polyfill that consistently queues the callback after all DOM\n// events triggered in the same loop is by using MessageChannel.\n/* istanbul ignore if */\nif (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n macroTimerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else if (typeof MessageChannel !== 'undefined' && (\n isNative(MessageChannel) ||\n // PhantomJS\n MessageChannel.toString() === '[object MessageChannelConstructor]'\n)) {\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = flushCallbacks;\n macroTimerFunc = function () {\n port.postMessage(1);\n };\n} else {\n /* istanbul ignore next */\n macroTimerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\n// Determine microtask defer implementation.\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n microTimerFunc = function () {\n p.then(flushCallbacks);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else {\n // fallback to macro\n microTimerFunc = macroTimerFunc;\n}\n\n/**\n * Wrap a function so that if any code inside triggers state change,\n * the changes are queued using a (macro) task instead of a microtask.\n */\nfunction withMacroTask (fn) {\n return fn._withTask || (fn._withTask = function () {\n useMacroTask = true;\n var res = fn.apply(null, arguments);\n useMacroTask = false;\n return res\n })\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n if (useMacroTask) {\n macroTimerFunc();\n } else {\n microTimerFunc();\n }\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, def, cur, old, event;\n for (name in on) {\n def = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n /* istanbul ignore if */\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n add(event.name, cur, event.once, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor,\n context\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (isDef(factory.contexts)) {\n // already pending\n factory.contexts.push(context);\n } else {\n var contexts = factory.contexts = [context];\n var sync = true;\n\n var forceRender = function () {\n for (var i = 0, l = contexts.length; i < l; i++) {\n contexts[i].$forceUpdate();\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender();\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender();\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (typeof res.then === 'function') {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isDef(res.component) && typeof res.component.then === 'function') {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n setTimeout(function () {\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender();\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n setTimeout(function () {\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn, once) {\n if (once) {\n target.$once(event, fn);\n } else {\n target.$on(event, fn);\n }\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$off(event[i], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n if (fn) {\n // specific handler\n var cb;\n var i$1 = cbs.length;\n while (i$1--) {\n cb = cbs[i$1];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i$1, 1);\n break\n }\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n for (var i = 0, l = cbs.length; i < l; i++) {\n try {\n cbs[i].apply(vm, args);\n } catch (e) {\n handleError(e, vm, (\"event handler for \\\"\" + event + \"\\\"\"));\n }\n }\n }\n return vm\n };\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n var slots = {};\n if (!children) {\n return slots\n }\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res\n) {\n res = res || {};\n for (var i = 0; i < fns.length; i++) {\n if (Array.isArray(fns[i])) {\n resolveScopedSlots(fns[i], res);\n } else {\n res[fns[i].key] = fns[i].fn;\n }\n }\n return res\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n if (vm._isMounted) {\n callHook(vm, 'beforeUpdate');\n }\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(\n vm.$el, vnode, hydrating, false /* removeOnly */,\n vm.$options._parentElm,\n vm.$options._refElm\n );\n // no need for the ref nodes after initial patch\n // this prevents keeping a detached DOM tree in memory (#5851)\n vm.$options._parentElm = vm.$options._refElm = null;\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n activeInstance = prevActiveInstance;\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren\n var hasChildren = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n parentVnode.data.scopedSlots || // has new scoped slots\n vm.$scopedSlots !== emptyObject // has old scoped slots\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (hasChildren) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n try {\n handlers[i].call(vm);\n } catch (e) {\n handleError(e, vm, (hook + \" hook\"));\n }\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\nvar uid$1 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$1; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = function () {};\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n var dep = this$1.deps[i];\n if (!this$1.newDepIds.has(dep.id)) {\n dep.removeSub(this$1);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n var this$1 = this;\n\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].removeSub(this$1);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive(props, key, value, function () {\n if (vm.$parent && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : userDef;\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : userDef.get\n : noop;\n sharedPropertyDefinition.set = userDef.set\n ? userDef.set\n : noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (methods[key] == null) {\n warn(\n \"Method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = methods[key] == null ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function (newData) {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n cb.call(vm, watcher.value);\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject).filter(function (key) {\n /* istanbul ignore next */\n return Object.getOwnPropertyDescriptor(inject, key).enumerable\n })\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n if (isDef(ret)) {\n (ret)._isVList = true;\n }\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n var slotNodes = this.$slots[name];\n // warn duplicate slot usage\n if (slotNodes) {\n if (process.env.NODE_ENV !== 'production' && slotNodes._rendered) {\n warn(\n \"Duplicate presence of slot \\\"\" + name + \"\\\" found in the same render tree \" +\n \"- this will likely cause render errors.\",\n this\n );\n }\n slotNodes._rendered = true;\n }\n nodes = slotNodes || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n if (!(key in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () { return resolveSlots(children, parent); };\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = data.scopedSlots || emptyObject;\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n\n\n\n// Register the component hook to weex native render engine.\n// The hook will be triggered by native, not javascript.\n\n\n// Updates the state of the component to weex native render engine.\n\n/* */\n\n// https://github.com/Hanks10100/weex-native-directive/tree/master/component\n\n// listening on native callback\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (\n vnode,\n hydrating,\n parentElm,\n refElm\n ) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance,\n parentElm,\n refElm\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n // Weex specific: invoke recycle-list optimized @render function for\n // extracting cell-slot template.\n // https://github.com/Hanks10100/weex-native-directive/tree/master/component\n /* istanbul ignore if */\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent, // activeInstance in lifecycle state\n parentElm,\n refElm\n) {\n var options = {\n _isComponent: true,\n parent: parent,\n _parentVnode: vnode,\n _parentElm: parentElm || null,\n _refElm: refElm || null\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n hooks[key] = componentVNodeHooks[key];\n }\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n if (isDef(on[event])) {\n on[event] = [data.model.callback].concat(on[event]);\n } else {\n on[event] = data.model.callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n // reset _rendered flag on slots for duplicate slot check\n if (process.env.NODE_ENV !== 'production') {\n for (var key in vm.$slots) {\n // $flow-disable-line\n vm.$slots[key]._rendered = false;\n }\n }\n\n if (_parentVnode) {\n vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n if (vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n opts._parentElm = options._parentElm;\n opts._refElm = options._refElm;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var extended = Ctor.extendOptions;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = dedupe(latest[key], extended[key], sealed[key]);\n }\n }\n return modified\n}\n\nfunction dedupe (latest, extended, sealed) {\n // compare latest and sealed to ensure lifecycle hooks won't be duplicated\n // between merges\n if (Array.isArray(latest)) {\n var res = [];\n sealed = Array.isArray(sealed) ? sealed : [sealed];\n extended = Array.isArray(extended) ? extended : [extended];\n for (var i = 0; i < latest.length; i++) {\n // push original options and not sealed options to exclude duplicated options\n if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {\n res.push(latest[i]);\n }\n }\n return res\n } else {\n return latest\n }\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n var this$1 = this;\n\n for (var key in this$1.cache) {\n pruneCacheEntry(this$1.cache, key, this$1.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n}\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n}\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.5.16';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\n\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\n\nvar nodeOps = Object.freeze({\n\tcreateElement: createElement$1,\n\tcreateElementNS: createElementNS,\n\tcreateTextNode: createTextNode,\n\tcreateComment: createComment,\n\tinsertBefore: insertBefore,\n\tremoveChild: removeChild,\n\tappendChild: appendChild,\n\tparentNode: parentNode,\n\tnextSibling: nextSibling,\n\ttagName: tagName,\n\tsetTextContent: setTextContent,\n\tsetStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n}\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove () {\n if (--remove.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove.listeners = listeners;\n return remove\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */, parentElm, refElm);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (ref$$1.parentNode === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {\n if (oldVnode === vnode) {\n return\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue, parentElm, refElm);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm$1 = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm$1,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm$1)) {\n removeVnodes(parentElm$1, [oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n}\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n]\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n}\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n}\n\n/* */\n\n/* */\n\n\n\n\n\n\n\n\n\n// add a raw attr (use this in preTransforms)\n\n\n\n\n\n\n\n\n// note: this only removes the attr from the Array (attrsList) so that it\n// doesn't get processed by processAttrs.\n// By default it does NOT remove it from the map (attrsMap) because the map is\n// needed during codegen.\n\n/* */\n\n/**\n * Cross-platform code generation for component v-model\n */\n\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\n\n/* */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler (handler, event, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\nfunction add$1 (\n event,\n handler,\n once$$1,\n capture,\n passive\n) {\n handler = withMacroTask(handler);\n if (once$$1) { handler = createOnceHandler(handler, event, capture); }\n target$1.addEventListener(\n event,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n event,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n event,\n handler._withTask || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n}\n\n/* */\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (isUndef(props[key])) {\n elm[key] = '';\n }\n }\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else {\n elm[key] = cur;\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.lazy) {\n // inputs with lazy should only be updated when not in focus\n return false\n }\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(name, val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n}\n\n/* */\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def) {\n if (!def) {\n return\n }\n /* istanbul ignore else */\n if (typeof def === 'object') {\n var res = {};\n if (def.css !== false) {\n extend(res, autoCssTransition(def.name || 'v'));\n }\n extend(res, def);\n return res\n } else if (typeof def === 'string') {\n return autoCssTransition(def)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n var transitionDelays = styles[transitionProp + 'Delay'].split(', ');\n var transitionDurations = styles[transitionProp + 'Duration'].split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = styles[animationProp + 'Delay'].split(', ');\n var animationDurations = styles[animationProp + 'Duration'].split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\nfunction toMs (s) {\n return Number(s.slice(0, -1)) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n transitionNode = transitionNode.parent;\n context = transitionNode.context;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {}\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n]\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n}\n\nvar platformDirectives = {\n model: directive,\n show: show\n}\n\n/* */\n\n// Provides transition support for a single element/component.\n// supports transition mode (out-in / in-out)\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n}\n\n/* */\n\n// Provides transition support for list items.\n// supports move transitions using the FLIP technique.\n\n// Because the vdom's children update algorithm is \"unstable\" - i.e.\n// it doesn't guarantee the relative positioning of removed elements,\n// we force transition-group to update its children into two passes:\n// in the first pass, we remove all nodes that need to be removed,\n// triggering their leaving transition; in the second pass, we insert/move\n// into the final desired state. This way in the second pass removed\n// nodes will remain where they should be.\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n beforeUpdate: function beforeUpdate () {\n // force removing pass\n this.__patch__(\n this._vnode,\n this.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this._vnode = this.kept;\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n}\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n}\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n isChrome\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nexport default Vue;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import { render, staticRenderFns } from \"./main.vue?vue&type=template&id=54306671\"\nimport script from \"./main.vue?vue&type=script&lang=ts\"\nexport * from \"./main.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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('54306671', component.options)\n } else {\n api.reload('54306671', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\main.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n !_vm.isPageLoaded ? _c(\"Start\") : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"container-fluid\" }, [\n _vm.isPageLoaded\n ? _c(\n \"div\",\n { staticClass: \"row\", attrs: { id: \"divMain\" } },\n [\n _c(\"Menu\"),\n _vm._v(\" \"),\n _c(\"div\", {\n staticStyle: {\n \"border-top\": \"5px solid #777adb\",\n width: \"100%\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col-sm-3\" },\n [_c(\"DbInfo\", { attrs: { selectedDb: _vm.selectedDb } })],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"col\",\n attrs: { id: \"divQueryExecutorContainer\" }\n },\n [_c(\"QueryExecutor\")],\n 1\n )\n ],\n 1\n )\n : _vm._e()\n ])\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('54306671', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./main.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./main.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport DbList from \"./db_list.vue\";\r\nimport Menu from \"./menu.vue\";\r\nimport DbInfo from \"./db_info.vue\";\r\nimport QueryExecutor from \"./query_executor.vue\";\r\nimport Start from \"./start.vue\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport \"../css/common.css\";\r\nimport { Util } from \"../util\";\r\nimport { Config } from \"jsstore\";\r\n\r\ndeclare var ace;\r\nace.config.set(\"workerPath\", \"assets/scripts\");\r\nace.config.set(\"themePath\", \"assets/scripts\");\r\n\r\n@Component({\r\n components: {\r\n Menu,\r\n DbInfo,\r\n QueryExecutor,\r\n Start\r\n }\r\n})\r\nexport default class Main extends Vue {\r\n isPageLoaded = false;\r\n selectedDb;\r\n constructor() {\r\n super();\r\n this.catchEvent();\r\n this.setLogFromUrl();\r\n }\r\n\r\n setLogFromUrl() {\r\n var log = Util.getParameterByName(\"log\");\r\n if (!Util.isNull(log)) {\r\n Config.isLogEnabled = log == \"1\" ? true : false;\r\n }\r\n }\r\n\r\n togglePageLoadedStatus() {\r\n this.isPageLoaded = !this.isPageLoaded;\r\n }\r\n\r\n private catchEvent() {\r\n vueEvent.$on(\"on_error\", errMessage => {\r\n alert(errMessage);\r\n });\r\n\r\n vueEvent.$on(\"page_loaded\", dbName => {\r\n this.selectedDb = dbName;\r\n this.togglePageLoadedStatus();\r\n });\r\n }\r\n}\r\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('vue-class-component'), require('reflect-metadata')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'vue', 'vue-class-component', 'reflect-metadata'], factory) :\n\t(factory((global.VuePropertyDecorator = {}),global.Vue,global.VueClassComponent));\n}(this, (function (exports,vue,vueClassComponent) { 'use strict';\n\nvue = vue && vue.hasOwnProperty('default') ? vue['default'] : vue;\nvar vueClassComponent__default = 'default' in vueClassComponent ? vueClassComponent['default'] : vueClassComponent;\n\n/** vue-property-decorator verson 6.0.0 MIT LICENSE copyright 2017 kaorun343 */\n'use strict';\n/**\n * decorator of an inject\n * @param key key\n * @return PropertyDecorator\n */\nfunction Inject(key) {\n return vueClassComponent.createDecorator(function (componentOptions, k) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject[k] = key || k;\n }\n });\n}\n/**\n * decorator of a provide\n * @param key key\n * @return PropertyDecorator | void\n */\nfunction Provide(key) {\n return vueClassComponent.createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n if (typeof provide !== 'function' || !provide.managed) {\n var original_1 = componentOptions.provide;\n provide = componentOptions.provide = function () {\n var rv = Object.create((typeof original_1 === 'function' ? original_1.call(this) : original_1) || null);\n for (var i in provide.managed)\n rv[provide.managed[i]] = this[i];\n return rv;\n };\n provide.managed = {};\n }\n provide.managed[k] = key || k;\n });\n}\n/**\n * decorator of model\n * @param event event name\n * @return PropertyDecorator\n */\nfunction Model(event, options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n if (!Array.isArray(options) && typeof options.type === 'undefined') {\n options.type = Reflect.getMetadata('design:type', target, key);\n }\n vueClassComponent.createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n componentOptions.model = { prop: k, event: event || k };\n })(target, key);\n };\n}\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nfunction Prop(options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n if (!Array.isArray(options) && typeof options.type === 'undefined') {\n options.type = Reflect.getMetadata('design:type', target, key);\n }\n vueClassComponent.createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nfunction Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return vueClassComponent.createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n componentOptions.watch[path] = { handler: handler, deep: deep, immediate: immediate };\n });\n}\n// Code copied from Vue/src/shared/util.js\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };\n/**\n * decorator of an event-emitter function\n * @param event The name of the event\n * @return MethodDecorator\n */\nfunction Emit(event) {\n return function (target, key, descriptor) {\n key = hyphenate(key);\n var original = descriptor.value;\n descriptor.value = function emitter() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (original.apply(this, args) !== false)\n this.$emit.apply(this, [event || key].concat(args));\n };\n };\n}\n\nexports.Component = vueClassComponent__default;\nexports.Vue = vue;\nexports.Inject = Inject;\nexports.Provide = Provide;\nexports.Model = Model;\nexports.Prop = Prop;\nexports.Watch = Watch;\nexports.Emit = Emit;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * vue-class-component v6.2.0\n * (c) 2015-present Evan You\n * @license MIT\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nvar hasProto = { __proto__: [] } instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function'\n ? target\n : target.constructor;\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n if (typeof index !== 'number') {\n index = undefined;\n }\n Ctor.__decorators__.push(function (options) { return factory(options, key, index); });\n };\n}\nfunction mixins() {\n var Ctors = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Ctors[_i] = arguments[_i];\n }\n return Vue.extend({ mixins: Ctors });\n}\nfunction isPrimitive(value) {\n var type = typeof value;\n return value == null || (type !== \"object\" && type !== \"function\");\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n Component.prototype._init = function () {\n var _this = this;\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm);\n // 2.2.0 compat (props are no longer exposed as self properties)\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n keys.forEach(function (key) {\n if (key.charAt(0) !== '_') {\n Object.defineProperty(_this, key, {\n get: function () { return vm[key]; },\n set: function (value) { return vm[key] = value; },\n configurable: true\n });\n }\n });\n };\n // should be acquired class property values\n var data = new Component();\n // restore original _init to avoid memory leak (#209)\n Component.prototype._init = originalInit;\n // create plain data object\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' +\n 'when class property is used.');\n }\n }\n return plainData;\n}\n\nvar $internalHooks = [\n 'data',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeDestroy',\n 'destroyed',\n 'beforeUpdate',\n 'updated',\n 'activated',\n 'deactivated',\n 'render',\n 'errorCaptured' // 2.5\n];\nfunction componentFactory(Component, options) {\n if (options === void 0) { options = {}; }\n options.name = options.name || Component._componentTag || Component.name;\n // prototype props.\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n }\n // hooks\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (typeof descriptor.value === 'function') {\n // methods\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n }\n else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function () {\n return collectDataFromConstructor(this, Component);\n }\n });\n // decorate options\n var decorators = Component.__decorators__;\n if (decorators) {\n decorators.forEach(function (fn) { return fn(options); });\n delete Component.__decorators__;\n }\n // find super\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue\n ? superProto.constructor\n : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n return Extended;\n}\nvar reservedPropertyNames = [\n // Unique id\n 'cid',\n // Super Vue constructor\n 'super',\n // Component options that will be used by the component\n 'options',\n 'superOptions',\n 'extendOptions',\n 'sealedOptions',\n // Private assets\n 'component',\n 'directive',\n 'filter'\n];\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // `prototype` should not be overwritten\n if (key === 'prototype') {\n return;\n }\n // Some browsers does not allow reconfigure built-in properties\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(Original, key);\n // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n if (!isPrimitive(descriptor.value)\n && superDescriptor\n && superDescriptor.value === descriptor.value) {\n return;\n }\n }\n // Warn if the users manually declare reserved properties\n if (process.env.NODE_ENV !== 'production'\n && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\" + key + \"' declared on class '\" + Original.name + \"' \" +\n 'conflicts with reserved property name of Vue internal. ' +\n 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n(function (Component) {\n function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, keys);\n }\n Component.registerHooks = registerHooks;\n})(Component || (Component = {}));\nvar Component$1 = Component;\n\nexports.default = Component$1;\nexports.createDecorator = createDecorator;\nexports.mixins = mixins;\n","/*! *****************************************************************************\r\nCopyright (C) Microsoft. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\nvar Reflect;\r\n(function (Reflect) {\r\n // Metadata Proposal\r\n // https://rbuckton.github.io/reflect-metadata/\r\n (function (factory) {\r\n var root = typeof global === \"object\" ? global :\r\n typeof self === \"object\" ? self :\r\n typeof this === \"object\" ? this :\r\n Function(\"return this;\")();\r\n var exporter = makeExporter(Reflect);\r\n if (typeof root.Reflect === \"undefined\") {\r\n root.Reflect = Reflect;\r\n }\r\n else {\r\n exporter = makeExporter(root.Reflect, exporter);\r\n }\r\n factory(exporter);\r\n function makeExporter(target, previous) {\r\n return function (key, value) {\r\n if (typeof target[key] !== \"function\") {\r\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\r\n }\r\n if (previous)\r\n previous(key, value);\r\n };\r\n }\r\n })(function (exporter) {\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n // feature test for Symbol support\r\n var supportsSymbol = typeof Symbol === \"function\";\r\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\r\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\r\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\r\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\r\n var downLevel = !supportsCreate && !supportsProto;\r\n var HashMap = {\r\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\r\n create: supportsCreate\r\n ? function () { return MakeDictionary(Object.create(null)); }\r\n : supportsProto\r\n ? function () { return MakeDictionary({ __proto__: null }); }\r\n : function () { return MakeDictionary({}); },\r\n has: downLevel\r\n ? function (map, key) { return hasOwn.call(map, key); }\r\n : function (map, key) { return key in map; },\r\n get: downLevel\r\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\r\n : function (map, key) { return map[key]; },\r\n };\r\n // Load global or shim versions of Map, Set, and WeakMap\r\n var functionPrototype = Object.getPrototypeOf(Function);\r\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\r\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\r\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\r\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\r\n // [[Metadata]] internal slot\r\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\r\n var Metadata = new _WeakMap();\r\n /**\r\n * Applies a set of decorators to a property of a target object.\r\n * @param decorators An array of decorators.\r\n * @param target The target object.\r\n * @param propertyKey (Optional) The property key to decorate.\r\n * @param attributes (Optional) The property descriptor for the target key.\r\n * @remarks Decorators are applied in reverse order.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * Example = Reflect.decorate(decoratorsArray, Example);\r\n *\r\n * // property (on constructor)\r\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * Object.defineProperty(Example, \"staticMethod\",\r\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\r\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\r\n *\r\n * // method (on prototype)\r\n * Object.defineProperty(Example.prototype, \"method\",\r\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\r\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\r\n *\r\n */\r\n function decorate(decorators, target, propertyKey, attributes) {\r\n if (!IsUndefined(propertyKey)) {\r\n if (!IsArray(decorators))\r\n throw new TypeError();\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\r\n throw new TypeError();\r\n if (IsNull(attributes))\r\n attributes = undefined;\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return DecorateProperty(decorators, target, propertyKey, attributes);\r\n }\r\n else {\r\n if (!IsArray(decorators))\r\n throw new TypeError();\r\n if (!IsConstructor(target))\r\n throw new TypeError();\r\n return DecorateConstructor(decorators, target);\r\n }\r\n }\r\n exporter(\"decorate\", decorate);\r\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\r\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\r\n /**\r\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\r\n * @param metadataKey The key for the metadata entry.\r\n * @param metadataValue The value for the metadata entry.\r\n * @returns A decorator function.\r\n * @remarks\r\n * If `metadataKey` is already defined for the target and target key, the\r\n * metadataValue for that key will be overwritten.\r\n * @example\r\n *\r\n * // constructor\r\n * @Reflect.metadata(key, value)\r\n * class Example {\r\n * }\r\n *\r\n * // property (on constructor, TypeScript only)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * static staticProperty;\r\n * }\r\n *\r\n * // property (on prototype, TypeScript only)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * property;\r\n * }\r\n *\r\n * // method (on constructor)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * static staticMethod() { }\r\n * }\r\n *\r\n * // method (on prototype)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * method() { }\r\n * }\r\n *\r\n */\r\n function metadata(metadataKey, metadataValue) {\r\n function decorator(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\r\n throw new TypeError();\r\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\r\n }\r\n return decorator;\r\n }\r\n exporter(\"metadata\", metadata);\r\n /**\r\n * Define a unique metadata entry on the target.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param metadataValue A value that contains attached metadata.\r\n * @param target The target object on which to define metadata.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\r\n *\r\n * // property (on constructor)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\r\n *\r\n * // decorator factory as metadata-producing annotation.\r\n * function MyAnnotation(options): Decorator {\r\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\r\n * }\r\n *\r\n */\r\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\r\n }\r\n exporter(\"defineMetadata\", defineMetadata);\r\n /**\r\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function hasMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"hasMetadata\", hasMetadata);\r\n /**\r\n * Gets a value indicating whether the target object has the provided metadata key defined.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function hasOwnMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\r\n /**\r\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function getMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"getMetadata\", getMetadata);\r\n /**\r\n * Gets the metadata value for the provided metadata key on the target object.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function getOwnMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"getOwnMetadata\", getOwnMetadata);\r\n /**\r\n * Gets the metadata keys defined on the target object or its prototype chain.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns An array of unique metadata keys.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getMetadataKeys(Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\r\n *\r\n */\r\n function getMetadataKeys(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryMetadataKeys(target, propertyKey);\r\n }\r\n exporter(\"getMetadataKeys\", getMetadataKeys);\r\n /**\r\n * Gets the unique metadata keys defined on the target object.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns An array of unique metadata keys.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getOwnMetadataKeys(Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\r\n *\r\n */\r\n function getOwnMetadataKeys(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryOwnMetadataKeys(target, propertyKey);\r\n }\r\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\r\n /**\r\n * Deletes the metadata entry from the target object with the provided key.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function deleteMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return false;\r\n if (!metadataMap.delete(metadataKey))\r\n return false;\r\n if (metadataMap.size > 0)\r\n return true;\r\n var targetMetadata = Metadata.get(target);\r\n targetMetadata.delete(propertyKey);\r\n if (targetMetadata.size > 0)\r\n return true;\r\n Metadata.delete(target);\r\n return true;\r\n }\r\n exporter(\"deleteMetadata\", deleteMetadata);\r\n function DecorateConstructor(decorators, target) {\r\n for (var i = decorators.length - 1; i >= 0; --i) {\r\n var decorator = decorators[i];\r\n var decorated = decorator(target);\r\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n if (!IsConstructor(decorated))\r\n throw new TypeError();\r\n target = decorated;\r\n }\r\n }\r\n return target;\r\n }\r\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\r\n for (var i = decorators.length - 1; i >= 0; --i) {\r\n var decorator = decorators[i];\r\n var decorated = decorator(target, propertyKey, descriptor);\r\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n if (!IsObject(decorated))\r\n throw new TypeError();\r\n descriptor = decorated;\r\n }\r\n }\r\n return descriptor;\r\n }\r\n function GetOrCreateMetadataMap(O, P, Create) {\r\n var targetMetadata = Metadata.get(O);\r\n if (IsUndefined(targetMetadata)) {\r\n if (!Create)\r\n return undefined;\r\n targetMetadata = new _Map();\r\n Metadata.set(O, targetMetadata);\r\n }\r\n var metadataMap = targetMetadata.get(P);\r\n if (IsUndefined(metadataMap)) {\r\n if (!Create)\r\n return undefined;\r\n metadataMap = new _Map();\r\n targetMetadata.set(P, metadataMap);\r\n }\r\n return metadataMap;\r\n }\r\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\r\n function OrdinaryHasMetadata(MetadataKey, O, P) {\r\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n if (hasOwn)\r\n return true;\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (!IsNull(parent))\r\n return OrdinaryHasMetadata(MetadataKey, parent, P);\r\n return false;\r\n }\r\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\r\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return false;\r\n return ToBoolean(metadataMap.has(MetadataKey));\r\n }\r\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\r\n function OrdinaryGetMetadata(MetadataKey, O, P) {\r\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n if (hasOwn)\r\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (!IsNull(parent))\r\n return OrdinaryGetMetadata(MetadataKey, parent, P);\r\n return undefined;\r\n }\r\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\r\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return undefined;\r\n return metadataMap.get(MetadataKey);\r\n }\r\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\r\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\r\n metadataMap.set(MetadataKey, MetadataValue);\r\n }\r\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\r\n function OrdinaryMetadataKeys(O, P) {\r\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (parent === null)\r\n return ownKeys;\r\n var parentKeys = OrdinaryMetadataKeys(parent, P);\r\n if (parentKeys.length <= 0)\r\n return ownKeys;\r\n if (ownKeys.length <= 0)\r\n return parentKeys;\r\n var set = new _Set();\r\n var keys = [];\r\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\r\n var key = ownKeys_1[_i];\r\n var hasKey = set.has(key);\r\n if (!hasKey) {\r\n set.add(key);\r\n keys.push(key);\r\n }\r\n }\r\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\r\n var key = parentKeys_1[_a];\r\n var hasKey = set.has(key);\r\n if (!hasKey) {\r\n set.add(key);\r\n keys.push(key);\r\n }\r\n }\r\n return keys;\r\n }\r\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\r\n function OrdinaryOwnMetadataKeys(O, P) {\r\n var keys = [];\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return keys;\r\n var keysObj = metadataMap.keys();\r\n var iterator = GetIterator(keysObj);\r\n var k = 0;\r\n while (true) {\r\n var next = IteratorStep(iterator);\r\n if (!next) {\r\n keys.length = k;\r\n return keys;\r\n }\r\n var nextValue = IteratorValue(next);\r\n try {\r\n keys[k] = nextValue;\r\n }\r\n catch (e) {\r\n try {\r\n IteratorClose(iterator);\r\n }\r\n finally {\r\n throw e;\r\n }\r\n }\r\n k++;\r\n }\r\n }\r\n // 6 ECMAScript Data Typ0es and Values\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\r\n function Type(x) {\r\n if (x === null)\r\n return 1 /* Null */;\r\n switch (typeof x) {\r\n case \"undefined\": return 0 /* Undefined */;\r\n case \"boolean\": return 2 /* Boolean */;\r\n case \"string\": return 3 /* String */;\r\n case \"symbol\": return 4 /* Symbol */;\r\n case \"number\": return 5 /* Number */;\r\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\r\n default: return 6 /* Object */;\r\n }\r\n }\r\n // 6.1.1 The Undefined Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\r\n function IsUndefined(x) {\r\n return x === undefined;\r\n }\r\n // 6.1.2 The Null Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\r\n function IsNull(x) {\r\n return x === null;\r\n }\r\n // 6.1.5 The Symbol Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\r\n function IsSymbol(x) {\r\n return typeof x === \"symbol\";\r\n }\r\n // 6.1.7 The Object Type\r\n // https://tc39.github.io/ecma262/#sec-object-type\r\n function IsObject(x) {\r\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\r\n }\r\n // 7.1 Type Conversion\r\n // https://tc39.github.io/ecma262/#sec-type-conversion\r\n // 7.1.1 ToPrimitive(input [, PreferredType])\r\n // https://tc39.github.io/ecma262/#sec-toprimitive\r\n function ToPrimitive(input, PreferredType) {\r\n switch (Type(input)) {\r\n case 0 /* Undefined */: return input;\r\n case 1 /* Null */: return input;\r\n case 2 /* Boolean */: return input;\r\n case 3 /* String */: return input;\r\n case 4 /* Symbol */: return input;\r\n case 5 /* Number */: return input;\r\n }\r\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\r\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\r\n if (exoticToPrim !== undefined) {\r\n var result = exoticToPrim.call(input, hint);\r\n if (IsObject(result))\r\n throw new TypeError();\r\n return result;\r\n }\r\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\r\n }\r\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\r\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\r\n function OrdinaryToPrimitive(O, hint) {\r\n if (hint === \"string\") {\r\n var toString_1 = O.toString;\r\n if (IsCallable(toString_1)) {\r\n var result = toString_1.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n var valueOf = O.valueOf;\r\n if (IsCallable(valueOf)) {\r\n var result = valueOf.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n }\r\n else {\r\n var valueOf = O.valueOf;\r\n if (IsCallable(valueOf)) {\r\n var result = valueOf.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n var toString_2 = O.toString;\r\n if (IsCallable(toString_2)) {\r\n var result = toString_2.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n }\r\n throw new TypeError();\r\n }\r\n // 7.1.2 ToBoolean(argument)\r\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\r\n function ToBoolean(argument) {\r\n return !!argument;\r\n }\r\n // 7.1.12 ToString(argument)\r\n // https://tc39.github.io/ecma262/#sec-tostring\r\n function ToString(argument) {\r\n return \"\" + argument;\r\n }\r\n // 7.1.14 ToPropertyKey(argument)\r\n // https://tc39.github.io/ecma262/#sec-topropertykey\r\n function ToPropertyKey(argument) {\r\n var key = ToPrimitive(argument, 3 /* String */);\r\n if (IsSymbol(key))\r\n return key;\r\n return ToString(key);\r\n }\r\n // 7.2 Testing and Comparison Operations\r\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\r\n // 7.2.2 IsArray(argument)\r\n // https://tc39.github.io/ecma262/#sec-isarray\r\n function IsArray(argument) {\r\n return Array.isArray\r\n ? Array.isArray(argument)\r\n : argument instanceof Object\r\n ? argument instanceof Array\r\n : Object.prototype.toString.call(argument) === \"[object Array]\";\r\n }\r\n // 7.2.3 IsCallable(argument)\r\n // https://tc39.github.io/ecma262/#sec-iscallable\r\n function IsCallable(argument) {\r\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\r\n return typeof argument === \"function\";\r\n }\r\n // 7.2.4 IsConstructor(argument)\r\n // https://tc39.github.io/ecma262/#sec-isconstructor\r\n function IsConstructor(argument) {\r\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\r\n return typeof argument === \"function\";\r\n }\r\n // 7.2.7 IsPropertyKey(argument)\r\n // https://tc39.github.io/ecma262/#sec-ispropertykey\r\n function IsPropertyKey(argument) {\r\n switch (Type(argument)) {\r\n case 3 /* String */: return true;\r\n case 4 /* Symbol */: return true;\r\n default: return false;\r\n }\r\n }\r\n // 7.3 Operations on Objects\r\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\r\n // 7.3.9 GetMethod(V, P)\r\n // https://tc39.github.io/ecma262/#sec-getmethod\r\n function GetMethod(V, P) {\r\n var func = V[P];\r\n if (func === undefined || func === null)\r\n return undefined;\r\n if (!IsCallable(func))\r\n throw new TypeError();\r\n return func;\r\n }\r\n // 7.4 Operations on Iterator Objects\r\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\r\n function GetIterator(obj) {\r\n var method = GetMethod(obj, iteratorSymbol);\r\n if (!IsCallable(method))\r\n throw new TypeError(); // from Call\r\n var iterator = method.call(obj);\r\n if (!IsObject(iterator))\r\n throw new TypeError();\r\n return iterator;\r\n }\r\n // 7.4.4 IteratorValue(iterResult)\r\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\r\n function IteratorValue(iterResult) {\r\n return iterResult.value;\r\n }\r\n // 7.4.5 IteratorStep(iterator)\r\n // https://tc39.github.io/ecma262/#sec-iteratorstep\r\n function IteratorStep(iterator) {\r\n var result = iterator.next();\r\n return result.done ? false : result;\r\n }\r\n // 7.4.6 IteratorClose(iterator, completion)\r\n // https://tc39.github.io/ecma262/#sec-iteratorclose\r\n function IteratorClose(iterator) {\r\n var f = iterator[\"return\"];\r\n if (f)\r\n f.call(iterator);\r\n }\r\n // 9.1 Ordinary Object Internal Methods and Internal Slots\r\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\r\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\r\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\r\n function OrdinaryGetPrototypeOf(O) {\r\n var proto = Object.getPrototypeOf(O);\r\n if (typeof O !== \"function\" || O === functionPrototype)\r\n return proto;\r\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\r\n // Try to determine the superclass constructor. Compatible implementations\r\n // must either set __proto__ on a subclass constructor to the superclass constructor,\r\n // or ensure each class has a valid `constructor` property on its prototype that\r\n // points back to the constructor.\r\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\r\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\r\n if (proto !== functionPrototype)\r\n return proto;\r\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\r\n var prototype = O.prototype;\r\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\r\n if (prototypeProto == null || prototypeProto === Object.prototype)\r\n return proto;\r\n // If the constructor was not a function, then we cannot determine the heritage.\r\n var constructor = prototypeProto.constructor;\r\n if (typeof constructor !== \"function\")\r\n return proto;\r\n // If we have some kind of self-reference, then we cannot determine the heritage.\r\n if (constructor === O)\r\n return proto;\r\n // we have a pretty good guess at the heritage.\r\n return constructor;\r\n }\r\n // naive Map shim\r\n function CreateMapPolyfill() {\r\n var cacheSentinel = {};\r\n var arraySentinel = [];\r\n var MapIterator = (function () {\r\n function MapIterator(keys, values, selector) {\r\n this._index = 0;\r\n this._keys = keys;\r\n this._values = values;\r\n this._selector = selector;\r\n }\r\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\r\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\r\n MapIterator.prototype.next = function () {\r\n var index = this._index;\r\n if (index >= 0 && index < this._keys.length) {\r\n var result = this._selector(this._keys[index], this._values[index]);\r\n if (index + 1 >= this._keys.length) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n else {\r\n this._index++;\r\n }\r\n return { value: result, done: false };\r\n }\r\n return { value: undefined, done: true };\r\n };\r\n MapIterator.prototype.throw = function (error) {\r\n if (this._index >= 0) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n throw error;\r\n };\r\n MapIterator.prototype.return = function (value) {\r\n if (this._index >= 0) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n return { value: value, done: true };\r\n };\r\n return MapIterator;\r\n }());\r\n return (function () {\r\n function Map() {\r\n this._keys = [];\r\n this._values = [];\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n }\r\n Object.defineProperty(Map.prototype, \"size\", {\r\n get: function () { return this._keys.length; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\r\n Map.prototype.get = function (key) {\r\n var index = this._find(key, /*insert*/ false);\r\n return index >= 0 ? this._values[index] : undefined;\r\n };\r\n Map.prototype.set = function (key, value) {\r\n var index = this._find(key, /*insert*/ true);\r\n this._values[index] = value;\r\n return this;\r\n };\r\n Map.prototype.delete = function (key) {\r\n var index = this._find(key, /*insert*/ false);\r\n if (index >= 0) {\r\n var size = this._keys.length;\r\n for (var i = index + 1; i < size; i++) {\r\n this._keys[i - 1] = this._keys[i];\r\n this._values[i - 1] = this._values[i];\r\n }\r\n this._keys.length--;\r\n this._values.length--;\r\n if (key === this._cacheKey) {\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n Map.prototype.clear = function () {\r\n this._keys.length = 0;\r\n this._values.length = 0;\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n };\r\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\r\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\r\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\r\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\r\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\r\n Map.prototype._find = function (key, insert) {\r\n if (this._cacheKey !== key) {\r\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\r\n }\r\n if (this._cacheIndex < 0 && insert) {\r\n this._cacheIndex = this._keys.length;\r\n this._keys.push(key);\r\n this._values.push(undefined);\r\n }\r\n return this._cacheIndex;\r\n };\r\n return Map;\r\n }());\r\n function getKey(key, _) {\r\n return key;\r\n }\r\n function getValue(_, value) {\r\n return value;\r\n }\r\n function getEntry(key, value) {\r\n return [key, value];\r\n }\r\n }\r\n // naive Set shim\r\n function CreateSetPolyfill() {\r\n return (function () {\r\n function Set() {\r\n this._map = new _Map();\r\n }\r\n Object.defineProperty(Set.prototype, \"size\", {\r\n get: function () { return this._map.size; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Set.prototype.has = function (value) { return this._map.has(value); };\r\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\r\n Set.prototype.delete = function (value) { return this._map.delete(value); };\r\n Set.prototype.clear = function () { this._map.clear(); };\r\n Set.prototype.keys = function () { return this._map.keys(); };\r\n Set.prototype.values = function () { return this._map.values(); };\r\n Set.prototype.entries = function () { return this._map.entries(); };\r\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\r\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\r\n return Set;\r\n }());\r\n }\r\n // naive WeakMap shim\r\n function CreateWeakMapPolyfill() {\r\n var UUID_SIZE = 16;\r\n var keys = HashMap.create();\r\n var rootKey = CreateUniqueKey();\r\n return (function () {\r\n function WeakMap() {\r\n this._key = CreateUniqueKey();\r\n }\r\n WeakMap.prototype.has = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? HashMap.has(table, this._key) : false;\r\n };\r\n WeakMap.prototype.get = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\r\n };\r\n WeakMap.prototype.set = function (target, value) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\r\n table[this._key] = value;\r\n return this;\r\n };\r\n WeakMap.prototype.delete = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? delete table[this._key] : false;\r\n };\r\n WeakMap.prototype.clear = function () {\r\n // NOTE: not a real clear, just makes the previous data unreachable\r\n this._key = CreateUniqueKey();\r\n };\r\n return WeakMap;\r\n }());\r\n function CreateUniqueKey() {\r\n var key;\r\n do\r\n key = \"@@WeakMap@@\" + CreateUUID();\r\n while (HashMap.has(keys, key));\r\n keys[key] = true;\r\n return key;\r\n }\r\n function GetOrCreateWeakMapTable(target, create) {\r\n if (!hasOwn.call(target, rootKey)) {\r\n if (!create)\r\n return undefined;\r\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\r\n }\r\n return target[rootKey];\r\n }\r\n function FillRandomBytes(buffer, size) {\r\n for (var i = 0; i < size; ++i)\r\n buffer[i] = Math.random() * 0xff | 0;\r\n return buffer;\r\n }\r\n function GenRandomBytes(size) {\r\n if (typeof Uint8Array === \"function\") {\r\n if (typeof crypto !== \"undefined\")\r\n return crypto.getRandomValues(new Uint8Array(size));\r\n if (typeof msCrypto !== \"undefined\")\r\n return msCrypto.getRandomValues(new Uint8Array(size));\r\n return FillRandomBytes(new Uint8Array(size), size);\r\n }\r\n return FillRandomBytes(new Array(size), size);\r\n }\r\n function CreateUUID() {\r\n var data = GenRandomBytes(UUID_SIZE);\r\n // mark as random - RFC 4122 § 4.4\r\n data[6] = data[6] & 0x4f | 0x40;\r\n data[8] = data[8] & 0xbf | 0x80;\r\n var result = \"\";\r\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\r\n var byte = data[offset];\r\n if (offset === 4 || offset === 6 || offset === 8)\r\n result += \"-\";\r\n if (byte < 16)\r\n result += \"0\";\r\n result += byte.toString(16).toLowerCase();\r\n }\r\n return result;\r\n }\r\n }\r\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\r\n function MakeDictionary(obj) {\r\n obj.__ = undefined;\r\n delete obj.__;\r\n return obj;\r\n }\r\n });\r\n})(Reflect || (Reflect = {}));\r\n//# sourceMappingURL=Reflect.js.map","import { render, staticRenderFns } from \"./menu.vue?vue&type=template&id=30b43317&scoped=true\"\nimport script from \"./menu.vue?vue&type=script&lang=ts\"\nexport * from \"./menu.vue?vue&type=script&lang=ts\"\nimport style0 from \"./menu.vue?vue&type=style&index=0&id=30b43317&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 \"30b43317\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('30b43317', component.options)\n } else {\n api.reload('30b43317', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\menu.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { id: \"divMenu\" } }, [\n _c(\"span\", { staticClass: \"title\" }, [_vm._v(\" IDBStudio \")]),\n _vm._v(\" \"),\n _c(\"ul\", { staticClass: \"right-menu\" }, [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\"li\", { staticClass: \"seperator\" }, [_vm._v(\"|\")]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\n \"a\",\n {\n attrs: {\n title: \"fork on github\",\n target: \"_blank\",\n href: \"https://github.com/ujjwalguptaofficial/idbstudio/fork\"\n }\n },\n [\n _c(\n \"svg\",\n {\n staticClass: \"octicon octicon-repo-forked\",\n staticStyle: { fill: \"white\", \"vertical-align\": \"sub\" },\n attrs: {\n version: \"1.1\",\n width: \"10\",\n height: \"18\",\n viewBox: \"0 0 10 16\",\n \"aria-hidden\": \"true\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n \"fill-rule\": \"evenodd\",\n d:\n \"M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"\n }\n })\n ]\n ),\n _vm._v(\" Fork\")\n ]\n )\n ])\n ])\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"li\", [\n _c(\n \"a\",\n {\n attrs: {\n target: \"_blank\",\n href: \"https://github.com/ujjwalguptaofficial/idbstudio\"\n }\n },\n [_c(\"i\", { staticClass: \"fas fa-star\" }), _vm._v(\" Star\")]\n )\n ])\n }\n]\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('30b43317', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\n\r\n@Component\r\nexport default class Menu extends Vue {\r\n dbName: string = \"\";\r\n createNewQry() {\r\n vueEvent.$emit(\"open_editor\");\r\n }\r\n\r\n setDbName(dbName: string) {\r\n this.dbName = dbName;\r\n }\r\n\r\n catchEvent() {\r\n vueEvent.$on(\"db_selected\", (dbName: string) => {\r\n console.log(dbName);\r\n this.setDbName(dbName);\r\n });\r\n }\r\n\r\n executeQry() {\r\n vueEvent.$emit(\"execute_qry\");\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.catchEvent();\r\n }\r\n}\r\n","import Vue from \"vue\";\r\nexport const vueEvent = new Vue();","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e10ab6cc\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#divMenu[data-v-30b43317] {\\n background-color: #2c3e50;\\n width: 100%;\\n line-height: 45px;\\n color: white;\\n height: 50px;\\n}\\n#divMenu a[data-v-30b43317] {\\n color: white;\\n}\\n#divMenu ul li[data-v-30b43317] {\\n display: inline-block;\\n}\\n#divMenu .right-menu[data-v-30b43317] {\\n float: right;\\n position: relative;\\n right: 10px;\\n}\\n#divMenu .title[data-v-30b43317] {\\n margin-left: 15px;\\n font-size: 20px;\\n line-height: 50px;\\n font-family: Allerta;\\n}\\n\", \"\"]);\n\n// exports\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./db_info.vue?vue&type=template&id=3063ac47&scoped=true\"\nimport script from \"./db_info.vue?vue&type=script&lang=ts\"\nexport * from \"./db_info.vue?vue&type=script&lang=ts\"\nimport style0 from \"./db_info.vue?vue&type=style&index=0&id=3063ac47&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 \"3063ac47\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('3063ac47', component.options)\n } else {\n api.reload('3063ac47', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\db_info.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"b-form-select\",\n {\n staticClass: \"mb-3 db-list\",\n model: {\n value: _vm.selectedDb,\n callback: function($$v) {\n _vm.selectedDb = $$v\n },\n expression: \"selectedDb\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"null\" } }, [\n _vm._v(\"--Select Database--\")\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.dbList, function(db) {\n return _c(\"option\", { key: db, domProps: { value: db } }, [\n _vm._v(_vm._s(db))\n ])\n })\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\"table\", [\n _c(\"thead\"),\n _vm._v(\" \"),\n _c(\n \"tbody\",\n _vm._l(_vm.dbInfo.tables, function(table) {\n return _c(\"tr\", { key: table.name }, [\n _c(\n \"td\",\n [\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"b-toggle\",\n rawName: \"v-b-toggle\",\n value: table.name,\n expression: \"table.name\"\n }\n ],\n staticClass: \"table-name\",\n on: {\n contextmenu: function($event) {\n $event.preventDefault()\n _vm.$refs.ctxMenu.open($event, { table: table.name })\n }\n }\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(table.name) + \"\\n \"\n ),\n _c(\"i\", { staticClass: \"fas fa-plus\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-collapse\",\n { staticClass: \"ml-4\", attrs: { id: table.name } },\n _vm._l(table.columns, function(column) {\n return _c(\n \"div\",\n { key: column.name, staticClass: \"column-name\" },\n [\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"b-toggle\",\n rawName: \"v-b-toggle\",\n value: column.name,\n expression: \"column.name\"\n }\n ]\n },\n [\n _vm._v(\n _vm._s(column.name) + \"\\n \"\n ),\n _c(\"i\", { staticClass: \"fas fa-plus-square\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-collapse\",\n { staticClass: \"ml-4\", attrs: { id: column.name } },\n [\n _c(\"div\", [\n _vm._v(\"Primary Key :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.primaryKey))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Auto Increment :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.autoIncrement))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Not Null:\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.notNull))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Data Type :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.dataType))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Default :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.default))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Unique :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.unique))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Multi Entry :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.multiEntry))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Enable Search :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.enableSearch))\n ])\n ])\n ]\n )\n ],\n 1\n )\n })\n )\n ],\n 1\n )\n ])\n })\n ),\n _vm._v(\" \"),\n _c(\"tfoot\")\n ]),\n _vm._v(\" \"),\n _c(\n \"context-menu\",\n {\n ref: \"ctxMenu\",\n attrs: { id: \"context-menu\" },\n on: { \"ctx-open\": _vm.onCtxOpen, \"ctx-cancel\": _vm.onCtxOff }\n },\n [\n _c(\"li\", { staticClass: \"ctx-item\", on: { click: _vm.select100 } }, [\n _vm._v(\"Select 100 Record\")\n ]),\n _vm._v(\" \"),\n _c(\"li\", { staticClass: \"ctx-item\", on: { click: _vm.countTotal } }, [\n _vm._v(\"Count Total Record\")\n ]),\n _vm._v(\" \"),\n _c(\"li\", { staticClass: \"ctx-item\", on: { click: _vm.exportJson } }, [\n _vm._v(\"Export As Json\")\n ])\n ]\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('3063ac47', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { MainService } from \"../service/main_service\";\r\nimport { IFormSelect } from \"../interfaces/form_select\";\r\nimport { IDataBase } from \"jsstore\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport contextMenu from \"vue-context-menu\";\r\n\r\n@Component({\r\n props: {\r\n selectedDb: String\r\n },\r\n components: {\r\n contextMenu\r\n }\r\n})\r\nexport default class DbInfo extends Vue {\r\n dbInfo: IDataBase = {\r\n tables: []\r\n } as any;\r\n selectedDb!: string;\r\n dbList: string[] = [];\r\n menuData = {};\r\n\r\n constructor() {\r\n super();\r\n this.catchEvent();\r\n }\r\n\r\n mounted() {\r\n this.setDbInfo();\r\n }\r\n\r\n onCtxOpen(value) {\r\n this.menuData = value;\r\n }\r\n\r\n onCtxOff() {\r\n this.menuData = {};\r\n }\r\n\r\n setDbInfo() {\r\n var mainService = new MainService();\r\n mainService.openDb(this.selectedDb);\r\n mainService.getDbSchema(this.selectedDb).then(result => {\r\n this.dbInfo = result;\r\n });\r\n mainService.getDbList().then(list => {\r\n this.dbList = list;\r\n });\r\n vueEvent.$emit(\"db_info_loaded\");\r\n }\r\n\r\n catchEvent() {\r\n vueEvent.$on(\"get_current_db\", () => {\r\n vueEvent.$emit(\"take_current_db\", this.selectedDb);\r\n });\r\n }\r\n\r\n select100() {\r\n var table = (this.menuData as any).table;\r\n var qry = `select({\r\n from:'${table}',\r\n limit:100\\n})`;\r\n vueEvent.$emit(\"set_qry\", qry);\r\n vueEvent.$emit(\"run_qry\");\r\n }\r\n\r\n countTotal() {\r\n var table = (this.menuData as any).table;\r\n var qry = `count({\r\n from:'${table}'\\n})`;\r\n vueEvent.$emit(\"set_qry\", qry);\r\n vueEvent.$emit(\"run_qry\");\r\n }\r\n\r\n exportJson(){\r\n var table = (this.menuData as any).table;\r\n var qry = `exportJson({\r\n from:'${table}'\\n})`;\r\n vueEvent.$emit(\"set_qry\", qry);\r\n vueEvent.$emit(\"run_qry\");\r\n }\r\n}\r\n","import { BaseService } from \"./base_service\";\r\nimport { IResult } from \"../interfaces/result\";\r\nimport { Config } from \"jsstore\";\r\nexport class MainService extends BaseService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public executeQry(query: string): Promise<IResult> {\r\n if (Config.isLogEnabled === true) {\r\n console.log(\"qry from service - \" + query);\r\n }\r\n return new Promise((resolve, reject) => {\r\n var startTime = performance.now();\r\n this.evaluateQry_(query).then(qryResult => {\r\n const idbResult: IResult = {\r\n timeTaken: (performance.now() - startTime) / 1000,\r\n result: qryResult\r\n };\r\n resolve(idbResult);\r\n if (Config.isLogEnabled === true) {\r\n console.log(\"result from service evaluated\");\r\n }\r\n }).catch(err => {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n private evaluateQry_(query: string) {\r\n return eval(query);\r\n }\r\n}","\r\nimport { ServiceHelper } from './service_helper';\r\nimport { Config } from 'jsstore';\r\nexport class BaseService {\r\n\r\n constructor() {\r\n this.connection.setLogStatus(Config.isLogEnabled);\r\n }\r\n\r\n public openDb(dbName: string) {\r\n return this.connection.openDb(dbName);\r\n }\r\n\r\n public getDbSchema(dbName: string) {\r\n return this.connection.getDbSchema(dbName);\r\n }\r\n\r\n protected get connection() {\r\n return ServiceHelper.idbCon;\r\n }\r\n\r\n public getDbList() {\r\n return this.connection.getDbList();\r\n }\r\n\r\n public isDbExist(dbName: string) {\r\n return this.connection.isDbExist(dbName);\r\n }\r\n\r\n}","import * as JsStore from 'jsstore';\r\nimport * as workerPath from \"file-loader?name=scripts/[name].[hash].js!jsstore/dist/jsstore.worker.min.js\";\r\n\r\nexport class ServiceHelper {\r\n static idbCon = new JsStore.Instance(new Worker(workerPath));\r\n}","/*!\n * @license :jsstore - V2.1.2 - 09/06/2018\n * https://github.com/ujjwalguptaofficial/JsStore\n * Copyright (c) 2018 @Ujjwal Gupta; Licensed MIT\n */\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _instance__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Instance\", function() { return _instance__WEBPACK_IMPORTED_MODULE_0__[\"Instance\"]; });\n\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ERROR_TYPE\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"ERROR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WORKER_STATUS\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"WORKER_STATUS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DATA_TYPE\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"DATA_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"COL_OPTION\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"COL_OPTION\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"API\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"]; });\n\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Config\", function() { return _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"]; });\n\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"enableLog\", function() { return _helper__WEBPACK_IMPORTED_MODULE_3__[\"enableLog\"]; });\n\n/* harmony import */ var _model_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return _model_index__WEBPACK_IMPORTED_MODULE_4__[\"Column\"]; });\n\n\r\n\r\n\r\n\r\n\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Instance\", function() { return Instance; });\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _instance_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\nvar Instance = /** @class */ (function (_super) {\r\n __extends(Instance, _super);\r\n function Instance(worker) {\r\n return _super.call(this, worker) || this;\r\n }\r\n /**\r\n * open database\r\n *\r\n * @param {string} dbName\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.openDb = function (dbName) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].OpenDb,\r\n query: dbName\r\n });\r\n };\r\n /**\r\n * creates DataBase\r\n *\r\n * @param {IDataBase} dataBase\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.createDb = function (dataBase) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].CreateDb,\r\n query: dataBase\r\n });\r\n };\r\n /**\r\n * drop dataBase\r\n *\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.dropDb = function () {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].DropDb,\r\n query: null\r\n });\r\n };\r\n /**\r\n * select data from table\r\n *\r\n * @template T\r\n * @param {ISelect} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.select = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Select,\r\n query: query\r\n });\r\n };\r\n /**\r\n * get no of record from table\r\n *\r\n * @param {ICount} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.count = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Count,\r\n query: query\r\n });\r\n };\r\n /**\r\n * insert data into table\r\n *\r\n * @param {IInsert} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.insert = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Insert,\r\n query: query\r\n });\r\n };\r\n /**\r\n * update data into table\r\n *\r\n * @param {IUpdate} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.update = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Update,\r\n query: query\r\n });\r\n };\r\n /**\r\n * remove data from table\r\n *\r\n * @param {IRemove} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.remove = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Remove,\r\n query: query\r\n });\r\n };\r\n /**\r\n * delete all data from table\r\n *\r\n * @param {string} tableName\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.clear = function (tableName) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Clear,\r\n query: tableName\r\n });\r\n };\r\n /**\r\n * insert bulk amount of data\r\n *\r\n * @param {IInsert} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.bulkInsert = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].BulkInsert,\r\n query: query\r\n });\r\n };\r\n /**\r\n * export the result in json file\r\n *\r\n * @param {ISelect} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.exportJson = function (query) {\r\n var _this = this;\r\n var onSuccess = function (url) {\r\n var link = document.createElement(\"a\");\r\n link.href = url;\r\n link.download = query.from + \".json\";\r\n link.click();\r\n };\r\n return new Promise(function (resolve, reject) {\r\n _this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].ExportJson,\r\n query: query\r\n }).then(function (url) {\r\n onSuccess(url);\r\n resolve();\r\n }).catch(function (err) {\r\n reject(err);\r\n });\r\n });\r\n };\r\n /**\r\n * set log status\r\n *\r\n * @param {boolean} status\r\n * @memberof Instance\r\n */\r\n Instance.prototype.setLogStatus = function (status) {\r\n _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isLogEnabled = status ? status : _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isLogEnabled;\r\n this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].ChangeLogStatus,\r\n query: _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isLogEnabled\r\n });\r\n };\r\n /**\r\n * get version of database\r\n *\r\n * @param {(string | IDbInfo)} dbName\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.getDbVersion = function (dbName) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].GetDbVersion,\r\n query: dbName\r\n });\r\n };\r\n /**\r\n * is database exist\r\n *\r\n * @param {(IDbInfo | string)} dbInfo\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.isDbExist = function (dbInfo) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].IsDbExist,\r\n query: dbInfo\r\n });\r\n };\r\n /**\r\n * returns list of database created\r\n *\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.getDbList = function () {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].GetDbList,\r\n query: null\r\n });\r\n };\r\n /**\r\n * get Database Schema\r\n *\r\n * @param {string} dbName\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.getDbSchema = function (dbName) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].GetDbSchema,\r\n query: dbName\r\n });\r\n };\r\n /**\r\n * get the value from keystore table\r\n *\r\n * @param {string} key\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.get = function (key) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Get,\r\n query: key\r\n });\r\n };\r\n /**\r\n * set the value in keystore table\r\n *\r\n * @param {string} key\r\n * @param {*} value\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.set = function (key, value) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Set,\r\n query: {\r\n key: key, value: value\r\n }\r\n });\r\n };\r\n /**\r\n * terminate the connection\r\n *\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.terminate = function () {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Terminate,\r\n query: null\r\n });\r\n };\r\n return Instance;\r\n}(_instance_helper__WEBPACK_IMPORTED_MODULE_1__[\"InstanceHelper\"]));\r\n\r\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ERROR_TYPE\", function() { return ERROR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WORKER_STATUS\", function() { return WORKER_STATUS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DATA_TYPE\", function() { return DATA_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COL_OPTION\", function() { return COL_OPTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"API\", function() { return API; });\nvar ERROR_TYPE;\r\n(function (ERROR_TYPE) {\r\n ERROR_TYPE[\"WorkerNotSupplied\"] = \"worker_not_supplied\";\r\n ERROR_TYPE[\"IndexedDbUndefined\"] = \"indexeddb_undefined\";\r\n})(ERROR_TYPE || (ERROR_TYPE = {}));\r\nvar WORKER_STATUS;\r\n(function (WORKER_STATUS) {\r\n WORKER_STATUS[\"Registered\"] = \"registerd\";\r\n WORKER_STATUS[\"Failed\"] = \"failed\";\r\n WORKER_STATUS[\"NotStarted\"] = \"not_started\";\r\n})(WORKER_STATUS || (WORKER_STATUS = {}));\r\nvar DATA_TYPE;\r\n(function (DATA_TYPE) {\r\n DATA_TYPE[\"String\"] = \"string\";\r\n DATA_TYPE[\"Object\"] = \"object\";\r\n DATA_TYPE[\"Array\"] = \"array\";\r\n DATA_TYPE[\"Number\"] = \"number\";\r\n DATA_TYPE[\"Boolean\"] = \"boolean\";\r\n DATA_TYPE[\"Null\"] = \"null\";\r\n DATA_TYPE[\"DateTime\"] = \"date_time\";\r\n})(DATA_TYPE || (DATA_TYPE = {}));\r\nvar COL_OPTION;\r\n(function (COL_OPTION) {\r\n COL_OPTION[\"PrimaryKey\"] = \"primary_key\";\r\n COL_OPTION[\"AutoIncrement\"] = \"auto_increment\";\r\n COL_OPTION[\"Unique\"] = \"unique\";\r\n COL_OPTION[\"NotNull\"] = \"not_null\";\r\n COL_OPTION[\"MultiEntry\"] = \"multi_entry\";\r\n})(COL_OPTION || (COL_OPTION = {}));\r\nvar API;\r\n(function (API) {\r\n API[\"CreateDb\"] = \"create_db\";\r\n API[\"IsDbExist\"] = \"is_db_exist\";\r\n API[\"GetDbVersion\"] = \"get_db_version\";\r\n API[\"GetDbList\"] = \"get_db_list\";\r\n API[\"Get\"] = \"get\";\r\n API[\"Set\"] = \"set\";\r\n API[\"Select\"] = \"select\";\r\n API[\"Insert\"] = \"insert\";\r\n API[\"Update\"] = \"update\";\r\n API[\"Remove\"] = \"remove\";\r\n API[\"GetDbSchema\"] = \"get_db_schema\";\r\n API[\"OpenDb\"] = \"open_db\";\r\n API[\"Clear\"] = \"clear\";\r\n API[\"DropDb\"] = \"drop_db\";\r\n API[\"Count\"] = \"count\";\r\n API[\"BulkInsert\"] = \"bulk_insert\";\r\n API[\"ExportJson\"] = \"export_json\";\r\n API[\"ChangeLogStatus\"] = \"change_log_status\";\r\n API[\"Terminate\"] = \"terminate\";\r\n})(API || (API = {}));\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InstanceHelper\", function() { return InstanceHelper; });\n/* harmony import */ var _log_helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n\r\n\r\n\r\nvar InstanceHelper = /** @class */ (function () {\r\n function InstanceHelper(worker) {\r\n this.isDbOpened_ = false;\r\n this.requestQueue_ = [];\r\n this.isCodeExecuting_ = false;\r\n this.whiteListApi_ = [\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].CreateDb,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].IsDbExist,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].GetDbVersion,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].GetDbList,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].OpenDb,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].GetDbSchema,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].Get,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].Set,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].ChangeLogStatus,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].Terminate\r\n ];\r\n if (worker) {\r\n this.worker_ = worker;\r\n this.worker_.onmessage = this.onMessageFromWorker_.bind(this);\r\n }\r\n else {\r\n _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isRuningInWorker = false;\r\n this.queryExecutor_ = new JsStoreWorker.QueryExecutor(this.processFinishedQuery_.bind(this));\r\n }\r\n }\r\n InstanceHelper.prototype.onMessageFromWorker_ = function (msg) {\r\n this.processFinishedQuery_(msg.data);\r\n };\r\n InstanceHelper.prototype.processFinishedQuery_ = function (message) {\r\n var finishedRequest = this.requestQueue_.shift();\r\n if (finishedRequest) {\r\n _log_helper__WEBPACK_IMPORTED_MODULE_0__[\"LogHelper\"].log(\"request finished : \" + finishedRequest.name);\r\n if (message.errorOccured) {\r\n if (finishedRequest.onError) {\r\n finishedRequest.onError(message.errorDetails);\r\n }\r\n }\r\n else {\r\n if (finishedRequest.onSuccess) {\r\n var openDbQueries = [\"open_db\", \"create_db\"];\r\n if (openDbQueries.indexOf(finishedRequest.name) >= 0) {\r\n this.isDbOpened_ = true;\r\n }\r\n finishedRequest.onSuccess(message.returnedValue);\r\n }\r\n }\r\n this.isCodeExecuting_ = false;\r\n this.executeQry_();\r\n }\r\n };\r\n InstanceHelper.prototype.pushApi = function (request) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n request.onSuccess = function (result) {\r\n resolve(result);\r\n };\r\n request.onError = function (error) {\r\n reject(error);\r\n };\r\n _this.prcoessExecutionOfQry_(request);\r\n });\r\n };\r\n InstanceHelper.prototype.prcoessExecutionOfQry_ = function (request) {\r\n this.requestQueue_.push(request);\r\n this.executeQry_();\r\n _log_helper__WEBPACK_IMPORTED_MODULE_0__[\"LogHelper\"].log(\"request pushed: \" + request.name);\r\n };\r\n InstanceHelper.prototype.executeQry_ = function () {\r\n var _this = this;\r\n if (!this.isCodeExecuting_ && this.requestQueue_.length > 0) {\r\n if (this.isDbOpened_) {\r\n this.sendRequestToWorker_(this.requestQueue_[0]);\r\n return;\r\n }\r\n var allowedQueryIndex = this.requestQueue_.findIndex(function (item) { return _this.whiteListApi_.indexOf(item.name) >= 0; });\r\n // shift allowed query to zeroth index\r\n if (allowedQueryIndex >= 0) {\r\n this.requestQueue_.splice(0, 0, this.requestQueue_.splice(allowedQueryIndex, 1)[0]);\r\n this.sendRequestToWorker_(this.requestQueue_[0]);\r\n }\r\n }\r\n };\r\n InstanceHelper.prototype.sendRequestToWorker_ = function (request) {\r\n this.isCodeExecuting_ = true;\r\n _log_helper__WEBPACK_IMPORTED_MODULE_0__[\"LogHelper\"].log(\"request executing : \" + request.name);\r\n if (request.name === _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].Terminate) {\r\n if (_config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isRuningInWorker === true) {\r\n this.worker_.terminate();\r\n }\r\n this.isDbOpened_ = false;\r\n this.processFinishedQuery_({\r\n returnedValue: null\r\n });\r\n }\r\n else {\r\n var requestForWorker = {\r\n name: request.name,\r\n query: request.query\r\n };\r\n if (_config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isRuningInWorker === true) {\r\n this.worker_.postMessage(requestForWorker);\r\n }\r\n else {\r\n this.queryExecutor_.checkConnectionAndExecuteLogic(requestForWorker);\r\n }\r\n }\r\n };\r\n return InstanceHelper;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LogHelper\", function() { return LogHelper; });\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);\n\r\n\r\nvar LogHelper = /** @class */ (function () {\r\n function LogHelper(type, info) {\r\n if (info === void 0) { info = null; }\r\n this.type = type;\r\n this._info = info;\r\n this.message = this.getMsg();\r\n }\r\n LogHelper.prototype.throw = function () {\r\n throw this.get();\r\n };\r\n LogHelper.log = function (msg) {\r\n if (_config__WEBPACK_IMPORTED_MODULE_1__[\"Config\"].isLogEnabled) {\r\n console.log(msg);\r\n }\r\n };\r\n LogHelper.prototype.logError = function () {\r\n console.error(this.get());\r\n };\r\n LogHelper.prototype.logWarning = function () {\r\n console.warn(this.get());\r\n };\r\n LogHelper.prototype.get = function () {\r\n return {\r\n message: this.message,\r\n type: this.type\r\n };\r\n };\r\n LogHelper.prototype.getMsg = function () {\r\n var errMsg;\r\n switch (this.type) {\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"ERROR_TYPE\"].WorkerNotSupplied:\r\n errMsg = \"Worker object is not passed in instance constructor\";\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"ERROR_TYPE\"].IndexedDbUndefined:\r\n errMsg = \"Browser does not support indexeddb\";\r\n break;\r\n default:\r\n errMsg = this.message;\r\n break;\r\n }\r\n return errMsg;\r\n };\r\n return LogHelper;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Config\", function() { return Config; });\nvar Config = /** @class */ (function () {\r\n function Config() {\r\n }\r\n Config.isLogEnabled = false;\r\n Config.isRuningInWorker = true;\r\n return Config;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"enableLog\", function() { return enableLog; });\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n\r\n/**\r\n * Enable log\r\n *\r\n */\r\nvar enableLog = function () {\r\n _config__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].isLogEnabled = true;\r\n};\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return _column__WEBPACK_IMPORTED_MODULE_0__[\"Column\"]; });\n\n\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return Column; });\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\r\nvar Column = /** @class */ (function () {\r\n function Column(name) {\r\n this.name = name;\r\n }\r\n Column.prototype.options = function (columnOptions) {\r\n var _this = this;\r\n columnOptions.forEach(function (option) {\r\n switch (option) {\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].AutoIncrement:\r\n _this.autoIncrement = true;\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].MultiEntry:\r\n _this.multiEntry = true;\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].NotNull:\r\n _this.notNull = true;\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].PrimaryKey:\r\n _this.primaryKey = true;\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].Unique:\r\n _this.unique = true;\r\n break;\r\n }\r\n });\r\n return this;\r\n };\r\n Column.prototype.setDataType = function (type) {\r\n this.dataType = type;\r\n return this;\r\n };\r\n Column.prototype.setDefault = function (value) {\r\n this.default = value;\r\n return this;\r\n };\r\n Column.prototype.disableSearch = function () {\r\n this.enableSearch = false;\r\n return this;\r\n };\r\n return Column;\r\n}());\r\n\r\n\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=jsstore.commonjs2.js.map","module.exports = __webpack_public_path__ + \"scripts/jsstore.worker.min.86e3c8e8ff529b5eaee0edee0e771a2b.js\";","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueContextMenu=e():t.VueContextMenu=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\".\",e(e.s=10)}([function(t,e,n){n(7);var o=n(5)(n(2),n(6),null,null);t.exports=o.exports},function(t,e,n){\"use strict\";t.exports=function(t){function e(e){e.preventDefault(),\"function\"==typeof t&&t(e)}function n(t){27===t.keyCode&&e(t)}var o=!1;return{get isListening(){return o},start:function(t){window.addEventListener(\"click\",e,!0),window.addEventListener(\"keyup\",n,!0),o=!0,\"function\"==typeof t&&t()},stop:function(t){window.removeEventListener(\"click\",e,!0),window.removeEventListener(\"keyup\",n,!0),o=!1,\"function\"==typeof t&&t()}}}},function(t,e,n){\"use strict\";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(1),i=o(r);e.default={name:\"context-menu\",props:{id:{type:String,default:\"default-ctx\"}},data:function(){var t=this;return{locals:{},align:\"left\",ctxTop:0,ctxLeft:0,ctxVisible:!1,bodyClickListener:(0,i.default)(function(e){var n=!!t.ctxVisible,o=n&&!t.$el.contains(e.target);if(o){if(1!==e.which)return e.preventDefault(),e.stopPropagation(),!1;t.ctxVisible=!1,t.$emit(\"ctx-cancel\",t.locals),e.stopPropagation()}else t.ctxVisible=!1,t.$emit(\"ctx-close\",t.locals)})}},methods:{setPositionFromEvent:function(t){var e=this;t=t||window.event;var n=document.scrollingElement||document.documentElement;return t.pageX||t.pageY?(this.ctxLeft=t.pageX,this.ctxTop=t.pageY-n.scrollTop):(t.clientX||t.clientY)&&(this.ctxLeft=t.clientX+n.scrollLeft,this.ctxTop=t.clientY+n.scrollTop),this.$nextTick(function(){var t=e.$el,n=(t.style.minHeight||t.style.height).replace(\"px\",\"\")||32,o=(t.style.minWidth||t.style.width).replace(\"px\",\"\")||32,r=t.scrollHeight||n,i=t.scrollWidth||o,c=window.innerHeight-r-25,a=window.innerWidth-i-25;e.ctxTop>c&&(e.ctxTop=c),e.ctxLeft>a&&(e.ctxLeft=a)}),t},open:function(t,e){return this.ctxVisible&&(this.ctxVisible=!1),this.ctxVisible=!0,this.$emit(\"ctx-open\",this.locals=e||{}),this.setPositionFromEvent(t),this.$el.setAttribute(\"tab-index\",-1),this.bodyClickListener.start(),this}},watch:{ctxVisible:function(t,e){e===!0&&t===!1&&this.bodyClickListener.stop(function(t){})}},computed:{ctxStyle:function(){return{display:this.ctxVisible?\"block\":\"none\",top:(this.ctxTop||0)+\"px\",left:(this.ctxLeft||0)+\"px\"}}}}},function(t,e,n){e=t.exports=n(4)(void 0),e.push([t.i,'.ctx{position:relative}.ctx-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:.9rem;color:#373a3c;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc}.ctx-divider{height:1px;margin:.5rem 0;overflow:hidden;background-color:#e5e5e5}.ctx-item{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.5;color:#373a3c;text-align:inherit;white-space:nowrap;background:none;border:0;cursor:default}.ctx-item:focus,.ctx-item:hover{color:#2b2d2f;text-decoration:none;background-color:#f5f5f5;cursor:normal}.ctx-item.active,.ctx-item.active:focus,.ctx-item.active:hover{color:#fff;text-decoration:none;background-color:#0275d8;outline:0}.ctx-item.disabled,.ctx-item.disabled:focus,.ctx-item.disabled:hover{color:#818a91}.ctx-item.disabled:focus,.ctx-item.disabled:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"}.open>.ctx-menu{display:block}.open>a{outline:0}.ctx-menu-right{right:0;left:auto}.ctx-menu-left{right:auto;left:0}.ctx-header{display:block;padding:3px 20px;font-size:.9rem;line-height:1.5;color:#818a91;white-space:nowrap}.ctx-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.ctx-menu{right:0;left:auto}.ctx-menu-container{position:fixed;padding:0;border:1px solid #bbb;background-color:#f5f5f5;z-index:99999;box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15)}',\"\"])},function(t,e){function n(t,e){var n=t[1]||\"\",r=t[3];if(!r)return n;if(e&&\"function\"==typeof btoa){var i=o(r),c=r.sources.map(function(t){return\"/*# sourceURL=\"+r.sourceRoot+t+\" */\"});return[n].concat(c).concat([i]).join(\"\\n\")}return[n].join(\"\\n\")}function o(t){var e=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),n=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\"+e;return\"/*# \"+n+\" */\"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=n(e,t);return e[2]?\"@media \"+e[2]+\"{\"+o+\"}\":o}).join(\"\")},e.i=function(t,n){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var o={},r=0;r<this.length;r++){var i=this[r][0];\"number\"==typeof i&&(o[i]=!0)}for(r=0;r<t.length;r++){var c=t[r];\"number\"==typeof c[0]&&o[c[0]]||(n&&!c[2]?c[2]=n:n&&(c[2]=\"(\"+c[2]+\") and (\"+n+\")\"),e.push(c))}},e}},function(t,e){t.exports=function(t,e,n,o){var r,i=t=t||{},c=typeof t.default;\"object\"!==c&&\"function\"!==c||(r=t,i=t.default);var a=\"function\"==typeof i?i.options:i;if(e&&(a.render=e.render,a.staticRenderFns=e.staticRenderFns),n&&(a._scopeId=n),o){var s=a.computed||(a.computed={});Object.keys(o).forEach(function(t){var e=o[t];s[t]=function(){return e}})}return{esModule:r,exports:i,options:a}}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{ref:\"contextMenu\",staticClass:\"ctx-menu-container\",style:t.ctxStyle,attrs:{id:t.id},on:{click:function(t){t.stopPropagation()},contextmenu:function(t){t.stopPropagation()}}},[n(\"div\",{staticClass:\"ctx open\",staticStyle:{\"background-color\":\"transparent\"}},[n(\"ul\",{staticClass:\"ctx-menu\",class:{\"ctx-menu-right\":\"right\"===t.align,\"ctx-menu-left\":\"left\"===t.align},attrs:{role:\"menu\"}},[t._t(\"default\")],2)])])},staticRenderFns:[]}},function(t,e,n){var o=n(3);\"string\"==typeof o&&(o=[[t.i,o,\"\"]]),o.locals&&(t.exports=o.locals);n(8)(\"0df30a58\",o,!0)},function(t,e,n){function o(t){for(var e=0;e<t.length;e++){var n=t[e],o=l[n.id];if(o){o.refs++;for(var r=0;r<o.parts.length;r++)o.parts[r](n.parts[r]);for(;r<n.parts.length;r++)o.parts.push(c(n.parts[r]));o.parts.length>n.parts.length&&(o.parts.length=n.parts.length)}else{for(var i=[],r=0;r<n.parts.length;r++)i.push(c(n.parts[r]));l[n.id]={id:n.id,refs:1,parts:i}}}}function r(t,e){for(var n=[],o={},r=0;r<e.length;r++){var i=e[r],c=i[0],a=i[1],s=i[2],u=i[3],l={css:a,media:s,sourceMap:u};o[c]?(l.id=t+\":\"+o[c].parts.length,o[c].parts.push(l)):(l.id=t+\":0\",n.push(o[c]={id:c,parts:[l]}))}return n}function i(){var t=document.createElement(\"style\");return t.type=\"text/css\",d.appendChild(t),t}function c(t){var e,n,o=document.querySelector('style[data-vue-ssr-id~=\"'+t.id+'\"]'),r=null!=o;if(r&&x)return h;if(g){var c=p++;o=f||(f=i()),e=a.bind(null,o,c,!1),n=a.bind(null,o,c,!0)}else o=o||i(),e=s.bind(null,o),n=function(){o.parentNode.removeChild(o)};return r||e(t),function(o){if(o){if(o.css===t.css&&o.media===t.media&&o.sourceMap===t.sourceMap)return;e(t=o)}else n()}}function a(t,e,n,o){var r=n?\"\":o.css;if(t.styleSheet)t.styleSheet.cssText=m(e,r);else{var i=document.createTextNode(r),c=t.childNodes;c[e]&&t.removeChild(c[e]),c.length?t.insertBefore(i,c[e]):t.appendChild(i)}}function s(t,e){var n=e.css,o=e.media,r=e.sourceMap;if(o&&t.setAttribute(\"media\",o),r&&(n+=\"\\n/*# sourceURL=\"+r.sources[0]+\" */\",n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}var u=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!u)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var r=n(9),l={},d=u&&(document.head||document.getElementsByTagName(\"head\")[0]),f=null,p=0,x=!1,h=function(){},g=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());t.exports=function(t,e,n){x=n;var i=r(t,e);return o(i),function(e){for(var n=[],c=0;c<i.length;c++){var a=i[c],s=l[a.id];s.refs--,n.push(s)}e?(i=r(t,e),o(i)):i=[];for(var c=0;c<n.length;c++){var s=n[c];if(0===s.refs){for(var u=0;u<s.parts.length;u++)s.parts[u]();delete l[s.id]}}}};var m=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join(\"\\n\")}}()},function(t,e){t.exports=function(t,e){for(var n=[],o={},r=0;r<e.length;r++){var i=e[r],c=i[0],a=i[1],s=i[2],u=i[3],l={id:t+\":\"+r,css:a,media:s,sourceMap:u};o[c]?o[c].parts.push(l):n.push(o[c]={id:c,parts:[l]})}return n}},function(t,e,n){\"use strict\";var o=n(0);o.install=function(t){var e=t.component(\"context-menu\",o);return e},window.VueContextMenu=o,t.exports=t.exports.default=o}])});","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"40fc98a0\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#selectDb option[data-v-3063ac47] {\\n text-align: center;\\n}\\n.table-name[data-v-3063ac47] {\\n font-size: 20px;\\n font-family: ABeeZee;\\n padding-bottom: 5px;\\n display: inline-block;\\n cursor: pointer;\\n}\\n.column-name[data-v-3063ac47] {\\n font-size: 15px;\\n}\\n.column-schema[data-v-3063ac47] {\\n color: #372ae5;\\n}\\ntable[data-v-3063ac47] {\\n margin-left: 15px;\\n display: block;\\n width: 100%;\\n}\\n.db-list[data-v-3063ac47] {\\n margin-top: 10px;\\n margin-bottom: 20px;\\n}\\n\", \"\"]);\n\n// exports\n","import { render, staticRenderFns } from \"./query_executor.vue?vue&type=template&id=2e964aa2&scoped=true\"\nimport script from \"./query_executor.vue?vue&type=script&lang=ts\"\nexport * from \"./query_executor.vue?vue&type=script&lang=ts\"\nimport style0 from \"./query_executor.vue?vue&type=style&index=0&id=2e964aa2&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 \"2e964aa2\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('2e964aa2', component.options)\n } else {\n api.reload('2e964aa2', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\query_executor.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"divQueryExecutor\" } },\n [\n _c(\n \"div\",\n { attrs: { id: \"divButtonContainer\" } },\n [\n _c(\n \"b-button-group\",\n [\n _c(\n \"b-button\",\n {\n attrs: { variant: \"primary\" },\n on: { click: _vm.createNewTab }\n },\n [\n _vm._v(\"\\n New Query\\n \"),\n _c(\"i\", { staticClass: \"fas fa-plus-circle\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-button\",\n { attrs: { variant: \"primary\" }, on: { click: _vm.open } },\n [\n _vm._v(\"\\n Open\\n \"),\n _c(\"i\", { staticClass: \"fas fa-folder-open\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-button\",\n { attrs: { variant: \"primary\" }, on: { click: _vm.save } },\n [\n _vm._v(\"\\n Save\\n \"),\n _c(\"i\", { staticClass: \"fas fa-save\" })\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"hide\",\n attrs: { type: \"file\", id: \"inputFileOpener\", accept: \".js\" },\n on: { change: _vm.onFileOpened }\n }),\n _vm._v(\" \"),\n _c(\n \"b-button-group\",\n { staticClass: \"float-right\" },\n [\n _c(\n \"b-button\",\n {\n attrs: { variant: \"success\" },\n on: { click: _vm.executeQry }\n },\n [\n _vm._v(\"\\n Execute\\n \"),\n _c(\"i\", { staticClass: \"fas fa-play\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-button\",\n { attrs: { variant: \"success\" }, on: { click: _vm.getLink } },\n [\n _vm._v(\"\\n Get Link\\n \"),\n _c(\"i\", { staticClass: \"fas fa-link\" })\n ]\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"b-card\",\n { attrs: { \"no-body\": \"\", id: \"divEditorContainer\" } },\n [\n _c(\n \"b-tabs\",\n { attrs: { card: \"\" } },\n _vm._l(_vm.$data.tabCount, function(item) {\n return _c(\n \"b-tab\",\n {\n key: \"tab\" + item,\n attrs: { active: \"\", title: \"Query \" + item }\n },\n [_c(\"Editor\", { attrs: { id: \"editor\" + item } })],\n 1\n )\n })\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"QueryResult\"),\n _vm._v(\" \"),\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _vm.showResultInfo\n ? _c(\"div\", { attrs: { id: \"divResultInfo\" } }, [\n _c(\"table\", [\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"b\", [_vm._v(\"No of Record :\")]),\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(_vm.resultCount))]),\n _vm._v(\" \"),\n _c(\"b\", { staticClass: \"seperator\" }, [_vm._v(\"|\")]),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(\"Time Taken :\")]),\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(_vm.timeTaken) + \" sec.\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\"i\", {\n staticClass: \"fas fa-times\",\n on: {\n click: function($event) {\n _vm.showResultInfo = false\n }\n }\n })\n ])\n ])\n ])\n ])\n : _vm._e()\n ]),\n _vm._v(\" \"),\n _c(_vm.currentModalComponent, { tag: \"component\" })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('2e964aa2', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport Editor from \"./editor.vue\";\r\nimport QueryResult from \"./qry_result.vue\";\r\nimport { MainService } from \"../service/main_service\";\r\nimport { QueryHelper } from \"../helpers/query_helper\";\r\nimport { IResult } from \"../interfaces/result\";\r\nimport { DomHelper } from \"../helpers/dom_helper\";\r\nimport { Util } from \"../util\";\r\nimport { DATA_TYPE } from \"jsstore\";\r\nimport QueryLink from \"./query_link.vue\";\r\n\r\n@Component({\r\n components: {\r\n QueryLink,\r\n Editor,\r\n QueryResult\r\n }\r\n})\r\nexport default class QueryExecutor extends Vue {\r\n currentModalComponent = \"\";\r\n tabCount = 0;\r\n timeTaken = \"\";\r\n resultCount: number | string = \"\";\r\n showResultInfo = false;\r\n editorContainerHeight;\r\n resultContainerHeight;\r\n isResultVisible = false;\r\n isQueryExecuting = false;\r\n isSaveBtnClicked = false;\r\n\r\n constructor() {\r\n super();\r\n this.catchEvents();\r\n }\r\n\r\n mounted() {\r\n const $ = new DomHelper();\r\n const menuHeight = 50;\r\n const buttonHeight = ($.qry(\"#divButtonContainer\") as HTMLElement)\r\n .clientHeight;\r\n const margin = 10;\r\n const editorHeight =\r\n (window.innerHeight - (menuHeight + buttonHeight + margin)) / 2;\r\n this.editorContainerHeight = editorHeight + buttonHeight;\r\n this.resultContainerHeight = editorHeight - buttonHeight - 10;\r\n ($.qry(\"#divEditorContainer\") as HTMLElement).style.height =\r\n this.getEditorContainerHeight() + \"px\";\r\n ($.qry(\"#divResult\") as HTMLElement).style.height =\r\n this.resultContainerHeight + \"px\";\r\n }\r\n\r\n onFileOpened(event) {\r\n var input = event.target;\r\n var reader = new FileReader();\r\n reader.onload = function() {\r\n var text = reader.result;\r\n vueEvent.$emit(\"set_qry\", text);\r\n };\r\n reader.readAsText(input.files[0]);\r\n event.target.value = null;\r\n }\r\n\r\n open() {\r\n var $ = new DomHelper();\r\n $.getById(\"inputFileOpener\").click();\r\n }\r\n\r\n fireGetQry() {\r\n vueEvent.$emit(\"get_qry\");\r\n }\r\n\r\n getEditorContainerHeight() {\r\n return this.isResultVisible\r\n ? this.editorContainerHeight\r\n : this.editorContainerHeight + this.resultContainerHeight;\r\n }\r\n\r\n createNewTab() {\r\n ++this.tabCount;\r\n }\r\n\r\n save() {\r\n this.isQueryExecuting = false;\r\n this.isSaveBtnClicked = true;\r\n this.fireGetQry();\r\n }\r\n\r\n saveQuery(qry) {\r\n const stringValue = \"query_save_count\";\r\n var count = Number(localStorage.getItem(stringValue));\r\n ++count;\r\n localStorage.setItem(stringValue, count.toString());\r\n var fileName = prompt(\"FileName\", \"idbstudio_qry_\" + count);\r\n if (fileName != null) {\r\n const url = URL.createObjectURL(new Blob([qry], { type: \"text/plain\" }));\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.download = fileName + \".js\";\r\n link.click();\r\n }\r\n }\r\n\r\n executeQry() {\r\n this.isQueryExecuting = true;\r\n this.isResultVisible = true;\r\n this.fireGetQry();\r\n const $ = new DomHelper();\r\n ($.qry(\"#divEditorContainer\") as HTMLElement).style.height =\r\n this.getEditorContainerHeight() + \"px\";\r\n var resultContainer = $.qry(\"#divResult\") as HTMLElement;\r\n resultContainer.style.height = this.resultContainerHeight + \"px\";\r\n resultContainer.classList.remove(\"hide\");\r\n vueEvent.$emit(\"set_editor_height\", this.editorHeight);\r\n }\r\n\r\n evaluateAndShowResult(qry: string) {\r\n var queryHelperInstance = new QueryHelper(qry);\r\n if (queryHelperInstance.isQryValid()) {\r\n const query = queryHelperInstance.getQuery();\r\n if (queryHelperInstance.errMessage.length == 0) {\r\n new MainService()\r\n .executeQry(query)\r\n .then(qryResult => {\r\n this.showResultInfo = true;\r\n this.resultCount =\r\n Util.getType(qryResult.result) === DATA_TYPE.Array\r\n ? qryResult.result.length\r\n : 0;\r\n this.timeTaken = qryResult.timeTaken.toString();\r\n vueEvent.$emit(\"on_qry_result\", qryResult.result);\r\n })\r\n .catch(function(err) {\r\n vueEvent.$emit(\"on_qry_error\", err);\r\n });\r\n } else {\r\n vueEvent.$emit(\"on_error\", queryHelperInstance.errMessage);\r\n }\r\n } else {\r\n vueEvent.$emit(\"on_error\", queryHelperInstance.errMessage);\r\n }\r\n }\r\n\r\n takeQuery(qry: string) {\r\n if (this.isQueryExecuting) {\r\n this.evaluateAndShowResult(qry);\r\n } else if (this.isSaveBtnClicked) {\r\n this.saveQuery(qry);\r\n } else {\r\n this.showLinkModal(qry);\r\n }\r\n }\r\n\r\n get editorHeight() {\r\n return this.getEditorContainerHeight() - 90;\r\n }\r\n\r\n catchEvents() {\r\n vueEvent\r\n .$on(\"db_info_loaded\", this.createNewTab)\r\n .$on(\"take_qry\", this.takeQuery)\r\n .$on(\"get_editor_height\", () => {\r\n vueEvent.$emit(\"set_editor_height\", this.editorHeight);\r\n })\r\n .$on(\"run_qry\", this.executeQry);\r\n }\r\n\r\n showLinkModal(qry: string) {\r\n qry = encodeURIComponent(qry);\r\n setTimeout(() => {\r\n vueEvent.$emit(\"show_get_link_modal\", qry);\r\n }, 200);\r\n }\r\n\r\n getLink() {\r\n this.currentModalComponent = \"QueryLink\";\r\n this.isQueryExecuting = false;\r\n this.isSaveBtnClicked = false;\r\n this.fireGetQry();\r\n }\r\n}\r\n","import { render, staticRenderFns } from \"./editor.vue?vue&type=template&id=5fab3fb6\"\nimport script from \"./editor.vue?vue&type=script&lang=ts\"\nexport * from \"./editor.vue?vue&type=script&lang=ts\"\nimport style0 from \"./editor.vue?vue&type=style&index=0&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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('5fab3fb6', component.options)\n } else {\n api.reload('5fab3fb6', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\editor.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"idb-editor\", attrs: { id: _vm.id } })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('5fab3fb6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport { DomHelper } from \"../helpers/dom_helper\";\r\nimport { Util } from \"../util\";\r\n\r\ndeclare var ace;\r\n@Component({\r\n props: {\r\n id: String\r\n }\r\n})\r\nexport default class Editor extends Vue {\r\n editor;\r\n id!: string;\r\n constructor() {\r\n super();\r\n this.catchEvent();\r\n }\r\n\r\n createEditor() {\r\n this.editor = ace.edit(this.id);\r\n this.editor.setTheme(\"ace/theme/eclipse\");\r\n this.editor.session.setMode(\"ace/mode/javascript\");\r\n }\r\n\r\n mounted() {\r\n this.createEditor();\r\n vueEvent.$emit('get_editor_height');\r\n if (this.id === \"editor1\") {\r\n const query = Util.getParameterByName(\"query\");\r\n if (query != null && query.length > 0) {\r\n this.setQry(query);\r\n }\r\n }\r\n }\r\n\r\n getQry() {\r\n var $ = new DomHelper();\r\n var el = $.getById(this.id);\r\n if (!$.isHidden($.parent(el))) {\r\n vueEvent.$emit(\"take_qry\", this.editor.getValue());\r\n }\r\n }\r\n\r\n setQry(qry){\r\n const $ = new DomHelper();\r\n const el = $.getById(this.id);\r\n // debugger;\r\n if (!$.isHidden($.parent(el))) {\r\n this.editor.setValue(qry);\r\n }\r\n }\r\n\r\n setHeight(height){\r\n var $ = new DomHelper();\r\n $.getById(this.id).style.height = height+'px';\r\n }\r\n\r\n catchEvent() {\r\n vueEvent.$on(\"get_qry\", this.getQry);\r\n vueEvent.$on('set_editor_height',this.setHeight);\r\n vueEvent.$on('set_qry',this.setQry);\r\n }\r\n}\r\n","export class DomHelper {\r\n getById(id: string): HTMLElement {\r\n return document.getElementById(id) as HTMLElement;\r\n }\r\n\r\n parent(el: HTMLElement): HTMLElement {\r\n return el.parentElement as HTMLElement;\r\n }\r\n\r\n isHidden(el: HTMLElement) {\r\n return el.offsetParent === null;\r\n }\r\n\r\n qry(query: string) {\r\n return document.querySelector(query);\r\n }\r\n\r\n removePx(value: string) {\r\n parseInt(value, 10);\r\n }\r\n\r\n copyToClipboard(value: string) {\r\n const el = document.createElement('textarea');\r\n el.value = value;\r\n el.setAttribute('readonly', '');\r\n el.style.position = 'absolute';\r\n el.style.left = '-9999px';\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n }\r\n}","import { DATA_TYPE } from \"jsstore\";\r\n\r\nexport class Util {\r\n static getType(value) {\r\n if (value === null) {\r\n return DATA_TYPE.Null;\r\n }\r\n var type = typeof value;\r\n switch (type) {\r\n case 'object':\r\n if (Array.isArray(value)) {\r\n return DATA_TYPE.Array;\r\n }\r\n default:\r\n return type;\r\n }\r\n }\r\n\r\n static getParameterByName(name: string, url?: string) {\r\n if (!url) { url = window.location.href; }\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) { return null; }\r\n if (!results[2]) { return ''; }\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n static isNull(value: null | string) {\r\n return value == null || value.length == 0;\r\n }\r\n}","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"9c127918\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.idb-editor {\\n width: 100%;\\n min-height: 200px;\\n}\\n\", \"\"]);\n\n// exports\n","import { render, staticRenderFns } from \"./qry_result.vue?vue&type=template&id=24b17a08\"\nimport script from \"./qry_result.vue?vue&type=script&lang=ts\"\nexport * from \"./qry_result.vue?vue&type=script&lang=ts\"\nimport style0 from \"./qry_result.vue?vue&type=style&index=0&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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('24b17a08', component.options)\n } else {\n api.reload('24b17a08', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\qry_result.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"hide\", attrs: { id: \"divResult\" } }, [\n _c(\"table\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.errorMessage.length == 0,\n expression: \"errorMessage.length==0\"\n }\n ],\n staticClass: \"table\",\n domProps: { innerHTML: _vm._s(_vm.resultInnerHtml) }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.errorMessage.length > 0,\n expression: \"errorMessage.length>0\"\n }\n ],\n staticStyle: { color: \"red\" }\n },\n [_vm._v(_vm._s(_vm.errorMessage))]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('24b17a08', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport { Util } from \"../util\";\r\nimport { DATA_TYPE } from \"jsstore\";\r\n\r\n@Component\r\nexport default class QueryResult extends Vue {\r\n resultInnerHtml = \"\";\r\n errorMessage = \"\";\r\n constructor() {\r\n super();\r\n this.catchEvents();\r\n }\r\n\r\n printResult(result) {\r\n this.errorMessage = \"\";\r\n var resultType = Util.getType(result);\r\n switch (resultType) {\r\n case DATA_TYPE.Array:\r\n var rowsLength = result.length,\r\n htmlString = \"<tr>\",\r\n props: string[] = [];\r\n for (var prop in result[0]) {\r\n props.push(prop);\r\n htmlString += \"<th>\" + prop + \"</th>\";\r\n }\r\n htmlString += \"</tr>\";\r\n var Width = 100 / props.length;\r\n for (var i = 0; i < rowsLength; i++) {\r\n var tempHtml = \"<tr>\";\r\n for (var j = 0; j < props.length; j++) {\r\n if (result[0] && result[0][0]) {\r\n tempHtml += \"<td>\" + result[i][props[j]] + \"</td>\";\r\n } else {\r\n tempHtml +=\r\n \"<td style=width:\" +\r\n Width +\r\n \"%>\" +\r\n JSON.stringify(result[i][props[j]]) +\r\n \"</td>\";\r\n }\r\n }\r\n tempHtml += \"</tr>\";\r\n htmlString += tempHtml;\r\n }\r\n\r\n this.resultInnerHtml = htmlString;\r\n break;\r\n case DATA_TYPE.Object:\r\n result = JSON.stringify(result);\r\n case DATA_TYPE.String:\r\n case DATA_TYPE.Number:\r\n this.resultInnerHtml = result;\r\n break;\r\n default:\r\n this.resultInnerHtml = JSON.stringify(result);\r\n }\r\n }\r\n\r\n printError(error) {\r\n this.errorMessage = JSON.stringify(error);\r\n }\r\n\r\n catchEvents() {\r\n vueEvent.$on(\"on_qry_result\", this.printResult);\r\n vueEvent.$on(\"on_qry_error\", this.printError);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d1766f58\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#divResult {\\n overflow-y: scroll;\\n overflow-x: hidden;\\n min-height: 200px;\\n width: 99%;\\n left: 5px;\\n position: relative;\\n right: 5px;\\n background-color: white;\\n}\\n#divResult .table tr td,\\n #divResult .table tr th {\\n border: 1px inset;\\n text-align: center;\\n}\\n\", \"\"]);\n\n// exports\n","import { API } from \"../enum\";\r\n\r\nexport class QueryHelper {\r\n query: string;\r\n errMessage: string = \"\";\r\n constructor(query) {\r\n this.query = query;\r\n }\r\n\r\n getQuery() {\r\n var qry;\r\n var isAnyApiFound = false;\r\n this.allowedApi.forEach((api) => {\r\n // every api call will have a open paranthesis after\r\n const index = this.query.indexOf(api + \"(\");\r\n if (index >= 0) {\r\n isAnyApiFound = true;\r\n this.query = `${this.query.substring(0, index)}this.connection.\r\n ${this.query.substring(index, this.query.length)}`;\r\n }\r\n });\r\n if (!isAnyApiFound) {\r\n this.errMessage = \"No valid api was found\";\r\n }\r\n return this.query;\r\n }\r\n\r\n get allowedApi() {\r\n return [\r\n API.Select,\r\n API.Insert,\r\n API.Remove,\r\n API.Update,\r\n API.IsDbExist,\r\n API.Clear,\r\n API.Count,\r\n API.DropDb,\r\n API.BulkInsert,\r\n API.ExportJson\r\n ];\r\n }\r\n\r\n isQryValid() {\r\n const notAllowedKeywords = [\"Instance\", \"then\", \"catch\"];\r\n notAllowedKeywords.every((item) => {\r\n if (this.query.indexOf(item) >= 0) {\r\n this.errMessage = `keyword: '${item}' is not allowed, only write code for api call`;\r\n return false;\r\n }\r\n return true;\r\n });\r\n return !this.errMessage.length;\r\n }\r\n} ","export enum API {\r\n CreateDb = \"createDb\",\r\n IsDbExist = \"isDbExist\",\r\n GetDbVersion = \"getDbVersion\",\r\n GetDbList = \"getDbList\",\r\n Get = \"get\",\r\n Set = \"set\",\r\n Select = \"select\",\r\n Insert = \"insert\",\r\n Update = \"update\",\r\n Remove = \"remove\",\r\n GetDbSchema = \"getDbSchema\",\r\n OpenDb = \"openDb\",\r\n Clear = \"clear\",\r\n DropDb = \"dropDb\",\r\n Count = \"count\",\r\n BulkInsert = \"bulkInsert\",\r\n ExportJson = \"exportJson\",\r\n ChangeLogStatus = \"changeLogStatus\",\r\n}","import { render, staticRenderFns } from \"./query_link.vue?vue&type=template&id=11a809c9\"\nimport script from \"./query_link.vue?vue&type=script&lang=ts\"\nexport * from \"./query_link.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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('11a809c9', component.options)\n } else {\n api.reload('11a809c9', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\query_link.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"b-modal\",\n {\n ref: \"modalGetLink\",\n attrs: {\n \"no-enforce-focus\": \"\",\n id: \"divLinkModal\",\n title: \"IDBStudio\"\n },\n on: { shown: _vm.shown }\n },\n [\n _c(\n \"p\",\n { staticClass: \"my-4\", attrs: { id: \"linkContent\" } },\n [\n _c(\"b-form-input\", {\n attrs: { type: \"text\", id: \"txtLink\" },\n model: {\n value: _vm.link,\n callback: function($$v) {\n _vm.link = $$v\n },\n expression: \"link\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"w-100\",\n attrs: { slot: \"modal-footer\" },\n slot: \"modal-footer\"\n },\n [\n _c(\n \"b-btn\",\n {\n staticClass: \"btn-copy float-right\",\n attrs: { size: \"md\", variant: \"primary\" },\n on: { click: _vm.copy }\n },\n [_vm._v(\"\\n Copy\\n \")]\n )\n ],\n 1\n )\n ]\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('11a809c9', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_link.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_link.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport { DomHelper } from \"../helpers/dom_helper\";\r\ndeclare var ClipboardJS;\r\n\r\n@Component\r\nexport default class QueryLink extends Vue {\r\n link = \"\";\r\n constructor() {\r\n super();\r\n this.catchEvents();\r\n }\r\n\r\n showModal(qry: string) {\r\n this.link = qry;\r\n vueEvent.$emit(\"get_current_db\");\r\n }\r\n\r\n onGetDb(dbName: string) {\r\n (this.$refs.modalGetLink as any).show();\r\n this.link = `${location.origin}${location.pathname}?db=${dbName}&query=${\r\n this.link\r\n }`;\r\n }\r\n\r\n copy() {\r\n var $ = new DomHelper();\r\n ($.qry(\"#txtLink\")! as HTMLInputElement).select();\r\n document.execCommand(\"copy\");\r\n (this.$refs.modalGetLink as any).hide();\r\n }\r\n\r\n onCopyError() {\r\n vueEvent.$emit(\"on_error\", \"Failed to copy Link\");\r\n }\r\n\r\n catchEvents() {\r\n vueEvent.$on(\"show_get_link_modal\", this.showModal);\r\n vueEvent.$on(\"take_current_db\", this.onGetDb);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"bb32689a\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#divQueryExecutor[data-v-2e964aa2] {\\n margin-top: 10px;\\n background-color: #f1f1f1;\\n box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 3px, rgba(0, 0, 0, 0.24) 0px 1px 2px;\\n}\\n#divResultInfo[data-v-2e964aa2] {\\n height: 50px;\\n position: absolute;\\n bottom: 0px;\\n background: inherit;\\n z-index: 100;\\n width: 97%;\\n}\\ntable[data-v-2e964aa2] {\\n height: inherit;\\n width: 100%;\\n}\\ntable tr td[data-v-2e964aa2] {\\n padding-left: 20px;\\n}\\ntable tr td[data-v-2e964aa2]:last-child {\\n text-align: right;\\n padding-right: 20px;\\n padding-left: 50px;\\n}\\n.fade-enter-active[data-v-2e964aa2],\\n.fade-leave-active[data-v-2e964aa2] {\\n transition: opacity 0.5s;\\n bottom: 0px;\\n}\\n.fade-enter[data-v-2e964aa2],\\n.fade-leave-to[data-v-2e964aa2] {\\n opacity: 0;\\n bottom: -100px;\\n}\\n\", \"\"]);\n\n// exports\n","import { render, staticRenderFns } from \"./start.vue?vue&type=template&id=76eed14c\"\nimport script from \"./start.vue?vue&type=script&lang=ts\"\nexport * from \"./start.vue?vue&type=script&lang=ts\"\nimport style0 from \"./start.vue?vue&type=style&index=0&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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('76eed14c', component.options)\n } else {\n api.reload('76eed14c', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\start.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"start-page\" }, [\n _c(\"h1\", { staticClass: \"title\" }, [_vm._v(\"IDBStudio\")]),\n _vm._v(\" \"),\n _vm.dbList.length == 0\n ? _c(\"div\", { staticClass: \"cssload-preloader\" }, [_vm._m(0)])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.dbList.length > 0\n ? _c(\"form\", { staticClass: \"margin-top-100px\" }, [\n _c(\"div\", { staticClass: \"form-group row\" }, [\n _c(\n \"div\",\n { staticStyle: { margin: \"0 auto\", display: \"inherit\" } },\n [\n _c(\"div\", { staticClass: \"mb-2\" }, [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.selectedDb,\n expression: \"selectedDb\"\n }\n ],\n staticClass: \"form-control\",\n attrs: { id: \"selectDb\" },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call($event.target.options, function(o) {\n return o.selected\n })\n .map(function(o) {\n var val = \"_value\" in o ? o._value : o.value\n return val\n })\n _vm.selectedDb = $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n }\n }\n },\n [\n _c(\"option\", { attrs: { value: \"null\" } }, [\n _vm._v(\"--Select Database--\")\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.dbList, function(db) {\n return _c(\n \"option\",\n { key: db, domProps: { value: db } },\n [_vm._v(_vm._s(db))]\n )\n })\n ],\n 2\n )\n ]),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary mb-2\",\n staticStyle: { \"margin-left\": \"50px\", padding: \"0 30px\" },\n attrs: { type: \"button\" },\n on: { click: _vm.connectDb }\n },\n [_vm._v(\"Connect\")]\n )\n ]\n )\n ])\n ])\n : _vm._e()\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"cssload-preloader-box\" }, [\n _c(\"div\", [_vm._v(\"L\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"o\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"a\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"d\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"i\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"n\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"g\")])\n ])\n }\n]\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('76eed14c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { DemoService } from \"../service/demo_service\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport { Util } from \"../util\";\r\n\r\n@Component\r\nexport default class Start extends Vue {\r\n selectedDb = \"null\";\r\n dbList: string[] = [];\r\n\r\n mounted() {\r\n var demoServiceInstance = new DemoService();\r\n demoServiceInstance.isDemoDbExist().then(isExist => {\r\n if (isExist) {\r\n setTimeout(() => {\r\n this.getDbList();\r\n }, 1000);\r\n } else {\r\n demoServiceInstance.createDemoDataBase().then(() => {\r\n this.getDbList();\r\n });\r\n }\r\n });\r\n }\r\n\r\n setDbNameFromQryString(dbList: string[]) {\r\n var dbName = Util.getParameterByName(\"db\");\r\n if (!Util.isNull(dbName)) {\r\n const index = dbList.findIndex(qry => qry === dbName);\r\n // console.log(index);\r\n if (index >= 0) {\r\n // console.log(dbName);\r\n this.selectedDb = dbName as string;\r\n this.connectDb();\r\n }\r\n }\r\n }\r\n\r\n getDbList() {\r\n var demoServiceInstance = new DemoService();\r\n demoServiceInstance.getDbList().then(list => {\r\n this.setDbNameFromQryString(list);\r\n this.dbList = list;\r\n });\r\n }\r\n\r\n connectDb() {\r\n if (this.selectedDb != \"null\") {\r\n vueEvent.$emit(\"page_loaded\", this.selectedDb);\r\n } else {\r\n vueEvent.$emit(\"on_error\", \"Please select a valid database\");\r\n }\r\n }\r\n}\r\n","import { BaseService } from './base_service';\r\nimport { ITable, Column, COL_OPTION, DATA_TYPE, IDataBase } from 'jsstore';\r\nimport Axios from \"axios\";\r\n\r\nexport class DemoService extends BaseService {\r\n dbName = \"Demo\";\r\n constructor() {\r\n super();\r\n }\r\n\r\n isDemoDbExist() {\r\n return this.isDbExist(this.dbName);\r\n }\r\n\r\n createDemoDataBase() {\r\n return new Promise((resolve, reject) => {\r\n this.connection.createDb(this.getDbStructure()).then(() => {\r\n this.insertDemoDbData(resolve);\r\n }).catch((err) => {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n insertDemoDbData(callBack) {\r\n const filesList = [\"Customers\", \"Categories\", \"Employees\", \"OrderDetails\",\r\n \"Orders\", \"Products\", \"Shippers\", \"Suppliers\"];\r\n var filesProcessed = 0;\r\n var onFileProcessed = function () {\r\n filesProcessed++;\r\n console.log('inserted file:' + filesList[filesProcessed - 1]);\r\n if (filesProcessed === filesList.length) {\r\n callBack();\r\n }\r\n };\r\n filesList.forEach((file) => {\r\n const url = `assets/demo_database/${file}.json?v=1`;\r\n Axios.get(url).then((response) => {\r\n switch (file) {\r\n case filesList[4]:\r\n response.data.forEach(function (value) {\r\n value.orderDate = new Date();\r\n });\r\n this.insert(file, response.data).then(onFileProcessed);\r\n break;\r\n case filesList[2]:\r\n response.data.forEach(function (value) {\r\n value.birthDate = new Date();\r\n });\r\n this.insert(file, response.data).then(onFileProcessed);\r\n break;\r\n case filesList[3]:\r\n this.bulkInsert(file, response.data).then(onFileProcessed);\r\n break;\r\n default:\r\n this.insert(file, response.data).then(onFileProcessed);\r\n }\r\n\r\n });\r\n });\r\n }\r\n\r\n insert(table: string, datas: any[]) {\r\n return this.connection.insert({\r\n into: table,\r\n values: datas\r\n });\r\n }\r\n\r\n bulkInsert(table: string, datas: any[]) {\r\n return this.connection.bulkInsert({\r\n into: table,\r\n values: datas\r\n });\r\n }\r\n\r\n getDbStructure() {\r\n const customers: ITable = {\r\n name: 'Customers',\r\n columns: [\r\n new Column('customerId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('customerName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('contactName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('address').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('city').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('postalCode').setDataType(DATA_TYPE.String),\r\n new Column('country').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String)\r\n ]\r\n };\r\n\r\n const categories: ITable = {\r\n name: 'Categories',\r\n columns: [\r\n new Column('categoryId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('categoryName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('description').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n ]\r\n };\r\n\r\n const employees: ITable = {\r\n name: 'Employees',\r\n columns: [\r\n new Column('employeeId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('lastName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('birthDate').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.DateTime),\r\n new Column('photo').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('notes').setDataType(DATA_TYPE.String),\r\n new Column('state').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('jobSuspendedFlag').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number)\r\n ]\r\n };\r\n\r\n var orderDetails: ITable = {\r\n name: 'OrderDetails',\r\n columns: [\r\n new Column('orderDetailId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('orderId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('productId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('quantity').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number)\r\n ]\r\n };\r\n\r\n var orders: ITable = {\r\n name: 'Orders',\r\n columns: [\r\n new Column('orderId').options([COL_OPTION.PrimaryKey]),\r\n new Column('customerId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('employeeId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('orderDate').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.DateTime),\r\n new Column('shipperId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number)\r\n ]\r\n };\r\n\r\n var products: ITable = {\r\n name: 'Products',\r\n columns: [\r\n new Column('productId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('productName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('supplierId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('categoryId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('unit').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('price').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number)\r\n ]\r\n };\r\n\r\n var shippers: ITable = {\r\n name: 'Shippers',\r\n columns: [\r\n new Column('shipperId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('shipperName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('phone').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n ]\r\n };\r\n\r\n var suppliers: ITable = {\r\n name: 'Suppliers',\r\n columns: [\r\n new Column('supplierId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('supplierName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('contactName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('address').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('city').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('postalCode').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('country').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('phone').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String)\r\n ]\r\n };\r\n\r\n var dataBase: IDataBase = {\r\n name: this.dbName,\r\n tables: [\r\n customers,\r\n categories,\r\n employees,\r\n orderDetails,\r\n orders,\r\n products,\r\n shippers,\r\n suppliers\r\n ]\r\n };\r\n return dataBase;\r\n }\r\n}","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a7ab2214\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.start-page {\\n background-color: #2c3e50;\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n z-index: 1000;\\n overflow: hidden;\\n}\\n.start-page .title {\\n font-family: Allerta;\\n color: white;\\n text-align: center;\\n margin-top: 150px;\\n}\\n.start-page .cssload-preloader {\\n position: absolute;\\n top: 0px;\\n left: 0px;\\n right: 0px;\\n bottom: 0px;\\n z-index: 10;\\n}\\n.start-page .cssload-preloader > .cssload-preloader-box {\\n position: absolute;\\n height: 29px;\\n top: 50%;\\n left: 50%;\\n margin: -15px 0 0 -146px;\\n perspective: 195px;\\n -o-perspective: 195px;\\n -ms-perspective: 195px;\\n -webkit-perspective: 195px;\\n -moz-perspective: 195px;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div {\\n position: relative;\\n width: 29px;\\n height: 29px;\\n background: #cccccc;\\n float: left;\\n text-align: center;\\n line-height: 29px;\\n font-family: Verdana;\\n font-size: 19px;\\n color: white;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(1) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 0ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 0ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 0ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 0ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 0ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(2) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(3) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(4) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(5) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 345ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 345ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 345ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 345ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 345ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(6) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(7) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n}\\n@keyframes cssload-movement {\\nfrom {\\n transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\nto {\\n transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n@-o-keyframes cssload-movement {\\nfrom {\\n -o-transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\nto {\\n -o-transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n@-ms-keyframes cssload-movement {\\n.start-page from {\\n -ms-transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\n.start-page to {\\n -ms-transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n@-webkit-keyframes cssload-movement {\\nfrom {\\n -webkit-transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\nto {\\n -webkit-transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n@-moz-keyframes cssload-movement {\\nfrom {\\n -moz-transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\nto {\\n -moz-transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!./common.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1f6c79db\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!./common.css\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!./common.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","var escape = require(\"../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".align-text-right {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.seperator {\\r\\n padding: 0px 10px;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: Allerta;\\r\\n src: url(\" + escape(require(\"../fonts/Allerta-Regular.ttf\")) + \") format(\\\"truetype\\\");\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: ABeeZee;\\r\\n src: url(\" + escape(require(\"../fonts/ABeeZee-Regular.ttf\")) + \") format(\\\"truetype\\\");\\r\\n}\\r\\n\\r\\n.margin-top-100px {\\r\\n margin-top: 100px;\\r\\n}\\r\\n\\r\\n.hide {\\r\\n display: none;\\r\\n}\", \"\"]);\n\n// exports\n","module.exports = function escape(url) {\n if (typeof url !== 'string') {\n return url\n }\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url)) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n }\n\n return url\n}\n","module.exports = __webpack_public_path__ + \"fonts/Allerta-Regulard3224ae1d32ecfc2bdf33ace4b10badc.ttf\";","module.exports = __webpack_public_path__ + \"fonts/ABeeZee-Regularbe26f3332f3b4d552c823c5c045a46bb.ttf\";","import * as components from './components';\nimport * as directives from './directives';\nimport { vueUse } from './utils/plugins';\n\nvar VuePlugin = {\n install: function install(Vue) {\n if (Vue._bootstrap_vue_installed) {\n return;\n }\n\n Vue._bootstrap_vue_installed = true;\n\n // Register component plugins\n for (var plugin in components) {\n Vue.use(components[plugin]);\n }\n\n // Register directive plugins\n for (var _plugin in directives) {\n Vue.use(directives[_plugin]);\n }\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import Alert from './alert';\nimport Badge from './badge';\nimport Breadcrumb from './breadcrumb';\nimport Button from './button';\nimport ButtonGroup from './button-group';\nimport ButtonToolbar from './button-toolbar';\nimport InputGroup from './input-group';\nimport Card from './card';\nimport Carousel from './carousel';\nimport Layout from './layout';\nimport Collapse from './collapse';\nimport Dropdown from './dropdown';\nimport Embed from './embed';\nimport Form from './form';\nimport FormGroup from './form-group';\nimport FormCheckbox from './form-checkbox';\nimport FormRadio from './form-radio';\nimport FormInput from './form-input';\nimport FormTextarea from './form-textarea';\nimport FormFile from './form-file';\nimport FormSelect from './form-select';\nimport Image from './image';\nimport Jumbotron from './jumbotron';\nimport Link from './link';\nimport ListGroup from './list-group';\nimport Media from './media';\nimport Modal from './modal';\nimport Nav from './nav';\nimport Navbar from './navbar';\nimport Pagination from './pagination';\nimport PaginationNav from './pagination-nav';\nimport Popover from './popover';\nimport Progress from './progress';\nimport Table from './table';\nimport Tabs from './tabs';\nimport Tooltip from './tooltip';\n\nexport { Alert, Badge, Breadcrumb, Button, ButtonToolbar, ButtonGroup, Card, Carousel, Collapse, Dropdown, Embed, Form, FormGroup, FormInput, FormTextarea, FormFile, FormCheckbox, FormRadio, FormSelect, Image, InputGroup, Jumbotron, Layout, Link, ListGroup, Media, Modal, Nav, Navbar, Pagination, PaginationNav, Popover, Progress, Table, Tabs, Tooltip };","import bAlert from './alert';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bAlert: bAlert\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import bButtonClose from '../button/button-close';\n\nexport default {\n components: { bButtonClose: bButtonClose },\n render: function render(h) {\n if (!this.localShow) {\n // If not showing, render placeholder\n return h(false);\n }\n var dismissBtn = h(false);\n if (this.dismissible) {\n // Add dismiss button\n dismissBtn = h('b-button-close', { attrs: { 'aria-label': this.dismissLabel }, on: { click: this.dismiss } }, [this.$slots.dismiss]);\n }\n return h('div', { class: this.classObject, attrs: { role: 'alert', 'aria-live': 'polite', 'aria-atomic': true } }, [dismissBtn, this.$slots.default]);\n },\n\n model: {\n prop: 'show',\n event: 'input'\n },\n data: function data() {\n return {\n countDownTimerId: null,\n dismissed: false\n };\n },\n\n computed: {\n classObject: function classObject() {\n return ['alert', this.alertVariant, this.dismissible ? 'alert-dismissible' : ''];\n },\n alertVariant: function alertVariant() {\n var variant = this.variant;\n return 'alert-' + variant;\n },\n localShow: function localShow() {\n return !this.dismissed && (this.countDownTimerId || this.show);\n }\n },\n props: {\n variant: {\n type: String,\n default: 'info'\n },\n dismissible: {\n type: Boolean,\n default: false\n },\n dismissLabel: {\n type: String,\n default: 'Close'\n },\n show: {\n type: [Boolean, Number],\n default: false\n }\n },\n watch: {\n show: function show() {\n this.showChanged();\n }\n },\n mounted: function mounted() {\n this.showChanged();\n },\n destroyed /* istanbul ignore next */: function destroyed() {\n this.clearCounter();\n },\n\n methods: {\n dismiss: function dismiss() {\n this.clearCounter();\n this.dismissed = true;\n this.$emit('dismissed');\n this.$emit('input', false);\n if (typeof this.show === 'number') {\n this.$emit('dismiss-count-down', 0);\n this.$emit('input', 0);\n } else {\n this.$emit('input', false);\n }\n },\n clearCounter: function clearCounter() {\n if (this.countDownTimerId) {\n clearInterval(this.countDownTimerId);\n this.countDownTimerId = null;\n }\n },\n showChanged: function showChanged() {\n var _this = this;\n\n // Reset counter status\n this.clearCounter();\n // Reset dismiss status\n this.dismissed = false;\n // No timer for boolean values\n if (this.show === true || this.show === false || this.show === null || this.show === 0) {\n return;\n }\n // Start counter\n var dismissCountDown = this.show;\n this.countDownTimerId = setInterval(function () {\n if (dismissCountDown < 1) {\n _this.dismiss();\n return;\n }\n dismissCountDown--;\n _this.$emit('dismiss-count-down', dismissCountDown);\n _this.$emit('input', dismissCountDown);\n }, 1000);\n }\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nvar props = {\n disabled: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: 'Close'\n },\n textVariant: {\n type: String,\n default: null\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n slots = _ref.slots;\n\n var componentData = {\n staticClass: 'close',\n class: _defineProperty({}, 'text-' + props.textVariant, props.textVariant),\n attrs: {\n type: 'button',\n disabled: props.disabled,\n 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n },\n on: {\n click: function click(e) {\n // Ensure click on button HTML content is also disabled\n if (props.disabled && e instanceof Event) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n }\n // Careful not to override the slot with innerHTML\n };if (!slots().default) {\n componentData.domProps = { innerHTML: '×' };\n }\n return h('button', mergeData(data, componentData), slots().default);\n }\n};","var __assign=Object.assign||function(e){for(var a,s=1,t=arguments.length;s<t;s++)for(var r in a=arguments[s])Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r]);return e};function mergeData(){for(var e,a,s={},t=arguments.length;t--;)for(var r=0,c=Object.keys(arguments[t]);r<c.length;r++)switch(e=c[r]){case\"class\":case\"style\":case\"directives\":Array.isArray(s[e])||(s[e]=[]),s[e]=s[e].concat(arguments[t][e]);break;case\"staticClass\":if(!arguments[t][e])break;void 0===s[e]&&(s[e]=\"\"),s[e]&&(s[e]+=\" \"),s[e]+=arguments[t][e].trim();break;case\"on\":case\"nativeOn\":s[e]||(s[e]={});for(var o=0,n=Object.keys(arguments[t][e]||{});o<n.length;o++)a=n[o],s[e][a]?s[e][a]=[].concat(s[e][a],arguments[t][e][a]):s[e][a]=arguments[t][e][a];break;case\"attrs\":case\"props\":case\"domProps\":case\"scopedSlots\":case\"staticStyle\":case\"hook\":case\"transition\":s[e]||(s[e]={}),s[e]=__assign({},arguments[t][e],s[e]);break;case\"slot\":case\"key\":case\"ref\":case\"tag\":case\"show\":case\"keepAlive\":default:s[e]||(s[e]=arguments[t][e])}return s}export{mergeData};\n//# sourceMappingURL=lib.esm.js.map\n","/**\n * Register a component plugin as being loaded. returns true if compoent plugin already registered\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\nexport function registerComponent(Vue, name, def) {\n Vue._bootstrap_vue_components_ = Vue._bootstrap_vue_components_ || {};\n var loaded = Vue._bootstrap_vue_components_[name];\n if (!loaded && def && name) {\n Vue._bootstrap_vue_components_[name] = true;\n Vue.component(name, def);\n }\n return loaded;\n}\n\n/**\n * Register a group of components as being loaded.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\nexport function registerComponents(Vue, components) {\n for (var component in components) {\n registerComponent(Vue, component, components[component]);\n }\n}\n\n/**\n * Register a directive as being loaded. returns true if directive plugin already registered\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\nexport function registerDirective(Vue, name, def) {\n Vue._bootstrap_vue_directives_ = Vue._bootstrap_vue_directives_ || {};\n var loaded = Vue._bootstrap_vue_directives_[name];\n if (!loaded && def && name) {\n Vue._bootstrap_vue_directives_[name] = true;\n Vue.directive(name, def);\n }\n return loaded;\n}\n\n/**\n * Register a group of directives as being loaded.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\nexport function registerDirectives(Vue, directives) {\n for (var directive in directives) {\n registerDirective(Vue, directive, directives[directive]);\n }\n}\n\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\nexport function vueUse(VuePlugin) {\n if (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(VuePlugin);\n }\n}","import bBadge from './badge';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bBadge: bBadge\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\n\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nvar linkProps = linkPropsFactory();\ndelete linkProps.href.default;\ndelete linkProps.to.default;\n\nexport var props = assign(linkProps, {\n tag: {\n type: String,\n default: 'span'\n },\n variant: {\n type: String,\n default: 'secondary'\n },\n pill: {\n type: Boolean,\n default: false\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var tag = !props.href && !props.to ? props.tag : Link;\n\n var componentData = {\n staticClass: 'badge',\n class: [!props.variant ? 'badge-secondary' : 'badge-' + props.variant, {\n 'badge-pill': Boolean(props.pill),\n active: props.active,\n disabled: props.disabled\n }],\n props: pluckProps(linkProps, props)\n };\n\n return h(tag, mergeData(data, componentData), children);\n }\n};","import { keys } from './object';\nimport { isArray } from './array';\nimport identity from './identity';\n\n/**\n * Given an array of properties or an object of property keys,\n * plucks all the values off the target object.\n * @param {{}|string[]} keysToPluck\n * @param {{}} objToPluck\n * @param {Function} transformFn\n * @return {{}}\n */\nexport default function pluckProps(keysToPluck, objToPluck) {\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce(function (memo, prop) {\n // eslint-disable-next-line no-sequences\n return memo[transformFn(prop)] = objToPluck[prop], memo;\n }, {});\n}","/**\n * Aliasing Object[method] allows the minifier to shorten methods to a single character variable,\n * as well as giving BV a chance to inject polyfills.\n * As long as we avoid\n * - import * as Object from \"utils/object\"\n * all unused exports should be removed by tree-shaking.\n */\n\n// @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\nif (typeof Object.assign !== 'function') {\n Object.assign = function (target, varArgs) {\n // .length of function is 2\n\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n };\n}\n\n// @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#Polyfill\nif (!Object.is) {\n Object.is = function (x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n };\n}\n\nexport var assign = Object.assign;\nexport var getOwnPropertyNames = Object.getOwnPropertyNames;\nexport var keys = Object.keys;\nexport var defineProperties = Object.defineProperties;\nexport var defineProperty = Object.defineProperty;\nexport var freeze = Object.freeze;\nexport var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nexport var getOwnPropertySymbols = Object.getOwnPropertySymbols;\nexport var getPrototypeOf = Object.getPrototypeOf;\nexport var create = Object.create;\nexport var isFrozen = Object.isFrozen;\nexport var is = Object.is;\n\nexport function readonlyDescriptor() {\n return { enumerable: true, configurable: false, writable: false };\n}","// Production steps of ECMA-262, Edition 6, 22.1.2.1\n// es6-ified by @alexsasharegan\nif (!Array.from) {\n Array.from = function () {\n var toStr = Object.prototype.toString;\n var isCallable = function isCallable(fn) {\n return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n };\n var toInteger = function toInteger(value) {\n var number = Number(value);\n if (isNaN(number)) {\n return 0;\n }\n if (number === 0 || !isFinite(number)) {\n return number;\n }\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n };\n var maxSafeInteger = Math.pow(2, 53) - 1;\n var toLength = function toLength(value) {\n return Math.min(Math.max(toInteger(value), 0), maxSafeInteger);\n };\n\n // The length property of the from method is 1.\n return function from(arrayLike /*, mapFn, thisArg */) {\n // 1. Let C be the this value.\n var C = this;\n\n // 2. Let items be ToObject(arrayLike).\n var items = Object(arrayLike);\n\n // 3. ReturnIfAbrupt(items).\n if (arrayLike == null) {\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\n }\n\n // 4. If mapfn is undefined, then let mapping be false.\n var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n var T = void 0;\n\n if (typeof mapFn !== 'undefined') {\n // 5. else\n // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n if (!isCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n\n // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\n if (arguments.length > 2) {\n T = arguments[2];\n }\n }\n\n // 10. Let lenValue be Get(items, \"length\").\n // 11. Let len be ToLength(lenValue).\n var len = toLength(items.length);\n\n // 13. If IsConstructor(C) is true, then\n // 13. a. Let A be the result of calling the [[Construct]] internal method\n // of C with an argument list containing the single item len.\n // 14. a. Else, Let A be ArrayCreate(len).\n var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n // 16. Let k be 0.\n var k = 0;\n // 17. Repeat, while k < len… (also steps a - h)\n var kValue = void 0;\n while (k < len) {\n kValue = items[k];\n if (mapFn) {\n A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n } else {\n A[k] = kValue;\n }\n k += 1;\n }\n // 18. Let putStatus be Put(A, \"length\", len, true).\n A.length = len;\n // 20. Return A.\n return A;\n };\n }();\n}\n\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n// Needed for IE support\nif (!Array.prototype.find) {\n // eslint-disable-next-line no-extend-native\n Object.defineProperty(Array.prototype, 'find', {\n value: function value(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n var o = Object(this);\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n var len = o.length >>> 0;\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n var thisArg = arguments[1];\n\n // 5. Let k be 0.\n var k = 0;\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n var kValue = o[k];\n if (predicate.call(thisArg, kValue, k, o)) {\n return kValue;\n }\n // e. Increase k by 1.\n k++;\n }\n\n // 7. Return undefined.\n return undefined;\n }\n });\n}\n\nif (!Array.isArray) {\n Array.isArray = function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n };\n}\n\n// Static\nexport var from = Array.from;\nexport var isArray = Array.isArray;\n\n// Instance\nexport var arrayIncludes = function arrayIncludes(array, value) {\n return array.indexOf(value) !== -1;\n};\nexport var arrayFind = function arrayFind(array, fn, thisArg) {\n return array.find(fn, thisArg);\n};\nexport function concat() {\n return Array.prototype.concat.apply([], arguments);\n}","export default function identity(x) {\n return x;\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { assign, keys } from '../../utils/object';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { mergeData } from 'vue-functional-data-merge';\n\n/**\n * The Link component is used in many other BV components.\n * As such, sharing its props makes supporting all its features easier.\n * However, some components need to modify the defaults for their own purpose.\n * Prefer sharing a fresh copy of the props to ensure mutations\n * do not affect other component references to the props.\n *\n * https://github.com/vuejs/vue-router/blob/dev/src/components/link.js\n * @return {{}}\n */\nexport function propsFactory() {\n return {\n href: {\n type: String,\n default: null\n },\n rel: {\n type: String,\n default: null\n },\n target: {\n type: String,\n default: '_self'\n },\n active: {\n type: Boolean,\n default: false\n },\n activeClass: {\n type: String,\n default: 'active'\n },\n append: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n event: {\n type: [String, Array],\n default: 'click'\n },\n exact: {\n type: Boolean,\n default: false\n },\n exactActiveClass: {\n type: String,\n default: 'active'\n },\n replace: {\n type: Boolean,\n default: false\n },\n routerTag: {\n type: String,\n default: 'a'\n },\n to: {\n type: [String, Object],\n default: null\n }\n };\n}\n\nexport var props = propsFactory();\n\nexport function pickLinkProps(propsToPick) {\n var freshLinkProps = propsFactory();\n // Normalize everything to array.\n propsToPick = concat(propsToPick);\n\n return keys(freshLinkProps).reduce(function (memo, prop) {\n if (arrayIncludes(propsToPick, prop)) {\n memo[prop] = freshLinkProps[prop];\n }\n\n return memo;\n }, {});\n}\n\nexport function omitLinkProps(propsToOmit) {\n var freshLinkProps = propsFactory();\n // Normalize everything to array.\n propsToOmit = concat(propsToOmit);\n\n return keys(props).reduce(function (memo, prop) {\n if (!arrayIncludes(propsToOmit, prop)) {\n memo[prop] = freshLinkProps[prop];\n }\n\n return memo;\n }, {});\n}\n\nexport var computed = {\n linkProps: function linkProps() {\n var linkProps = {};\n var propKeys = keys(props);\n\n for (var i = 0; i < propKeys.length; i++) {\n var prop = propKeys[i];\n // Computed Vue getters are bound to the instance.\n linkProps[prop] = this[prop];\n }\n\n return linkProps;\n }\n};\n\nfunction computeTag(props, parent) {\n return Boolean(parent.$router) && props.to && !props.disabled ? 'router-link' : 'a';\n}\n\nfunction computeHref(_ref, tag) {\n var disabled = _ref.disabled,\n href = _ref.href,\n to = _ref.to;\n\n // We've already checked the parent.$router in computeTag,\n // so router-link means live router.\n // When deferring to Vue Router's router-link,\n // don't use the href attr at all.\n // Must return undefined for router-link to populate href.\n if (tag === 'router-link') return void 0;\n // If href explicitly provided\n if (href) return href;\n // Reconstruct href when `to` used, but no router\n if (to) {\n // Fallback to `to` prop (if `to` is a string)\n if (typeof to === 'string') return to;\n // Fallback to `to.path` prop (if `to` is an object)\n if ((typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' && typeof to.path === 'string') return to.path;\n }\n // If nothing is provided use '#'\n return '#';\n}\n\nfunction computeRel(_ref2) {\n var target = _ref2.target,\n rel = _ref2.rel;\n\n if (target === '_blank' && rel === null) {\n return 'noopener';\n }\n return rel || null;\n}\n\nfunction clickHandlerFactory(_ref3) {\n var disabled = _ref3.disabled,\n tag = _ref3.tag,\n href = _ref3.href,\n suppliedHandler = _ref3.suppliedHandler,\n parent = _ref3.parent;\n\n var isRouterLink = tag === 'router-link';\n\n return function onClick(e) {\n if (disabled && e instanceof Event) {\n // Stop event from bubbling up.\n e.stopPropagation();\n // Kill the event loop attached to this specific EventTarget.\n e.stopImmediatePropagation();\n } else {\n parent.$root.$emit('clicked::link', e);\n\n if (isRouterLink && e.target.__vue__) {\n e.target.__vue__.$emit('click', e);\n }\n if (typeof suppliedHandler === 'function') {\n suppliedHandler.apply(undefined, arguments);\n }\n }\n\n if (!isRouterLink && href === '#' || disabled) {\n // Stop scroll-to-top behavior or navigation.\n e.preventDefault();\n }\n };\n}\n\nexport default {\n functional: true,\n props: propsFactory(),\n render: function render(h, _ref4) {\n var props = _ref4.props,\n data = _ref4.data,\n parent = _ref4.parent,\n children = _ref4.children;\n\n var tag = computeTag(props, parent);\n var rel = computeRel(props);\n var href = computeHref(props, tag);\n var eventType = tag === 'router-link' ? 'nativeOn' : 'on';\n var suppliedHandler = (data[eventType] || {}).click;\n var handlers = { click: clickHandlerFactory({ tag: tag, href: href, disabled: props.disabled, suppliedHandler: suppliedHandler, parent: parent }) };\n\n var componentData = mergeData(data, {\n class: [props.active ? props.exact ? props.exactActiveClass : props.activeClass : null, { disabled: props.disabled }],\n attrs: {\n rel: rel,\n href: href,\n target: props.target,\n tabindex: props.disabled ? '-1' : data.attrs ? data.attrs.tabindex : null,\n 'aria-disabled': tag === 'a' && props.disabled ? 'true' : null\n },\n props: assign(props, { tag: props.routerTag })\n });\n\n // If href prop exists on router-link (even undefined or null) it fails working on SSR\n if (!componentData.attrs.href) {\n delete componentData.attrs.href;\n }\n\n // We want to overwrite any click handler since our callback\n // will invoke the supplied handler if !props.disabled\n componentData[eventType] = assign(componentData[eventType] || {}, handlers);\n\n return h(tag, componentData, children);\n }\n};","import bBreadcrumb from './breadcrumb';\nimport bBreadcrumbItem from './breadcrumb-item';\nimport bBreadcrumbLink from './breadcrumb-link';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bBreadcrumb: bBreadcrumb,\n bBreadcrumbItem: bBreadcrumbItem,\n bBreadcrumbLink: bBreadcrumbLink\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport { isArray } from '../../utils/array';\nimport { assign } from '../../utils/object';\nimport BreadcrumbItem from './breadcrumb-item';\n\nexport var props = {\n items: {\n type: Array,\n default: null\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var childNodes = children;\n // Build child nodes from items if given.\n if (isArray(props.items)) {\n var activeDefined = false;\n childNodes = props.items.map(function (item, idx) {\n if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) !== 'object') {\n item = { text: item };\n }\n // Copy the value here so we can normalize it.\n var active = item.active;\n if (active) {\n activeDefined = true;\n }\n if (!active && !activeDefined) {\n // Auto-detect active by position in list.\n active = idx + 1 === props.items.length;\n }\n\n return h(BreadcrumbItem, { props: assign({}, item, { active: active }) });\n });\n }\n\n return h('ol', mergeData(data, { staticClass: 'breadcrumb' }), childNodes);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\nimport { assign } from '../../utils/object';\nimport BreadcrumbLink, { props as crumbLinks } from './breadcrumb-link';\n\nexport var props = assign({}, crumbLinks, {\n text: {\n type: String,\n default: null\n },\n href: {\n type: String,\n default: null\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h('li', mergeData(data, {\n staticClass: 'breadcrumb-item',\n class: { active: props.active },\n attrs: { role: 'presentation' }\n }), [h(BreadcrumbLink, { props: props }, children)]);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nexport var props = assign(linkPropsFactory(), {\n text: {\n type: String,\n default: null\n },\n active: {\n type: Boolean,\n default: false\n },\n href: {\n type: String,\n default: '#'\n },\n ariaCurrent: {\n type: String,\n default: 'location'\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var suppliedProps = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var tag = suppliedProps.active ? 'span' : Link;\n\n var componentData = {\n props: pluckProps(props, suppliedProps),\n domProps: { innerHTML: suppliedProps.text }\n };\n\n if (suppliedProps.active) {\n componentData.attrs = { 'aria-current': suppliedProps.ariaCurrent };\n } else {\n componentData.attrs = { href: suppliedProps.href };\n }\n\n return h(tag, mergeData(data, componentData), children);\n }\n};","import bButton from './button';\nimport bButtonClose from './button-close';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bButton: bButton,\n bBtn: bButton,\n bButtonClose: bButtonClose,\n bBtnClose: bButtonClose\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { concat } from '../../utils/array';\nimport { assign, keys } from '../../utils/object';\nimport { addClass, removeClass } from '../../utils/dom';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nvar btnProps = {\n block: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null\n },\n variant: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'button'\n },\n pressed: {\n // tri-state prop: true, false or null\n // => on, off, not a toggle\n type: Boolean,\n default: null\n }\n};\n\nvar linkProps = linkPropsFactory();\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nvar linkPropKeys = keys(linkProps);\n\nexport var props = assign(linkProps, btnProps);\n\nfunction handleFocus(evt) {\n if (evt.type === 'focusin') {\n addClass(evt.target, 'focus');\n } else if (evt.type === 'focusout') {\n removeClass(evt.target, 'focus');\n }\n}\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n children = _ref.children;\n\n var isLink = Boolean(props.href || props.to);\n var isToggle = typeof props.pressed === 'boolean';\n var on = {\n click: function click(e) {\n if (props.disabled && e instanceof Event) {\n e.stopPropagation();\n e.preventDefault();\n } else if (isToggle) {\n // Concat will normalize the value to an array\n // without double wrapping an array value in an array.\n concat(listeners['update:pressed']).forEach(function (fn) {\n if (typeof fn === 'function') {\n fn(!props.pressed);\n }\n });\n }\n }\n };\n\n if (isToggle) {\n on.focusin = handleFocus;\n on.focusout = handleFocus;\n }\n\n var componentData = {\n staticClass: 'btn',\n class: [props.variant ? 'btn-' + props.variant : 'btn-secondary', (_ref2 = {}, _defineProperty(_ref2, 'btn-' + props.size, Boolean(props.size)), _defineProperty(_ref2, 'btn-block', props.block), _defineProperty(_ref2, 'disabled', props.disabled), _defineProperty(_ref2, 'active', props.pressed), _ref2)],\n props: isLink ? pluckProps(linkPropKeys, props) : null,\n attrs: {\n type: isLink ? null : props.type,\n disabled: isLink ? null : props.disabled,\n // Data attribute not used for js logic,\n // but only for BS4 style selectors.\n 'data-toggle': isToggle ? 'button' : null,\n 'aria-pressed': isToggle ? String(props.pressed) : null,\n // Tab index is used when the component becomes a link.\n // Links are tabable, but don't allow disabled,\n // so we mimic that functionality by disabling tabbing.\n tabindex: props.disabled && isLink ? '-1' : data.attrs ? data.attrs['tabindex'] : null\n },\n on: on\n };\n\n return h(isLink ? Link : 'button', mergeData(data, componentData), children);\n }\n};","import { from as arrayFrom } from './array';\n\n// Determine if an element is an HTML Element\nexport var isElement = function isElement(el) {\n return el && el.nodeType === Node.ELEMENT_NODE;\n};\n\n// Determine if an HTML element is visible - Faster than CSS check\nexport var isVisible = function isVisible(el) {\n return isElement(el) && document.body.contains(el) && el.getBoundingClientRect().height > 0 && el.getBoundingClientRect().width > 0;\n};\n\n// Determine if an element is disabled\nexport var isDisabled = function isDisabled(el) {\n return !isElement(el) || el.disabled || el.classList.contains('disabled') || Boolean(el.getAttribute('disabled'));\n};\n\n// Cause/wait-for an element to reflow it's content (adjusting it's height/width)\nexport var reflow = function reflow(el) {\n // requsting an elements offsetHight will trigger a reflow of the element content\n return isElement(el) && el.offsetHeight;\n};\n\n// Select all elements matching selector. Returns [] if none found\nexport var selectAll = function selectAll(selector, root) {\n if (!isElement(root)) {\n root = document;\n }\n return arrayFrom(root.querySelectorAll(selector));\n};\n\n// Select a single element, returns null if not found\nexport var select = function select(selector, root) {\n if (!isElement(root)) {\n root = document;\n }\n return root.querySelector(selector) || null;\n};\n\n// Determine if an element matches a selector\nexport var matches = function matches(el, selector) {\n if (!isElement(el)) {\n return false;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n // Prefer native implementations over polyfill function\n var proto = Element.prototype;\n var Matches = proto.matches || proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector ||\n /* istanbul ignore next */\n function (sel) {\n var element = this;\n var m = selectAll(sel, element.document || element.ownerDocument);\n var i = m.length;\n // eslint-disable-next-line no-empty\n while (--i >= 0 && m.item(i) !== element) {}\n return i > -1;\n };\n\n return Matches.call(el, selector);\n};\n\n// Finds closest element matching selector. Returns null if not found\nexport var closest = function closest(selector, root) {\n if (!isElement(root)) {\n return null;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n // Since we dont support IE < 10, we can use the \"Matches\" version of the polyfill for speed\n // Prefer native implementation over polyfill function\n var Closest = Element.prototype.closest ||\n /* istanbul ignore next */\n function (sel) {\n var element = this;\n if (!document.documentElement.contains(element)) {\n return null;\n }\n do {\n // Use our \"patched\" matches function\n if (matches(element, sel)) {\n return element;\n }\n element = element.parentElement;\n } while (element !== null);\n return null;\n };\n\n var el = Closest.call(root, selector);\n // Emulate jQuery closest and return null if match is the passed in element (root)\n return el === root ? null : el;\n};\n\n// Get an element given an ID\nexport var getById = function getById(id) {\n return document.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\n};\n\n// Add a class to an element\nexport var addClass = function addClass(el, className) {\n if (className && isElement(el)) {\n el.classList.add(className);\n }\n};\n\n// Remove a class from an element\nexport var removeClass = function removeClass(el, className) {\n if (className && isElement(el)) {\n el.classList.remove(className);\n }\n};\n\n// Test if an element has a class\nexport var hasClass = function hasClass(el, className) {\n if (className && isElement(el)) {\n return el.classList.contains(className);\n }\n return false;\n};\n\n// Set an attribute on an element\nexport var setAttr = function setAttr(el, attr, value) {\n if (attr && isElement(el)) {\n el.setAttribute(attr, value);\n }\n};\n\n// Remove an attribute from an element\nexport var removeAttr = function removeAttr(el, attr) {\n if (attr && isElement(el)) {\n el.removeAttribute(attr);\n }\n};\n\n// Get an attribute value from an element (returns null if not found)\nexport var getAttr = function getAttr(el, attr) {\n if (attr && isElement(el)) {\n return el.getAttribute(attr);\n }\n return null;\n};\n\n// Determine if an attribute exists on an element (returns true or false, or null if element not found)\nexport var hasAttr = function hasAttr(el, attr) {\n if (attr && isElement(el)) {\n return el.hasAttribute(attr);\n }\n return null;\n};\n\n// Return the Bounding Client Rec of an element. Retruns null if not an element\nexport var getBCR = function getBCR(el) {\n return isElement(el) ? el.getBoundingClientRect() : null;\n};\n\n// Get computed style object for an element\nexport var getCS = function getCS(el) {\n return isElement(el) ? window.getComputedStyle(el) : {};\n};\n\n// Return an element's offset wrt document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\nexport var offset = function offset(el) {\n if (isElement(el)) {\n if (!el.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n var bcr = getBCR(el);\n var win = el.ownerDocument.defaultView;\n return {\n top: bcr.top + win.pageYOffset,\n left: bcr.left + win.pageXOffset\n };\n }\n};\n\n// Return an element's offset wrt to it's offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\nexport var position = function position(el) {\n if (!isElement(el)) {\n return;\n }\n var parentOffset = { top: 0, left: 0 };\n var offsetSelf = void 0;\n var offsetParent = void 0;\n if (getCS(el).position === 'fixed') {\n offsetSelf = getBCR(el);\n } else {\n offsetSelf = offset(el);\n var doc = el.ownerDocument;\n offsetParent = el.offsetParent || doc.documentElement;\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n parentOffset = offset(offsetParent);\n parentOffset.top += parseFloat(getCS(offsetParent).borderTopWidth);\n parentOffset.left += parseFloat(getCS(offsetParent).borderLeftWidth);\n }\n }\n return {\n top: offsetSelf.top - parentOffset.top - parseFloat(getCS(el).marginTop),\n left: offsetSelf.left - parentOffset.left - parseFloat(getCS(el).marginLeft)\n };\n};\n\n// Attach an event listener to an element\nexport var eventOn = function eventOn(el, evtName, handler) {\n if (el && el.addEventListener) {\n el.addEventListener(evtName, handler);\n }\n};\n\n// Remove an event listener from an element\nexport var eventOff = function eventOff(el, evtName, handler) {\n if (el && el.removeEventListener) {\n el.removeEventListener(evtName, handler);\n }\n};","import bButtonGroup from './button-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bButtonGroup: bButtonGroup,\n bBtnGroup: bButtonGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport { arrayIncludes } from '../../utils/array';\n\nexport var props = {\n vertical: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null,\n validator: function validator(size) {\n return arrayIncludes(['sm', '', 'lg'], size);\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n ariaRole: {\n type: String,\n default: 'group'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'btn-group': !props.vertical,\n 'btn-group-vertical': props.vertical\n }, 'btn-group-' + props.size, Boolean(props.size)),\n attrs: { 'role': props.ariaRole }\n }), children);\n }\n};","import bButtonToolbar from './button-toolbar';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bButtonToolbar: bButtonToolbar,\n bBtnToolbar: bButtonToolbar\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { isVisible, selectAll } from '../../utils/dom';\nimport KeyCodes from '../../utils/key-codes';\n\nvar ITEM_SELECTOR = ['.btn:not(.disabled):not([disabled]):not(.dropdown-item)', '.form-control:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'input[type=\"checkbox\"]:not(.disabled)', 'input[type=\"radio\"]:not(.disabled)'].join(',');\n\nexport default {\n render: function render(h) {\n return h('div', {\n class: this.classObject,\n attrs: {\n role: 'toolbar',\n tabindex: this.keyNav ? '0' : null\n },\n on: {\n focusin: this.onFocusin,\n keydown: this.onKeydown\n }\n }, [this.$slots.default]);\n },\n\n computed: {\n classObject: function classObject() {\n return ['btn-toolbar', this.justify && !this.vertical ? 'justify-content-between' : ''];\n }\n },\n props: {\n justify: {\n type: Boolean,\n default: false\n },\n keyNav: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n onFocusin: function onFocusin(evt) {\n if (evt.target === this.$el) {\n evt.preventDefault();\n evt.stopPropagation();\n this.focusFirst(evt);\n }\n },\n onKeydown: function onKeydown(evt) {\n if (!this.keyNav) {\n return;\n }\n var key = evt.keyCode;\n var shift = evt.shiftKey;\n if (key === KeyCodes.UP || key === KeyCodes.LEFT) {\n evt.preventDefault();\n evt.stopPropagation();\n if (shift) {\n this.focusFirst(evt);\n } else {\n this.focusNext(evt, true);\n }\n } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT) {\n evt.preventDefault();\n evt.stopPropagation();\n if (shift) {\n this.focusLast(evt);\n } else {\n this.focusNext(evt, false);\n }\n }\n },\n setItemFocus: function setItemFocus(item) {\n this.$nextTick(function () {\n item.focus();\n });\n },\n focusNext: function focusNext(evt, prev) {\n var items = this.getItems();\n if (items.length < 1) {\n return;\n }\n var index = items.indexOf(evt.target);\n if (prev && index > 0) {\n index--;\n } else if (!prev && index < items.length - 1) {\n index++;\n }\n if (index < 0) {\n index = 0;\n }\n this.setItemFocus(items[index]);\n },\n focusFirst: function focusFirst(evt) {\n var items = this.getItems();\n if (items.length > 0) {\n this.setItemFocus(items[0]);\n }\n },\n focusLast: function focusLast(evt) {\n var items = this.getItems();\n if (items.length > 0) {\n this.setItemFocus([items.length - 1]);\n }\n },\n getItems: function getItems() {\n var items = selectAll(ITEM_SELECTOR, this.$el);\n items.forEach(function (item) {\n // Ensure tabfocus is -1 on any new elements\n item.tabIndex = -1;\n });\n return items.filter(function (el) {\n return isVisible(el);\n });\n }\n },\n mounted: function mounted() {\n if (this.keyNav) {\n // Pre-set the tabindexes if the markup does not include tabindex=\"-1\" on the toolbar items\n this.getItems();\n }\n }\n};","/*\n * Key Codes (events)\n */\n\nexport default {\n SPACE: 32,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n PAGEUP: 33,\n PAGEDOWN: 34,\n HOME: 36,\n END: 35\n};","import { registerComponents, vueUse } from '../../utils/plugins';\n\nimport bInputGroup from './input-group';\nimport bInputGroupAddon from './input-group-addon';\nimport bInputGroupPrepend from './input-group-prepend';\nimport bInputGroupAppend from './input-group-append';\nimport bInputGroupText from './input-group-text';\n\nvar components = {\n bInputGroup: bInputGroup,\n bInputGroupAddon: bInputGroupAddon,\n bInputGroupPrepend: bInputGroupPrepend,\n bInputGroupAppend: bInputGroupAppend,\n bInputGroupText: bInputGroupText\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport InputGroupPrepend from './input-group-prepend';\nimport InputGroupAppend from './input-group-append';\nimport InputGroupText from './input-group-text';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n size: {\n type: String,\n default: null\n },\n prepend: {\n type: String,\n default: null\n },\n append: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots;\n\n var $slots = slots();\n\n var childNodes = [];\n\n // Prepend prop\n if (props.prepend) {\n childNodes.push(h(InputGroupPrepend, [h(InputGroupText, { domProps: { innerHTML: props.prepend } })]));\n }\n\n // Prepend slot\n if ($slots.prepend) {\n childNodes.push(h(InputGroupPrepend, $slots.prepend));\n }\n\n // Default slot\n childNodes.push($slots.default);\n\n // Append prop\n if (props.append) {\n childNodes.push(h(InputGroupAppend, [h(InputGroupText, { domProps: { innerHTML: props.append } })]));\n }\n\n // Append slot\n if ($slots.append) {\n childNodes.push(h(InputGroupAppend, $slots.append));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, 'input-group-' + props.size, Boolean(props.size)),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), childNodes);\n }\n};","import InputGroupAddon, { propsFactory } from './input-group-addon';\n\nexport default {\n functional: true,\n props: propsFactory(false),\n render: InputGroupAddon.render\n};","import { mergeData } from 'vue-functional-data-merge';\nimport InputGroupText from './input-group-text';\n\nexport var propsFactory = function propsFactory(append) {\n return {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n append: {\n type: Boolean,\n default: append\n },\n isText: {\n type: Boolean,\n default: false\n }\n };\n};\n\nexport default {\n functional: true,\n props: propsFactory(false),\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group-' + (props.append ? 'append' : 'prepend'),\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(InputGroupText, children)] : children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n props: props,\n functional: true,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group-text'\n }), children);\n }\n};","import InputGroupAddon, { propsFactory } from './input-group-addon';\n\nexport default {\n functional: true,\n props: propsFactory(true),\n render: InputGroupAddon.render\n};","import bCard from './card';\nimport bCardHeader from './card-header';\nimport bCardBody from './card-body';\nimport bCardFooter from './card-footer';\nimport bCardImg from './card-img';\nimport bCardGroup from './card-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bCard: bCard,\n bCardHeader: bCardHeader,\n bCardBody: bCardBody,\n bCardFooter: bCardFooter,\n bCardImg: bCardImg,\n bCardGroup: bCardGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport unPrefixPropName from '../../utils/unprefix-prop-name';\nimport copyProps from '../../utils/copyProps';\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\nimport cardMixin from '../../mixins/card-mixin';\nimport CardBody, { props as bodyProps } from './card-body';\nimport CardHeader, { props as headerProps } from './card-header';\nimport CardFooter, { props as footerProps } from './card-footer';\nimport CardImg, { props as imgProps } from './card-img';\n\nvar cardImgProps = copyProps(imgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\n\nexport var props = assign({}, bodyProps, headerProps, footerProps, cardImgProps, copyProps(cardMixin.props), {\n align: {\n type: String,\n default: null\n },\n noBody: {\n type: Boolean,\n default: false\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n children = _ref.children;\n\n // The order of the conditionals matter.\n // We are building the component markup in order.\n var childNodes = [];\n var $slots = slots();\n var img = props.imgSrc ? h(CardImg, {\n props: pluckProps(cardImgProps, props, unPrefixPropName.bind(null, 'img'))\n }) : null;\n\n if (img) {\n // Above the header placement.\n if (props.imgTop || !props.imgBottom) {\n childNodes.push(img);\n }\n }\n if (props.header || $slots.header) {\n childNodes.push(h(CardHeader, { props: pluckProps(headerProps, props) }, $slots.header));\n }\n if (props.noBody) {\n childNodes.push($slots.default);\n } else {\n childNodes.push(h(CardBody, { props: pluckProps(bodyProps, props) }, $slots.default));\n }\n if (props.footer || $slots.footer) {\n childNodes.push(h(CardFooter, { props: pluckProps(footerProps, props) }, $slots.footer));\n }\n if (img && props.imgBottom) {\n // Below the footer placement.\n childNodes.push(img);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {}, _defineProperty(_class, 'text-' + props.align, Boolean(props.align)), _defineProperty(_class, 'bg-' + props.bgVariant, Boolean(props.bgVariant)), _defineProperty(_class, 'border-' + props.borderVariant, Boolean(props.borderVariant)), _defineProperty(_class, 'text-' + props.textVariant, Boolean(props.textVariant)), _class)\n }), childNodes);\n }\n};","import upperFirst from './upper-first';\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nexport default function prefixPropName(prefix, value) {\n return prefix + upperFirst(value);\n}","/**\n * @param {string} str\n */\nexport default function upperFirst(str) {\n if (typeof str !== 'string') {\n str = String(str);\n }\n return str.charAt(0).toUpperCase() + str.slice(1);\n}","import lowerFirst from './lower-first';\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nexport default function unPrefixPropName(prefix, value) {\n return lowerFirst(value.replace(prefix, ''));\n}","/**\n * @param {string} str\n */\nexport default function lowerFirst(str) {\n if (typeof str !== 'string') {\n str = String(str);\n }\n return str.charAt(0).toLowerCase() + str.slice(1);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { isArray } from './array';\nimport { assign } from './object';\nimport identity from './identity';\n\n/**\n * @param {[]|{}} props\n * @param {Function} transformFn\n */\nexport default function copyProps(props) {\n var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n if (isArray(props)) {\n return props.map(transformFn);\n }\n // Props as an object.\n var copied = {};\n\n for (var prop in props) {\n if (props.hasOwnProperty(prop)) {\n if ((typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) === 'object') {\n copied[transformFn(prop)] = assign({}, props[prop]);\n } else {\n copied[transformFn(prop)] = props[prop];\n }\n }\n }\n\n return copied;\n}","export default {\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n bgVariant: {\n type: String,\n default: null\n },\n borderVariant: {\n type: String,\n default: null\n },\n textVariant: {\n type: String,\n default: null\n }\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport copyProps from '../../utils/copyProps';\nimport { assign } from '../../utils/object';\nimport cardMixin from '../../mixins/card-mixin';\n\nexport var props = assign({}, copyProps(cardMixin.props, prefixPropName.bind(null, 'body')), {\n bodyClass: {\n type: [String, Object, Array],\n default: null\n },\n title: {\n type: String,\n default: null\n },\n titleTag: {\n type: String,\n default: 'h4'\n },\n subTitle: {\n type: String,\n default: null\n },\n subTitleTag: {\n type: String,\n default: 'h6'\n },\n overlay: {\n type: Boolean,\n default: false\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots;\n\n var cardBodyChildren = [];\n if (props.title) {\n cardBodyChildren.push(h(props.titleTag, {\n staticClass: 'card-title',\n domProps: { innerHTML: props.title }\n }));\n }\n if (props.subTitle) {\n cardBodyChildren.push(h(props.subTitleTag, {\n staticClass: 'card-subtitle mb-2 text-muted',\n domProps: { innerHTML: props.subTitle }\n }));\n }\n cardBodyChildren.push(slots().default);\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, 'bg-' + props.bodyBgVariant, Boolean(props.bodyBgVariant)), _defineProperty(_ref2, 'border-' + props.bodyBorderVariant, Boolean(props.bodyBorderVariant)), _defineProperty(_ref2, 'text-' + props.bodyTextVariant, Boolean(props.bodyTextVariant)), _ref2), props.bodyClass || {}]\n }), cardBodyChildren);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport copyProps from '../../utils/copyProps';\nimport { assign } from '../../utils/object';\nimport cardMixin from '../../mixins/card-mixin';\n\nexport var props = assign({}, copyProps(cardMixin.props, prefixPropName.bind(null, 'header')), {\n header: {\n type: String,\n default: null\n },\n headerClass: {\n type: [String, Object, Array],\n default: null\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n children = _ref.children;\n\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, 'bg-' + props.headerBgVariant, Boolean(props.headerBgVariant)), _defineProperty(_ref2, 'border-' + props.headerBorderVariant, Boolean(props.headerBorderVariant)), _defineProperty(_ref2, 'text-' + props.headerTextVariant, Boolean(props.headerTextVariant)), _ref2)]\n }), children || [h('div', { domProps: { innerHTML: props.header } })]);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport copyProps from '../../utils/copyProps';\nimport { assign } from '../../utils/object';\nimport cardMixin from '../../mixins/card-mixin';\n\nexport var props = assign({}, copyProps(cardMixin.props, prefixPropName.bind(null, 'footer')), {\n footer: {\n type: String,\n default: null\n },\n footerClass: {\n type: [String, Object, Array],\n default: null\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n children = _ref.children;\n\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, 'bg-' + props.footerBgVariant, Boolean(props.footerBgVariant)), _defineProperty(_ref2, 'border-' + props.footerBorderVariant, Boolean(props.footerBorderVariant)), _defineProperty(_ref2, 'text-' + props.footerTextVariant, Boolean(props.footerTextVariant)), _ref2)]\n }), children || [h('div', { domProps: { innerHTML: props.footer } })]);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n src: {\n type: String,\n default: null,\n required: true\n },\n alt: {\n type: String,\n default: null\n },\n top: {\n type: Boolean,\n default: false\n },\n bottom: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots;\n\n var staticClass = 'card-img';\n if (props.top) {\n staticClass += '-top';\n } else if (props.bottom) {\n staticClass += '-bottom';\n }\n\n return h('img', mergeData(data, {\n staticClass: staticClass,\n class: { 'img-fluid': props.fluid },\n attrs: { src: props.src, alt: props.alt }\n }));\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n deck: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var staticClass = 'card-group';\n if (props.columns) {\n staticClass = 'card-columns';\n }\n if (props.deck) {\n staticClass = 'card-deck';\n }\n\n return h(props.tag, mergeData(data, { staticClass: staticClass }), children);\n }\n};","import bCarousel from './carousel';\nimport bCarouselSlide from './carousel-slide';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bCarousel: bCarousel,\n bCarouselSlide: bCarouselSlide\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import observeDom from '../../utils/observe-dom';\nimport KeyCodes from '../../utils/key-codes';\nimport { selectAll, reflow, addClass, removeClass, setAttr, eventOn, eventOff } from '../../utils/dom';\nimport idMixin from '../../mixins/id';\n\n// Slide directional classes\nvar DIRECTION = {\n next: {\n dirClass: 'carousel-item-left',\n overlayClass: 'carousel-item-next'\n },\n prev: {\n dirClass: 'carousel-item-right',\n overlayClass: 'carousel-item-prev'\n }\n\n // Fallback Transition duration (with a little buffer) in ms\n};var TRANS_DURATION = 600 + 50;\n\n// Transition Event names\nvar TransitionEndEvents = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'otransitionend oTransitionEnd',\n transition: 'transitionend'\n\n // Return the browser specific transitionEnd event name\n};function getTransisionEndEvent(el) {\n for (var name in TransitionEndEvents) {\n if (el.style[name] !== undefined) {\n return TransitionEndEvents[name];\n }\n }\n // fallback\n return null;\n}\n\nexport default {\n mixins: [idMixin],\n render: function render(h) {\n var _this = this;\n\n // Wrapper for slides\n var inner = h('div', {\n ref: 'inner',\n class: ['carousel-inner'],\n attrs: {\n id: this.safeId('__BV_inner_'),\n role: 'list'\n }\n }, [this.$slots.default]);\n\n // Prev and Next Controls\n var controls = h(false);\n if (this.controls) {\n controls = [h('a', {\n class: ['carousel-control-prev'],\n attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n on: {\n click: function click(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.prev();\n },\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.prev();\n }\n }\n }\n }, [h('span', { class: ['carousel-control-prev-icon'], attrs: { 'aria-hidden': 'true' } }), h('span', { class: ['sr-only'] }, [this.labelPrev])]), h('a', {\n class: ['carousel-control-next'],\n attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n on: {\n click: function click(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.next();\n },\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.next();\n }\n }\n }\n }, [h('span', { class: ['carousel-control-next-icon'], attrs: { 'aria-hidden': 'true' } }), h('span', { class: ['sr-only'] }, [this.labelNext])])];\n }\n\n // Indicators\n var indicators = h('ol', {\n class: ['carousel-indicators'],\n directives: [{ name: 'show', rawName: 'v-show', value: this.indicators, expression: 'indicators' }],\n attrs: {\n id: this.safeId('__BV_indicators_'),\n 'aria-hidden': this.indicators ? 'false' : 'true',\n 'aria-label': this.labelIndicators,\n 'aria-owns': this.safeId('__BV_inner_')\n }\n }, this.slides.map(function (slide, n) {\n return h('li', {\n key: 'slide_' + n,\n class: { active: n === _this.index },\n attrs: {\n role: 'button',\n id: _this.safeId('__BV_indicator_' + (n + 1) + '_'),\n tabindex: _this.indicators ? '0' : '-1',\n 'aria-current': n === _this.index ? 'true' : 'false',\n 'aria-label': _this.labelGotoSlide + ' ' + (n + 1),\n 'aria-describedby': _this.slides[n].id || null,\n 'aria-controls': _this.safeId('__BV_inner_')\n },\n on: {\n click: function click(evt) {\n _this.setSlide(n);\n },\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.setSlide(n);\n }\n }\n }\n });\n }));\n\n // Return the carousel\n return h('div', {\n class: ['carousel', 'slide'],\n style: { background: this.background },\n attrs: {\n role: 'region',\n id: this.safeId(),\n 'aria-busy': this.isSliding ? 'true' : 'false'\n },\n on: {\n mouseenter: this.pause,\n mouseleave: this.restart,\n focusin: this.pause,\n focusout: this.restart,\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.LEFT || keyCode === KeyCodes.RIGHT) {\n evt.preventDefault();\n evt.stopPropagation();\n _this[keyCode === KeyCodes.LEFT ? 'prev' : 'next']();\n }\n }\n }\n }, [inner, controls, indicators]);\n },\n data: function data() {\n return {\n index: this.value || 0,\n isSliding: false,\n intervalId: null,\n transitionEndEvent: null,\n slides: [],\n direction: null\n };\n },\n\n props: {\n labelPrev: {\n type: String,\n default: 'Previous Slide'\n },\n labelNext: {\n type: String,\n default: 'Next Slide'\n },\n labelGotoSlide: {\n type: String,\n default: 'Goto Slide'\n },\n labelIndicators: {\n type: String,\n default: 'Select a slide to display'\n },\n interval: {\n type: Number,\n default: 5000\n },\n indicators: {\n type: Boolean,\n default: false\n },\n controls: {\n type: Boolean,\n default: false\n },\n imgWidth: {\n // Sniffed by carousel-slide\n type: [Number, String]\n },\n imgHeight: {\n // Sniffed by carousel-slide\n type: [Number, String]\n },\n background: {\n type: String\n },\n value: {\n type: Number,\n default: 0\n }\n },\n computed: {\n isCycling: function isCycling() {\n return Boolean(this.intervalId);\n }\n },\n methods: {\n // Set slide\n setSlide: function setSlide(slide) {\n var _this2 = this;\n\n // Don't animate when page is not visible\n if (typeof document !== 'undefined' && document.visibilityState && document.hidden) {\n return;\n }\n var len = this.slides.length;\n // Don't do anything if nothing to slide to\n if (len === 0) {\n return;\n }\n // Don't change slide while transitioning, wait until transition is done\n if (this.isSliding) {\n // Schedule slide after sliding complete\n this.$once('sliding-end', function () {\n return _this2.setSlide(slide);\n });\n return;\n }\n // Make sure we have an integer (you never know!)\n slide = Math.floor(slide);\n // Set new slide index. Wrap around if necessary\n this.index = slide >= len ? 0 : slide >= 0 ? slide : len - 1;\n },\n\n // Previous slide\n prev: function prev() {\n this.direction = 'prev';\n this.setSlide(this.index - 1);\n },\n\n // Next slide\n next: function next() {\n this.direction = 'next';\n this.setSlide(this.index + 1);\n },\n\n // Pause auto rotation\n pause: function pause() {\n if (this.isCycling) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n if (this.slides[this.index]) {\n // Make current slide focusable for screen readers\n this.slides[this.index].tabIndex = 0;\n }\n }\n },\n\n // Start auto rotate slides\n start: function start() {\n var _this3 = this;\n\n // Don't start if no interval, or if we are already running\n if (!this.interval || this.isCycling) {\n return;\n }\n this.slides.forEach(function (slide) {\n slide.tabIndex = -1;\n });\n this.intervalId = setInterval(function () {\n _this3.next();\n }, Math.max(1000, this.interval));\n },\n\n // Re-Start auto rotate slides when focus/hover leaves the carousel\n restart: function restart(evt) {\n if (!this.$el.contains(document.activeElement)) {\n this.start();\n }\n },\n\n // Update slide list\n updateSlides: function updateSlides() {\n this.pause();\n // Get all slides as DOM elements\n this.slides = selectAll('.carousel-item', this.$refs.inner);\n var numSlides = this.slides.length;\n // Keep slide number in range\n var index = Math.max(0, Math.min(Math.floor(this.index), numSlides - 1));\n this.slides.forEach(function (slide, idx) {\n var n = idx + 1;\n if (idx === index) {\n addClass(slide, 'active');\n } else {\n removeClass(slide, 'active');\n }\n setAttr(slide, 'aria-current', idx === index ? 'true' : 'false');\n setAttr(slide, 'aria-posinset', String(n));\n setAttr(slide, 'aria-setsize', String(numSlides));\n slide.tabIndex = -1;\n });\n // Set slide as active\n this.setSlide(index);\n this.start();\n },\n calcDirection: function calcDirection() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var curIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var nextIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!direction) {\n return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev;\n }\n return DIRECTION[direction];\n }\n },\n watch: {\n value: function value(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.setSlide(newVal);\n }\n },\n interval: function interval(newVal, oldVal) {\n if (newVal === oldVal) {\n return;\n }\n if (!newVal) {\n // Pausing slide show\n this.pause();\n } else {\n // Restarting or Changing interval\n this.pause();\n this.start();\n }\n },\n index: function index(val, oldVal) {\n var _this4 = this;\n\n if (val === oldVal || this.isSliding) {\n return;\n }\n // Determine sliding direction\n var direction = this.calcDirection(this.direction, oldVal, val);\n // Determine current and next slides\n var currentSlide = this.slides[oldVal];\n var nextSlide = this.slides[val];\n // Don't do anything if there aren't any slides to slide to\n if (!currentSlide || !nextSlide) {\n return;\n }\n // Start animating\n this.isSliding = true;\n this.$emit('sliding-start', val);\n // Update v-model\n this.$emit('input', this.index);\n nextSlide.classList.add(direction.overlayClass);\n // Trigger a reflow of next slide\n reflow(nextSlide);\n addClass(currentSlide, direction.dirClass);\n addClass(nextSlide, direction.dirClass);\n // Transition End handler\n var called = false;\n /* istanbul ignore next: dificult to test */\n var onceTransEnd = function onceTransEnd(evt) {\n if (called) {\n return;\n }\n called = true;\n if (_this4.transitionEndEvent) {\n var events = _this4.transitionEndEvent.split(/\\s+/);\n events.forEach(function (event) {\n eventOff(currentSlide, event, onceTransEnd);\n });\n }\n _this4._animationTimeout = null;\n removeClass(nextSlide, direction.dirClass);\n removeClass(nextSlide, direction.overlayClass);\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n removeClass(currentSlide, direction.dirClass);\n removeClass(currentSlide, direction.overlayClass);\n setAttr(currentSlide, 'aria-current', 'false');\n setAttr(nextSlide, 'aria-current', 'true');\n setAttr(currentSlide, 'aria-hidden', 'true');\n setAttr(nextSlide, 'aria-hidden', 'false');\n currentSlide.tabIndex = -1;\n nextSlide.tabIndex = -1;\n if (!_this4.isCycling) {\n // Focus the next slide for screen readers if not in play mode\n nextSlide.tabIndex = 0;\n _this4.$nextTick(function () {\n nextSlide.focus();\n });\n }\n _this4.isSliding = false;\n _this4.direction = null;\n // Notify ourselves that we're done sliding (slid)\n _this4.$nextTick(function () {\n return _this4.$emit('sliding-end', val);\n });\n };\n // Clear transition classes after transition ends\n if (this.transitionEndEvent) {\n var events = this.transitionEndEvent.split(/\\s+/);\n events.forEach(function (event) {\n eventOn(currentSlide, event, onceTransEnd);\n });\n }\n // Fallback to setTimeout\n this._animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION);\n }\n },\n created: function created() {\n // Create private non-reactive props\n this._animationTimeout = null;\n },\n mounted: function mounted() {\n // Cache current browser transitionend event name\n this.transitionEndEvent = getTransisionEndEvent(this.$el) || null;\n // Get all slides\n this.updateSlides();\n // Observe child changes so we can update slide list\n observeDom(this.$refs.inner, this.updateSlides.bind(this), {\n subtree: false,\n childList: true,\n attributes: true,\n attributeFilter: ['id']\n });\n },\n\n /* istanbul ignore next: dificult to test */\n beforeDestroy: function beforeDestroy() {\n clearInterval(this.intervalId);\n clearTimeout(this._animationTimeout);\n this.intervalId = null;\n this._animationTimeout = null;\n }\n};","import { assign } from './object';\nimport { isElement } from '../utils/dom';\n\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [opts={childList: true, subtree: true}] observe options\n * @see http://stackoverflow.com/questions/3219758\n */\nexport default function observeDOM(el, callback, opts) {\n var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n var eventListenerSupported = window.addEventListener;\n\n // Handle case where we might be passed a vue instance\n el = el ? el.$el || el : null;\n /* istanbul ignore next: dificult to test in JSDOM */\n if (!isElement(el)) {\n // We can't observe somthing that isn't an element\n return null;\n }\n\n var obs = null;\n\n /* istanbul ignore next: dificult to test in JSDOM */\n if (MutationObserver) {\n // Define a new observer\n obs = new MutationObserver(function (mutations) {\n var changed = false;\n // A Mutation can contain several change records, so we loop through them to see what has changed.\n // We break out of the loop early if any \"significant\" change has been detected\n for (var i = 0; i < mutations.length && !changed; i++) {\n // The muttion record\n var mutation = mutations[i];\n // Mutation Type\n var type = mutation.type;\n // DOM Node (could be any DOM Node type - HTMLElement, Text, comment, etc)\n var target = mutation.target;\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n // We ignore nodes that are not TEXt (i.e. comments, etc) as they don't change layout\n changed = true;\n } else if (type === 'attributes') {\n changed = true;\n } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {\n // This includes HTMLElement and Text Nodes being added/removed/re-arranged\n changed = true;\n }\n }\n if (changed) {\n // We only call the callback if a change that could affect layout/size truely happened.\n callback();\n }\n });\n\n // Have the observer observe foo for changes in children, etc\n obs.observe(el, assign({ childList: true, subtree: true }, opts));\n } else if (eventListenerSupported) {\n // Legacy interface. most likely not used in modern browsers\n el.addEventListener('DOMNodeInserted', callback, false);\n el.addEventListener('DOMNodeRemoved', callback, false);\n }\n\n // We return a reference to the observer so that obs.disconnect() can be called if necessary\n // To reduce overhead when the root element is hiiden\n return obs;\n}","/*\n * SSR Safe Client Side ID attribute generation\n *\n */\n\nexport default {\n props: {\n id: {\n type: String,\n default: null\n }\n },\n methods: {\n safeId: function safeId() {\n var suffix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n var id = this.id || this.localId_ || null;\n if (!id) {\n return null;\n }\n suffix = String(suffix).replace(/\\s+/g, '_');\n return suffix ? id + '_' + suffix : id;\n }\n },\n computed: {\n localId_: function localId_() {\n if (!this.$isServer && !this.id && typeof this._uid !== 'undefined') {\n return '__BVID__' + this._uid;\n }\n }\n }\n};","import bImg from '../image/img';\nimport warn from '../../utils/warn';\nimport idMixin from '../../mixins/id';\n\nexport default {\n components: { bImg: bImg },\n mixins: [idMixin],\n render: function render(h) {\n var $slots = this.$slots;\n\n var img = $slots.img;\n if (!img && (this.imgSrc || this.imgBlank)) {\n img = h('b-img', {\n props: {\n fluidGrow: true,\n block: true,\n src: this.imgSrc,\n blank: this.imgBlank,\n blankColor: this.imgBlankColor,\n width: this.computedWidth,\n height: this.computedHeight,\n alt: this.imgAlt\n }\n });\n }\n\n var content = h(this.contentTag, { class: this.contentClasses }, [this.caption ? h(this.captionTag, { domProps: { innerHTML: this.caption } }) : h(false), this.text ? h(this.textTag, { domProps: { innerHTML: this.text } }) : h(false), $slots.default]);\n\n return h('div', {\n class: ['carousel-item'],\n style: { background: this.background },\n attrs: { id: this.safeId(), role: 'listitem' }\n }, [img, content]);\n },\n\n props: {\n imgSrc: {\n type: String,\n default: function _default() {\n if (this && this.src) {\n // Deprecate src\n warn(\"b-carousel-slide: prop 'src' has been deprecated. Use 'img-src' instead\");\n return this.src;\n }\n return null;\n }\n },\n src: {\n // Deprecated: use img-src instead\n type: String\n },\n imgAlt: {\n type: String\n },\n imgWidth: {\n type: [Number, String]\n },\n imgHeight: {\n type: [Number, String]\n },\n imgBlank: {\n type: Boolean,\n default: false\n },\n imgBlankColor: {\n type: String,\n default: 'transparent'\n },\n contentVisibleUp: {\n type: String\n },\n contentTag: {\n type: String,\n default: 'div'\n },\n caption: {\n type: String\n },\n captionTag: {\n type: String,\n default: 'h3'\n },\n text: {\n type: String\n },\n textTag: {\n type: String,\n default: 'p'\n },\n background: {\n type: String\n }\n },\n computed: {\n contentClasses: function contentClasses() {\n return ['carousel-caption', this.contentVisibleUp ? 'd-none' : '', this.contentVisibleUp ? 'd-' + this.contentVisibleUp + '-block' : ''];\n },\n computedWidth: function computedWidth() {\n // Use local width, or try parent width\n return this.imgWidth || this.$parent.imgWidth;\n },\n computedHeight: function computedHeight() {\n // Use local height, or try parent height\n return this.imgHeight || this.$parent.imgHeight;\n }\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\n// Blank image with fill template\nvar BLANK_TEMPLATE = '<svg width=\"%{w}\" height=\"%{h}\" ' + 'xmlns=\"http://www.w3.org/2000/svg\" ' + 'viewBox=\"0 0 %{w} %{h}\" preserveAspectRatio=\"none\">' + '<rect width=\"100%\" height=\"100%\" style=\"fill:%{f};\"></rect>' + '</svg>';\n\nfunction makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', String(width)).replace('%{h}', String(height)).replace('%{f}', color));\n return 'data:image/svg+xml;charset=UTF-8,' + src;\n}\n\nexport var props = {\n src: {\n type: String,\n default: null\n },\n alt: {\n type: String,\n default: null\n },\n width: {\n type: [Number, String],\n default: null\n },\n height: {\n type: [Number, String],\n default: null\n },\n block: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n fluidGrow: {\n // Gives fluid images class `w-100` to make them grow to fit container\n type: Boolean,\n default: false\n },\n rounded: {\n // rounded can be:\n // false: no rounding of corners\n // true: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n type: [Boolean, String],\n default: false\n },\n thumbnail: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n center: {\n type: Boolean,\n default: false\n },\n blank: {\n type: Boolean,\n default: false\n },\n blankColor: {\n type: String,\n default: 'transparent'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n\n var src = props.src;\n var width = parseInt(props.width, 10) ? parseInt(props.width, 10) : null;\n var height = parseInt(props.height, 10) ? parseInt(props.height, 10) : null;\n var align = null;\n var block = props.block;\n if (props.blank) {\n if (!height && Boolean(width)) {\n height = width;\n } else if (!width && Boolean(height)) {\n width = height;\n }\n if (!width && !height) {\n width = 1;\n height = 1;\n }\n // Make a blank SVG image\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent');\n }\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n return h('img', mergeData(data, {\n attrs: {\n 'src': src,\n 'alt': props.alt,\n 'width': width ? String(width) : null,\n 'height': height ? String(height) : null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || props.fluidGrow,\n 'w-100': props.fluidGrow,\n 'rounded': props.rounded === '' || props.rounded === true\n }, _defineProperty(_class, 'rounded-' + props.rounded, typeof props.rounded === 'string' && props.rounded !== ''), _defineProperty(_class, align, Boolean(align)), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n};","/**\n * Log a warning message to the console with bootstrap-vue formatting sugar.\n * @param {string} message\n */\n/* istanbul ignore next */\nfunction warn(message) {\n console.warn(\"[Bootstrap-Vue warn]: \" + message);\n}\n\nexport default warn;","import bContainer from './container';\nimport bRow from './row';\nimport bCol from './col';\nimport bFormRow from './form-row';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bContainer: bContainer,\n bRow: bRow,\n bCol: bCol,\n bFormRow: bFormRow\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n fluid: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n class: {\n 'container': !props.fluid,\n 'container-fluid': props.fluid\n }\n }), children);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport { arrayIncludes } from '../../utils/array';\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center'];\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n noGutters: {\n type: Boolean,\n default: false\n },\n alignV: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(COMMON_ALIGNMENT.concat(['baseline', 'stretch']), str);\n }\n },\n alignH: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around']), str);\n }\n },\n alignContent: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around', 'stretch']), str);\n }\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: (_class = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_class, 'align-items-' + props.alignV, props.alignV), _defineProperty(_class, 'justify-content-' + props.alignH, props.alignH), _defineProperty(_class, 'align-content-' + props.alignContent, props.alignContent), _class)\n }), children);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport memoize from '../../utils/memoize';\nimport suffixPropName from '../../utils/suffix-prop-name';\nimport { keys, assign, create } from '../../utils/object';\nimport { arrayIncludes } from '../../utils/array';\n\n/**\n * Generates a prop object with a type of\n * [Boolean, String, Number]\n */\nfunction boolStrNum() {\n return {\n type: [Boolean, String, Number],\n default: false\n };\n}\n\n/**\n * Generates a prop object with a type of\n * [String, Number]\n */\nfunction strNum() {\n return {\n type: [String, Number],\n default: null\n };\n}\n\nexport var computeBkPtClass = memoize(function computeBkPt(type, breakpoint, val) {\n var className = type;\n if (val === false || val === null || val === undefined) {\n return undefined;\n }\n if (breakpoint) {\n className += '-' + breakpoint;\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <b-col sm /> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase();\n }\n // .order-md-6\n className += '-' + val;\n return className.toLowerCase();\n});\n\nvar BREAKPOINTS = ['sm', 'md', 'lg', 'xl'];\n// Supports classes like: .col-sm, .col-md-6, .col-lg-auto\nvar breakpointCol = BREAKPOINTS.reduce(\n// eslint-disable-next-line no-sequences\nfunction (propMap, breakpoint) {\n return propMap[breakpoint] = boolStrNum(), propMap;\n}, create(null));\n// Supports classes like: .offset-md-1, .offset-lg-12\nvar breakpointOffset = BREAKPOINTS.reduce(\n// eslint-disable-next-line no-sequences\nfunction (propMap, breakpoint) {\n return propMap[suffixPropName(breakpoint, 'offset')] = strNum(), propMap;\n}, create(null));\n// Supports classes like: .order-md-1, .order-lg-12\nvar breakpointOrder = BREAKPOINTS.reduce(\n// eslint-disable-next-line no-sequences\nfunction (propMap, breakpoint) {\n return propMap[suffixPropName(breakpoint, 'order')] = strNum(), propMap;\n}, create(null));\n\n// For loop doesn't need to check hasOwnProperty\n// when using an object created from null\nvar breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n});\n\nexport var props = assign({}, breakpointCol, breakpointOffset, breakpointOrder, {\n tag: {\n type: String,\n default: 'div'\n },\n // Generic flexbox .col\n col: {\n type: Boolean,\n default: false\n },\n // .col-[1-12]|auto\n cols: strNum(),\n // .offset-[1-12]\n offset: strNum(),\n // Flex ordering utility .order-[1-12]\n order: strNum(),\n alignSelf: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(['auto', 'start', 'end', 'center', 'baseline', 'stretch'], str);\n }\n }\n});\n\n/**\n * We need \".col\" to default in when no other props are passed,\n * but always render when col=true.\n */\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var classList = [];\n // Loop through `col`, `offset`, `order` breakpoint props\n for (var type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n var _keys = breakpointPropMap[type];\n for (var i = 0; i < _keys.length; i++) {\n // computeBkPt(col, colSm => Sm, value=[String, Number, Boolean])\n var c = computeBkPtClass(type, _keys[i].replace(type, ''), props[_keys[i]]);\n // If a class is returned, push it onto the array.\n if (c) {\n classList.push(c);\n }\n }\n }\n\n classList.push((_classList$push = {\n // Default to .col if no other classes generated nor `cols` specified.\n col: props.col || classList.length === 0 && !props.cols\n }, _defineProperty(_classList$push, 'col-' + props.cols, props.cols), _defineProperty(_classList$push, 'offset-' + props.offset, props.offset), _defineProperty(_classList$push, 'order-' + props.order, props.order), _defineProperty(_classList$push, 'align-self-' + props.alignSelf, props.alignSelf), _classList$push));\n\n return h(props.tag, mergeData(data, { class: classList }), children);\n }\n};","import { create } from './object';\n\nexport default function memoize(fn) {\n var cache = create(null);\n\n return function memoizedFn() {\n var args = JSON.stringify(arguments);\n return cache[args] = cache[args] || fn.apply(null, arguments);\n };\n}","import upperFirst from './upper-first';\n\n/**\n * Suffix can be a falsey value so nothing is appended to string.\n * (helps when looping over props & some shouldn't change)\n * Use data last parameters to allow for currying.\n * @param {string} suffix\n * @param {string} str\n */\nexport default function suffixPropName(suffix, str) {\n return str + (suffix ? upperFirst(suffix) : '');\n}","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'form-row'\n }), children);\n }\n};","import bCollapse from './collapse';\nimport togglePlugin from '../../directives/toggle';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bCollapse: bCollapse\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n Vue.use(togglePlugin);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import listenOnRootMixin from '../../mixins/listen-on-root';\nimport { hasClass, reflow } from '../../utils/dom';\n\n// Events we emit on $root\nvar EVENT_STATE = 'bv::collapse::state';\nvar EVENT_ACCORDION = 'bv::collapse::accordion';\n// Events we listen to on $root\nvar EVENT_TOGGLE = 'bv::toggle::collapse';\n\nexport default {\n mixins: [listenOnRootMixin],\n render: function render(h) {\n var content = h(this.tag, {\n class: this.classObject,\n directives: [{ name: 'show', value: this.show }],\n attrs: { id: this.id || null },\n on: { click: this.clickHandler }\n }, [this.$slots.default]);\n return h('transition', {\n props: {\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: '',\n leaveClass: '',\n leaveActiveClass: 'collapsing',\n leaveToClass: ''\n },\n on: {\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [content]);\n },\n data: function data() {\n return {\n show: this.visible,\n transitioning: false\n };\n },\n\n model: {\n prop: 'visible',\n event: 'input'\n },\n props: {\n id: {\n type: String,\n required: true\n },\n isNav: {\n type: Boolean,\n default: false\n },\n accordion: {\n type: String,\n default: null\n },\n visible: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n }\n },\n watch: {\n visible: function visible(newVal) {\n if (newVal !== this.show) {\n this.show = newVal;\n }\n },\n show: function show(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.emitState();\n }\n }\n },\n computed: {\n classObject: function classObject() {\n return {\n 'navbar-collapse': this.isNav,\n 'collapse': !this.transitioning,\n 'show': this.show && !this.transitioning\n };\n }\n },\n methods: {\n toggle: function toggle() {\n this.show = !this.show;\n },\n onEnter: function onEnter(el) {\n el.style.height = 0;\n reflow(el);\n el.style.height = el.scrollHeight + 'px';\n this.transitioning = true;\n // This should be moved out so we can add cancellable events\n this.$emit('show');\n },\n onAfterEnter: function onAfterEnter(el) {\n el.style.height = null;\n this.transitioning = false;\n this.$emit('shown');\n },\n onLeave: function onLeave(el) {\n el.style.height = 'auto';\n el.style.display = 'block';\n el.style.height = el.getBoundingClientRect().height + 'px';\n reflow(el);\n this.transitioning = true;\n el.style.height = 0;\n // This should be moved out so we can add cancellable events\n this.$emit('hide');\n },\n onAfterLeave: function onAfterLeave(el) {\n el.style.height = null;\n this.transitioning = false;\n this.$emit('hidden');\n },\n emitState: function emitState() {\n this.$emit('input', this.show);\n // Let v-b-toggle know the state of this collapse\n this.$root.$emit(EVENT_STATE, this.id, this.show);\n if (this.accordion && this.show) {\n // Tell the other collapses in this accordion to close\n this.$root.$emit(EVENT_ACCORDION, this.id, this.accordion);\n }\n },\n clickHandler: function clickHandler(evt) {\n // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n var el = evt.target;\n if (!this.isNav || !el || getComputedStyle(this.$el).display !== 'block') {\n return;\n }\n if (hasClass(el, 'nav-link') || hasClass(el, 'dropdown-item')) {\n this.show = false;\n }\n },\n handleToggleEvt: function handleToggleEvt(target) {\n if (target !== this.id) {\n return;\n }\n this.toggle();\n },\n handleAccordionEvt: function handleAccordionEvt(openedId, accordion) {\n if (!this.accordion || accordion !== this.accordion) {\n return;\n }\n if (openedId === this.id) {\n // Open this collapse if not shown\n if (!this.show) {\n this.toggle();\n }\n } else {\n // Close this collapse if shown\n if (this.show) {\n this.toggle();\n }\n }\n },\n handleResize: function handleResize() {\n // Handler for orientation/resize to set collapsed state in nav/navbar\n this.show = getComputedStyle(this.$el).display === 'block';\n }\n },\n created: function created() {\n // Listen for toggle events to open/close us\n this.listenOnRoot(EVENT_TOGGLE, this.handleToggleEvt);\n // Listen to otehr collapses for accordion events\n this.listenOnRoot(EVENT_ACCORDION, this.handleAccordionEvt);\n },\n mounted: function mounted() {\n if (this.isNav && typeof document !== 'undefined') {\n // Set up handlers\n window.addEventListener('resize', this.handleResize, false);\n window.addEventListener('orientationchange', this.handleResize, false);\n this.handleResize();\n }\n this.emitState();\n },\n beforeDestroy: function beforeDestroy() {\n if (this.isNav && typeof document !== 'undefined') {\n window.removeEventListener('resize', this.handleResize, false);\n window.removeEventListener('orientationchange', this.handleResize, false);\n }\n }\n};","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); } }\n\nimport { isArray } from '../utils/array';\n/**\n * Issue #569: collapse::toggle::state triggered too many times\n * @link https://github.com/bootstrap-vue/bootstrap-vue/issues/569\n */\n\nvar BVRL = '__BV_root_listeners__';\n\nexport default {\n methods: {\n /**\n * Safely register event listeners on the root Vue node.\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on root and is destroyed,\n * this orphans a callback because the node is gone,\n * but the root does not clear the callback.\n *\n * This adds a non-reactive prop to a vm on the fly\n * in order to avoid object observation and its performance costs\n * to something that needs no reactivity.\n * It should be highly unlikely there are any naming collisions.\n * @param {string} event\n * @param {function} callback\n * @chainable\n */\n listenOnRoot: function listenOnRoot(event, callback) {\n if (!this[BVRL] || !isArray(this[BVRL])) {\n this[BVRL] = [];\n }\n this[BVRL].push({ event: event, callback: callback });\n this.$root.$on(event, callback);\n return this;\n },\n\n\n /**\n * Convenience method for calling vm.$emit on vm.$root.\n * @param {string} event\n * @param {*} args\n * @chainable\n */\n emitOnRoot: function emitOnRoot(event) {\n var _$root;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_$root = this.$root).$emit.apply(_$root, [event].concat(_toConsumableArray(args)));\n return this;\n }\n },\n\n beforeDestroy: function beforeDestroy() {\n if (this[BVRL] && isArray(this[BVRL])) {\n while (this[BVRL].length > 0) {\n // shift to process in order\n var _BVRL$shift = this[BVRL].shift(),\n event = _BVRL$shift.event,\n callback = _BVRL$shift.callback;\n\n this.$root.$off(event, callback);\n }\n }\n }\n};","import bToggle from './toggle';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bToggle: bToggle\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import target from '../../utils/target';\nimport { setAttr, addClass, removeClass } from '../../utils/dom';\n\n// Are we client side?\nvar inBrowser = typeof window !== 'undefined';\n\n// target listen types\nvar listenTypes = { click: true\n\n // Property key for handler storage\n};var BVT = '__BV_toggle__';\n\n// Emitted Control Event for collapse (emitted to collapse)\nvar EVENT_TOGGLE = 'bv::toggle::collapse';\n\n// Listen to Event for toggle state update (Emited by collapse)\nvar EVENT_STATE = 'bv::collapse::state';\n\nexport default {\n bind: function bind(el, binding, vnode) {\n var targets = target(vnode, binding, listenTypes, function (_ref) {\n var targets = _ref.targets,\n vnode = _ref.vnode;\n\n targets.forEach(function (target) {\n vnode.context.$root.$emit(EVENT_TOGGLE, target);\n });\n });\n\n if (inBrowser && vnode.context && targets.length > 0) {\n // Add aria attributes to element\n setAttr(el, 'aria-controls', targets.join(' '));\n setAttr(el, 'aria-expanded', 'false');\n if (el.tagName !== 'BUTTON') {\n // If element is not a button, we add `role=\"button\"` for accessibility\n setAttr(el, 'role', 'button');\n }\n\n // Toggle state hadnler, stored on element\n el[BVT] = function toggleDirectiveHandler(id, state) {\n if (targets.indexOf(id) !== -1) {\n // Set aria-expanded state\n setAttr(el, 'aria-expanded', state ? 'true' : 'false');\n // Set/Clear 'collapsed' class state\n if (state) {\n removeClass(el, 'collapsed');\n } else {\n addClass(el, 'collapsed');\n }\n }\n };\n\n // Listen for toggle state changes\n vnode.context.$root.$on(EVENT_STATE, el[BVT]);\n }\n },\n unbind: function unbind(el, binding, vnode) {\n if (el[BVT]) {\n // Remove our $root listener\n vnode.context.$root.$off(EVENT_STATE, el[BVT]);\n el[BVT] = null;\n }\n }\n};","import { keys } from '../utils/object';\n\nvar allListenTypes = { hover: true, click: true, focus: true };\n\nvar BVBoundListeners = '__BV_boundEventListeners__';\n\nvar bindTargets = function bindTargets(vnode, binding, listenTypes, fn) {\n var targets = keys(binding.modifiers || {}).filter(function (t) {\n return !allListenTypes[t];\n });\n\n if (binding.value) {\n targets.push(binding.value);\n }\n\n var listener = function listener() {\n fn({ targets: targets, vnode: vnode });\n };\n\n keys(allListenTypes).forEach(function (type) {\n if (listenTypes[type] || binding.modifiers[type]) {\n vnode.elm.addEventListener(type, listener);\n var boundListeners = vnode.elm[BVBoundListeners] || {};\n boundListeners[type] = boundListeners[type] || [];\n boundListeners[type].push(listener);\n vnode.elm[BVBoundListeners] = boundListeners;\n }\n });\n\n // Return the list of targets\n return targets;\n};\n\nvar unbindTargets = function unbindTargets(vnode, binding, listenTypes) {\n keys(allListenTypes).forEach(function (type) {\n if (listenTypes[type] || binding.modifiers[type]) {\n var boundListeners = vnode.elm[BVBoundListeners] && vnode.elm[BVBoundListeners][type];\n if (boundListeners) {\n boundListeners.forEach(function (listener) {\n return vnode.elm.removeEventListener(type, listener);\n });\n delete vnode.elm[BVBoundListeners][type];\n }\n }\n });\n};\n\nexport { bindTargets, unbindTargets };\n\nexport default bindTargets;","import bDropdown from './dropdown';\nimport bDropdownItem from './dropdown-item';\nimport bDropdownItemButton from './dropdown-item-button';\nimport bDropdownHeader from './dropdown-header';\nimport bDropdownDivider from './dropdown-divider';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bDropdown: bDropdown,\n bDd: bDropdown,\n bDropdownItem: bDropdownItem,\n bDdItem: bDropdownItem,\n bDropdownItemButton: bDropdownItemButton,\n bDropdownItemBtn: bDropdownItemButton,\n bDdItemButton: bDropdownItemButton,\n bDdItemBtn: bDropdownItemButton,\n bDropdownHeader: bDropdownHeader,\n bDdHeader: bDropdownHeader,\n bDropdownDivider: bDropdownDivider,\n bDdDivider: bDropdownDivider\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport dropdownMixin from '../../mixins/dropdown';\nimport bButton from '../button/button';\n\nimport './dropdown.css';\n\nexport default {\n mixins: [idMixin, dropdownMixin],\n components: { bButton: bButton },\n render: function render(h) {\n var split = h(false);\n if (this.split) {\n split = h('b-button', {\n ref: 'button',\n props: {\n disabled: this.disabled,\n variant: this.variant,\n size: this.size\n },\n attrs: {\n id: this.safeId('_BV_button_')\n },\n on: {\n click: this.click\n }\n }, [this.$slots['button-content'] || this.$slots.text || this.text]);\n }\n var toggle = h('b-button', {\n ref: 'toggle',\n class: this.toggleClasses,\n props: {\n variant: this.variant,\n size: this.size,\n disabled: this.disabled\n },\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': this.visible ? 'true' : 'false'\n },\n on: {\n click: this.toggle, // click\n keydown: this.toggle // enter, space, down\n }\n }, [this.split ? h('span', { class: ['sr-only'] }, [this.toggleText]) : this.$slots['button-content'] || this.$slots.text || this.text]);\n var menu = h('div', {\n ref: 'menu',\n class: this.menuClasses,\n attrs: {\n role: this.role,\n 'aria-labelledby': this.safeId(this.split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n mouseover: this.onMouseOver,\n keydown: this.onKeydown // tab, up, down, esc\n }\n }, [this.$slots.default]);\n return h('div', { attrs: { id: this.safeId() }, class: this.dropdownClasses }, [split, toggle, menu]);\n },\n\n props: {\n split: {\n type: Boolean,\n default: false\n },\n toggleText: {\n type: String,\n default: 'Toggle Dropdown'\n },\n size: {\n type: String,\n default: null\n },\n variant: {\n type: String,\n default: null\n },\n menuClass: {\n type: [String, Array],\n default: null\n },\n toggleClass: {\n type: [String, Array],\n default: null\n },\n noCaret: {\n type: Boolean,\n default: false\n },\n role: {\n type: String,\n default: 'menu'\n },\n boundary: {\n // String: `scrollParent`, `window` or `viewport`\n // Object: HTML Element reference\n type: [String, Object],\n default: 'scrollParent'\n }\n },\n computed: {\n dropdownClasses: function dropdownClasses() {\n var position = '';\n // Position `static` is needed to allow menu to \"breakout\" of the scrollParent boundaries\n // when boundary is anything other than `scrollParent`\n // See https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n if (this.boundary !== 'scrollParent' || !this.boundary) {\n position = 'position-static';\n }\n return ['btn-group', 'b-dropdown', 'dropdown', this.dropup ? 'dropup' : '', this.visible ? 'show' : '', position];\n },\n menuClasses: function menuClasses() {\n return ['dropdown-menu', {\n 'dropdown-menu-right': this.right,\n 'show': this.visible\n }, this.menuClass];\n },\n toggleClasses: function toggleClasses() {\n return [{\n 'dropdown-toggle': !this.noCaret || this.split,\n 'dropdown-toggle-split': this.split\n }, this.toggleClass];\n }\n }\n};","import Popper from 'popper.js';\nimport clickoutMixin from './clickout';\nimport listenOnRootMixin from './listen-on-root';\nimport { from as arrayFrom } from '../utils/array';\nimport { assign } from '../utils/object';\nimport KeyCodes from '../utils/key-codes';\nimport warn from '../utils/warn';\nimport { isVisible, closest, selectAll, getAttr, eventOn, eventOff } from '../utils/dom';\n\n// Return an Array of visible items\nfunction filterVisible(els) {\n return (els || []).filter(isVisible);\n}\n\n// Dropdown item CSS selectors\n// TODO: .dropdown-form handling\nvar ITEM_SELECTOR = '.dropdown-item:not(.disabled):not([disabled])';\n\n// Popper attachment positions\nvar AttachmentMap = {\n // DropUp Left Align\n TOP: 'top-start',\n // DropUp Right Align\n TOPEND: 'top-end',\n // Dropdown left Align\n BOTTOM: 'bottom-start',\n // Dropdown Right Align\n BOTTOMEND: 'bottom-end'\n};\n\nexport default {\n mixins: [clickoutMixin, listenOnRootMixin],\n props: {\n disabled: {\n type: Boolean,\n default: false\n },\n text: {\n // Button label\n type: String,\n default: ''\n },\n dropup: {\n // place on top if possible\n type: Boolean,\n default: false\n },\n right: {\n // Right align menu (default is left align)\n type: Boolean,\n default: false\n },\n offset: {\n // Number of pixels to offset menu, or a CSS unit value (i.e. 1px, 1rem, etc)\n type: [Number, String],\n default: 0\n },\n noFlip: {\n // Disable auto-flipping of menu from bottom<=>top\n type: Boolean,\n default: false\n },\n popperOpts: {\n type: Object,\n default: function _default() {}\n }\n },\n data: function data() {\n return {\n visible: false,\n inNavbar: null\n };\n },\n created: function created() {\n // Create non-reactive property\n this._popper = null;\n },\n mounted: function mounted() {\n // To keep one dropdown opened on page\n this.listenOnRoot('bv::dropdown::shown', this.rootCloseListener);\n // Hide when clicked on links\n this.listenOnRoot('clicked::link', this.rootCloseListener);\n // Use new namespaced events\n this.listenOnRoot('bv::link::clicked', this.rootCloseListener);\n },\n\n /* istanbul ignore next: not easy to test */\n deactivated: function deactivated() {\n // In case we are inside a `<keep-alive>`\n this.visible = false;\n this.setTouchStart(false);\n this.removePopper();\n },\n\n /* istanbul ignore next: not easy to test */\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.setTouchStart(false);\n this.removePopper();\n },\n\n watch: {\n visible: function visible(state, old) {\n if (state === old) {\n // Avoid duplicated emits\n return;\n }\n if (state) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n },\n disabled: function disabled(state, old) {\n if (state !== old && state && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n computed: {\n toggler: function toggler() {\n return this.$refs.toggle.$el || this.$refs.toggle;\n }\n },\n methods: {\n showMenu: function showMenu() {\n if (this.disabled) {\n return;\n }\n // TODO: move emit show to visible watcher, to allow cancelling of show\n this.$emit('show');\n // Ensure other menus are closed\n this.emitOnRoot('bv::dropdown::shown', this);\n\n // Are we in a navbar ?\n if (this.inNavbar === null && this.isNav) {\n this.inNavbar = Boolean(closest('.navbar', this.$el));\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n /* istnbul ignore next: can't test popper in JSDOM */\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n warn('b-dropdown: Popper.js not found. Falling back to CSS positioning.');\n } else {\n // for dropup with alignment we use the parent element as popper container\n var element = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle;\n // Make sure we have a reference to an element, not a component!\n element = element.$el || element;\n // Instantiate popper.js\n this.createPopper(element);\n }\n }\n\n this.setTouchStart(true);\n this.$emit('shown');\n\n // Focus on the first item on show\n this.$nextTick(this.focusFirstItem);\n },\n hideMenu: function hideMenu() {\n // TODO: move emit hide to visible watcher, to allow cancelling of hide\n this.$emit('hide');\n this.setTouchStart(false);\n this.emitOnRoot('bv::dropdown::hidden', this);\n this.$emit('hidden');\n this.removePopper();\n },\n createPopper: function createPopper(element) {\n this.removePopper();\n this._popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n removePopper: function removePopper() {\n if (this._popper) {\n // Ensure popper event listeners are removed cleanly\n this._popper.destroy();\n }\n this._popper = null;\n },\n getPopperConfig /* istanbul ignore next: can't test popper in JSDOM */: function getPopperConfig() {\n var placement = AttachmentMap.BOTTOM;\n if (this.dropup && this.right) {\n // dropup + right\n placement = AttachmentMap.TOPEND;\n } else if (this.dropup) {\n // dropup + left\n placement = AttachmentMap.TOP;\n } else if (this.right) {\n // dropdown + right\n placement = AttachmentMap.BOTTOMEND;\n }\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n if (this.boundary) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: this.boundary\n };\n }\n return assign(popperConfig, this.popperOpts || {});\n },\n setTouchStart: function setTouchStart(on) {\n var _this = this;\n\n /*\n * If this is a touch-enabled device we add extra\n * empty mouseover listeners to the body's immediate children;\n * only needed because of broken event delegation on iOS\n * https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n */\n if ('ontouchstart' in document.documentElement) {\n var children = arrayFrom(document.body.children);\n children.forEach(function (el) {\n if (on) {\n eventOn('mouseover', _this._noop);\n } else {\n eventOff('mouseover', _this._noop);\n }\n });\n }\n },\n\n /* istanbul ignore next: not easy to test */\n _noop: function _noop() {\n // Do nothing event handler (used in touchstart event handler)\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n clickOutListener: function clickOutListener() {\n this.visible = false;\n },\n show: function show() {\n // Public method to show dropdown\n if (this.disabled) {\n return;\n }\n this.visible = true;\n },\n hide: function hide() {\n // Public method to hide dropdown\n if (this.disabled) {\n return;\n }\n this.visible = false;\n },\n toggle: function toggle(evt) {\n // Called only by a button that toggles the menu\n evt = evt || {};\n var type = evt.type;\n var key = evt.keyCode;\n if (type !== 'click' && !(type === 'keydown' && (key === KeyCodes.ENTER || key === KeyCodes.SPACE || key === KeyCodes.DOWN))) {\n // We only toggle on Click, Enter, Space, and Arrow Down\n return;\n }\n evt.preventDefault();\n evt.stopPropagation();\n if (this.disabled) {\n this.visible = false;\n return;\n }\n // Toggle visibility\n this.visible = !this.visible;\n },\n click: function click(evt) {\n // Calle only in split button mode, for the split button\n if (this.disabled) {\n this.visible = false;\n return;\n }\n this.$emit('click', evt);\n },\n\n /* istanbul ignore next: not easy to test */\n onKeydown: function onKeydown(evt) {\n // Called from dropdown menu context\n var key = evt.keyCode;\n if (key === KeyCodes.ESC) {\n // Close on ESC\n this.onEsc(evt);\n } else if (key === KeyCodes.TAB) {\n // Close on tab out\n this.onTab(evt);\n } else if (key === KeyCodes.DOWN) {\n // Down Arrow\n this.focusNext(evt, false);\n } else if (key === KeyCodes.UP) {\n // Up Arrow\n this.focusNext(evt, true);\n }\n },\n\n /* istanbul ignore next: not easy to test */\n onEsc: function onEsc(evt) {\n if (this.visible) {\n this.visible = false;\n evt.preventDefault();\n evt.stopPropagation();\n // Return focus to original trigger button\n this.$nextTick(this.focusToggler);\n }\n },\n\n /* istanbul ignore next: not easy to test */\n onTab: function onTab(evt) {\n if (this.visible) {\n // TODO: Need special handler for dealing with form inputs\n // Tab, if in a text-like input, we should just focus next item in the dropdown\n // Note: Inputs are in a special .dropdown-form container\n this.visible = false;\n }\n },\n onFocusOut: function onFocusOut(evt) {\n if (this.$refs.menu.contains(evt.relatedTarget)) {\n return;\n }\n this.visible = false;\n },\n\n /* istanbul ignore next: not easy to test */\n onMouseOver: function onMouseOver(evt) {\n // Focus the item on hover\n // TODO: Special handling for inputs? Inputs are in a special .dropdown-form container\n var item = evt.target;\n if (item.classList.contains('dropdown-item') && !item.disabled && !item.classList.contains('disabled') && item.focus) {\n item.focus();\n }\n },\n focusNext: function focusNext(evt, up) {\n var _this2 = this;\n\n if (!this.visible) {\n return;\n }\n evt.preventDefault();\n evt.stopPropagation();\n this.$nextTick(function () {\n var items = _this2.getItems();\n if (items.length < 1) {\n return;\n }\n var index = items.indexOf(evt.target);\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n if (index < 0) {\n index = 0;\n }\n _this2.focusItem(index, items);\n });\n },\n focusItem: function focusItem(idx, items) {\n var el = items.find(function (el, i) {\n return i === idx;\n });\n if (el && getAttr(el, 'tabindex') !== '-1') {\n el.focus();\n }\n },\n getItems: function getItems() {\n // Get all items\n return filterVisible(selectAll(ITEM_SELECTOR, this.$refs.menu));\n },\n getFirstItem: function getFirstItem() {\n // Get the first non-disabled item\n var item = this.getItems()[0];\n return item || null;\n },\n focusFirstItem: function focusFirstItem() {\n var item = this.getFirstItem();\n if (item) {\n this.focusItem(0, [item]);\n }\n },\n focusToggler: function focusToggler() {\n var toggler = this.toggler;\n if (toggler && toggler.focus) {\n toggler.focus();\n }\n }\n }\n};","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","export default {\n mounted: function mounted() {\n if (typeof document !== 'undefined') {\n document.documentElement.addEventListener('click', this._clickOutListener);\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (typeof document !== 'undefined') {\n document.documentElement.removeEventListener('click', this._clickOutListener);\n }\n },\n\n methods: {\n _clickOutListener: function _clickOutListener(e) {\n if (!this.$el.contains(e.target)) {\n if (this.clickOutListener) {\n this.clickOutListener();\n }\n }\n }\n }\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/index.js!./dropdown.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1da23e0d\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../css-loader/index.js!./dropdown.css\", function() {\n var newContent = require(\"!!../../../../css-loader/index.js!./dropdown.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* workaround for https://github.com/bootstrap-vue/bootstrap-vue/issues/1560 */\\n/* source: _input-group.scss */\\n\\n.input-group > .input-group-prepend > .b-dropdown > .btn,\\n.input-group > .input-group-append:not(:last-child) > .b-dropdown > .btn,\\n.input-group > .input-group-append:last-child > .b-dropdown:not(:last-child):not(.dropdown-toggle) > .btn {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.input-group > .input-group-append > .b-dropdown > .btn,\\n.input-group > .input-group-prepend:not(:first-child) > .b-dropdown > .btn,\\n.input-group > .input-group-prepend:first-child > .b-dropdown:not(:first-child) > .btn {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\", \"\"]);\n\n// exports\n","import { mergeData } from 'vue-functional-data-merge';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nexport var props = linkPropsFactory();\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(Link, mergeData(data, {\n props: props,\n staticClass: 'dropdown-item',\n attrs: { role: 'menuitem' }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n disabled: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n parent = _ref.parent,\n children = _ref.children;\n\n return h('button', mergeData(data, {\n props: props,\n staticClass: 'dropdown-item',\n attrs: { role: 'menuitem', type: 'button', disabled: props.disabled },\n on: {\n click: function click(e) {\n parent.$root.$emit('clicked::link', e);\n }\n }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'h6'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'dropdown-header',\n attrs: { id: props.id || null }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'dropdown-divider',\n attrs: { role: 'separator' }\n }));\n }\n};","import bEmbed from './embed';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bEmbed: bEmbed\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport { arrayIncludes } from '../../utils/array';\n\nexport var props = {\n type: {\n type: String,\n default: 'iframe',\n validator: function validator(str) {\n return arrayIncludes(['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy'], str);\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n aspect: {\n type: String,\n default: '16by9'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, {\n ref: data.ref,\n staticClass: 'embed-responsive',\n class: _defineProperty({}, 'embed-responsive-' + props.aspect, Boolean(props.aspect))\n }, [h(props.type, mergeData(data, { ref: '', staticClass: 'embed-responsive-item' }), children)]);\n }\n};","import bForm from './form';\nimport bFormRow from './form-row';\nimport bFormText from './form-text';\nimport bFormInvalidFeedback from './form-invalid-feedback';\nimport bFormValidFeedback from './form-valid-feedback';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bForm: bForm,\n bFormRow: bFormRow,\n bFormText: bFormText,\n bFormInvalidFeedback: bFormInvalidFeedback,\n bFormFeedback: bFormInvalidFeedback,\n bFormValidFeedback: bFormValidFeedback\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n inline: {\n type: Boolean,\n default: false\n },\n novalidate: {\n type: Boolean,\n default: false\n },\n validated: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n};","import bFormRow from '../layout/form-row';\n\nexport default bFormRow;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'small'\n },\n textVariant: {\n type: String,\n default: 'muted'\n },\n inline: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'form-text': !props.inline\n }, 'text-' + props.textVariant, Boolean(props.textVariant)),\n attrs: {\n id: props.id\n }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n forceShow: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'invalid-feedback',\n class: { 'd-block': props.forceShow },\n attrs: { id: props.id }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n forceShow: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'valid-feedback',\n class: { 'd-block': props.forceShow },\n attrs: { id: props.id }\n }), children);\n }\n};","import bFormGroup from './form-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormGroup: bFormGroup,\n bFormFieldset: bFormGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import warn from '../../utils/warn';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr } from '../../utils/dom';\nimport idMixin from '../../mixins/id';\nimport formStateMixin from '../../mixins/form-state';\nimport bFormRow from '../layout/form-row';\nimport bFormText from '../form/form-text';\nimport bFormInvalidFeedback from '../form/form-invalid-feedback';\nimport bFormValidFeedback from '../form/form-valid-feedback';\n\n// Selector for finding firt input in the form-group\nvar SELECTOR = 'input:not(:disabled),textarea:not(:disabled),select:not(:disabled)';\n\nexport default {\n mixins: [idMixin, formStateMixin],\n components: { bFormRow: bFormRow, bFormText: bFormText, bFormInvalidFeedback: bFormInvalidFeedback, bFormValidFeedback: bFormValidFeedback },\n render: function render(h) {\n var $slots = this.$slots;\n\n // Label / Legend\n var legend = h(false);\n if (this.hasLabel) {\n var children = $slots['label'];\n var legendTag = this.labelFor ? 'label' : 'legend';\n var legendDomProps = children ? {} : { innerHTML: this.label };\n var legendAttrs = { id: this.labelId, for: this.labelFor || null };\n var legendClick = this.labelFor || this.labelSrOnly ? {} : { click: this.legendClick };\n if (this.horizontal) {\n // Horizontal layout with label\n if (this.labelSrOnly) {\n // SR Only we wrap label/legend in a div to preserve layout\n children = h(legendTag, { class: ['sr-only'], attrs: legendAttrs, domProps: legendDomProps }, children);\n legend = h('div', { class: this.labelLayoutClasses }, [children]);\n } else {\n legend = h(legendTag, {\n class: [this.labelLayoutClasses, this.labelClasses],\n attrs: legendAttrs,\n domProps: legendDomProps,\n on: legendClick\n }, children);\n }\n } else {\n // Vertical layout with label\n legend = h(legendTag, {\n class: this.labelSrOnly ? ['sr-only'] : this.labelClasses,\n attrs: legendAttrs,\n domProps: legendDomProps,\n on: legendClick\n }, children);\n }\n } else if (this.horizontal) {\n // No label but has horizontal layout, so we need a spacer element for layout\n legend = h('div', { class: this.labelLayoutClasses });\n }\n\n // Invalid feeback text (explicitly hidden if state is valid)\n var invalidFeedback = h(false);\n if (this.hasInvalidFeedback) {\n var domProps = {};\n if (!$slots['invalid-feedback'] && !$slots['feedback']) {\n domProps = { innerHTML: this.invalidFeedback || this.feedback || '' };\n }\n invalidFeedback = h('b-form-invalid-feedback', {\n props: {\n id: this.invalidFeedbackId,\n forceShow: this.computedState === false\n },\n attrs: {\n role: 'alert',\n 'aria-live': 'assertive',\n 'aria-atomic': 'true'\n },\n domProps: domProps\n }, $slots['invalid-feedback'] || $slots['feedback']);\n }\n\n // Valid feeback text (explicitly hidden if state is invalid)\n var validFeedback = h(false);\n if (this.hasValidFeedback) {\n var _domProps = $slots['valid-feedback'] ? {} : { innerHTML: this.validFeedback || '' };\n validFeedback = h('b-form-valid-feedback', {\n props: {\n id: this.validFeedbackId,\n forceShow: this.computedState === true\n },\n attrs: {\n role: 'alert',\n 'aria-live': 'assertive',\n 'aria-atomic': 'true'\n },\n domProps: _domProps\n }, $slots['valid-feedback']);\n }\n\n // Form help text (description)\n var description = h(false);\n if (this.hasDescription) {\n var _domProps2 = $slots['description'] ? {} : { innerHTML: this.description || '' };\n description = h('b-form-text', { attrs: { id: this.descriptionId }, domProps: _domProps2 }, $slots['description']);\n }\n\n // Build content layout\n var content = h('div', {\n ref: 'content',\n class: this.inputLayoutClasses,\n attrs: this.labelFor ? {} : { role: 'group', 'aria-labelledby': this.labelId }\n }, [$slots['default'], invalidFeedback, validFeedback, description]);\n\n // Generate main form-group wrapper\n return h(this.labelFor ? 'div' : 'fieldset', {\n class: this.groupClasses,\n attrs: {\n id: this.safeId(),\n disabled: this.disabled,\n role: 'group',\n 'aria-invalid': this.computedState === false ? 'true' : null,\n 'aria-labelledby': this.labelId,\n 'aria-describedby': this.labelFor ? null : this.describedByIds\n }\n }, this.horizontal ? [h('b-form-row', {}, [legend, content])] : [legend, content]);\n },\n\n props: {\n horizontal: {\n type: Boolean,\n default: false\n },\n labelCols: {\n type: [Number, String],\n default: 3,\n validator: function validator(value) {\n if (Number(value) >= 1 && Number(value) <= 11) {\n return true;\n }\n warn('b-form-group: label-cols must be a value between 1 and 11');\n return false;\n }\n },\n breakpoint: {\n type: String,\n default: 'sm'\n },\n labelTextAlign: {\n type: String,\n default: null\n },\n label: {\n type: String,\n default: null\n },\n labelFor: {\n type: String,\n default: null\n },\n labelSize: {\n type: String,\n default: null\n },\n labelSrOnly: {\n type: Boolean,\n default: false\n },\n labelClass: {\n type: [String, Array],\n default: null\n },\n description: {\n type: String,\n default: null\n },\n invalidFeedback: {\n type: String,\n default: null\n },\n feedback: {\n // Deprecated in favor of invalid-feedback\n type: String,\n default: null\n },\n validFeedback: {\n type: String,\n default: null\n },\n validated: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n groupClasses: function groupClasses() {\n return ['b-form-group', 'form-group', this.validated ? 'was-validated' : null, this.stateClass];\n },\n labelClasses: function labelClasses() {\n return ['col-form-label', this.labelSize ? 'col-form-label-' + this.labelSize : null, this.labelTextAlign ? 'text-' + this.labelTextAlign : null, this.horizontal ? null : 'pt-0', this.labelClass];\n },\n labelLayoutClasses: function labelLayoutClasses() {\n return [this.horizontal ? 'col-' + this.breakpoint + '-' + this.labelCols : null];\n },\n inputLayoutClasses: function inputLayoutClasses() {\n return [this.horizontal ? 'col-' + this.breakpoint + '-' + (12 - Number(this.labelCols)) : null];\n },\n hasLabel: function hasLabel() {\n return this.label || this.$slots['label'];\n },\n hasDescription: function hasDescription() {\n return this.description || this.$slots['description'];\n },\n hasInvalidFeedback: function hasInvalidFeedback() {\n if (this.computedState === true) {\n // If the form-group state is explicityly valid, we return false\n return false;\n }\n return this.invalidFeedback || this.feedback || this.$slots['invalid-feedback'] || this.$slots['feedback'];\n },\n hasValidFeedback: function hasValidFeedback() {\n if (this.computedState === false) {\n // If the form-group state is explicityly invalid, we return false\n return false;\n }\n return this.validFeedback || this.$slots['valid-feedback'];\n },\n labelId: function labelId() {\n return this.hasLabel ? this.safeId('_BV_label_') : null;\n },\n descriptionId: function descriptionId() {\n return this.hasDescription ? this.safeId('_BV_description_') : null;\n },\n invalidFeedbackId: function invalidFeedbackId() {\n return this.hasInvalidFeedback ? this.safeId('_BV_feedback_invalid_') : null;\n },\n validFeedbackId: function validFeedbackId() {\n return this.hasValidFeedback ? this.safeId('_BV_feedback_valid_') : null;\n },\n describedByIds: function describedByIds() {\n return [this.descriptionId, this.invalidFeedbackId, this.validFeedbackId].filter(function (i) {\n return i;\n }).join(' ') || null;\n }\n },\n watch: {\n describedByIds: function describedByIds(add, remove) {\n if (add !== remove) {\n this.setInputDescribedBy(add, remove);\n }\n }\n },\n methods: {\n legendClick: function legendClick(evt) {\n var tagName = evt.target ? evt.target.tagName : '';\n if (/^(input|select|textarea|label)$/i.test(tagName)) {\n // If clicked an input inside legend, we just let the default happen\n return;\n }\n // Focus the first non-disabled visible input when the legend element is clicked\n var inputs = selectAll(SELECTOR, this.$refs.content).filter(isVisible);\n if (inputs[0] && inputs[0].focus) {\n inputs[0].focus();\n }\n },\n setInputDescribedBy: function setInputDescribedBy(add, remove) {\n // Sets the `aria-describedby` attribute on the input if label-for is set.\n // Optionally accepts a string of IDs to remove as the second parameter\n if (this.labelFor && typeof document !== 'undefined') {\n var input = select('#' + this.labelFor, this.$refs.content);\n if (input) {\n var adb = 'aria-describedby';\n var ids = (getAttr(input, adb) || '').split(/\\s+/);\n remove = (remove || '').split(/\\s+/);\n // Update ID list, preserving any original IDs\n ids = ids.filter(function (id) {\n return remove.indexOf(id) === -1;\n }).concat(add || '').join(' ').trim();\n if (ids) {\n setAttr(input, adb, ids);\n } else {\n removeAttr(input, adb);\n }\n }\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Set the adia-describedby IDs on the input specified by label-for\n // We do this in a nextTick to ensure the children have finished rendering\n _this.setInputDescribedBy(_this.describedByIds);\n });\n }\n};","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true or 'valid' for is-valid\n * - false or 'invalid' for is-invalid\n * - null (or empty string) for no contextual state\n */\n\nexport default {\n props: {\n state: {\n // true/'valid', false/'invalid', '',null\n type: [Boolean, String],\n default: null\n }\n },\n computed: {\n computedState: function computedState() {\n var state = this.state;\n if (state === true || state === 'valid') {\n return true;\n } else if (state === false || state === 'invalid') {\n return false;\n }\n return null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n if (state === true) {\n return 'is-valid';\n } else if (state === false) {\n return 'is-invalid';\n }\n return null;\n }\n }\n};","import bFormCheckbox from './form-checkbox';\nimport bFormCheckboxGroup from './form-checkbox-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormCheckbox: bFormCheckbox,\n bCheckbox: bFormCheckbox,\n bCheck: bFormCheckbox,\n bFormCheckboxGroup: bFormCheckboxGroup,\n bCheckboxGroup: bFormCheckboxGroup,\n bCheckGroup: bFormCheckboxGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formRadioCheckMixin from '../../mixins/form-radio-check';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\nimport { isArray } from '../../utils/array';\nimport looseEqual from '../../utils/loose-equal';\n\nexport default {\n mixins: [idMixin, formRadioCheckMixin, formMixin, formSizeMixin, formStateMixin, formCustomMixin],\n render: function render(h) {\n var _this = this;\n\n var input = h('input', {\n ref: 'check',\n class: [this.is_ButtonMode ? '' : this.is_Plain ? 'form-check-input' : 'custom-control-input', this.get_StateClass],\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.computedLocalChecked,\n expression: 'computedLocalChecked'\n }],\n attrs: {\n id: this.safeId(),\n type: 'checkbox',\n name: this.get_Name,\n disabled: this.is_Disabled,\n required: this.is_Required,\n autocomplete: 'off',\n 'true-value': this.value,\n 'false-value': this.uncheckedValue,\n 'aria-required': this.is_Required ? 'true' : null\n },\n domProps: { value: this.value, checked: this.is_Checked },\n on: {\n focus: this.handleFocus,\n blur: this.handleFocus,\n change: this.emitChange,\n __c: function __c(evt) {\n var $$a = _this.computedLocalChecked;\n var $$el = evt.target;\n if (isArray($$a)) {\n // Multiple checkbox\n var $$v = _this.value;\n var $$i = _this._i($$a, $$v); // Vue's 'loose' Array.indexOf\n if ($$el.checked) {\n // Append value to array\n $$i < 0 && (_this.computedLocalChecked = $$a.concat([$$v]));\n } else {\n // Remove value from array\n $$i > -1 && (_this.computedLocalChecked = $$a.slice(0, $$i).concat($$a.slice($$i + 1)));\n }\n } else {\n // Single checkbox\n _this.computedLocalChecked = $$el.checked ? _this.value : _this.uncheckedValue;\n }\n }\n }\n });\n\n var description = h(this.is_ButtonMode ? 'span' : 'label', {\n class: this.is_ButtonMode ? null : this.is_Plain ? 'form-check-label' : 'custom-control-label',\n attrs: { for: this.is_ButtonMode ? null : this.safeId() }\n }, [this.$slots.default]);\n\n if (!this.is_ButtonMode) {\n return h('div', {\n class: [this.is_Plain ? 'form-check' : this.labelClasses, { 'form-check-inline': this.is_Plain && !this.is_Stacked }, { 'custom-control-inline': !this.is_Plain && !this.is_Stacked }]\n }, [input, description]);\n } else {\n return h('label', { class: [this.buttonClasses] }, [input, description]);\n }\n },\n\n props: {\n value: {\n default: true\n },\n uncheckedValue: {\n // Not applicable in multi-check mode\n default: false\n },\n indeterminate: {\n // Not applicable in multi-check mode\n type: Boolean,\n default: false\n }\n },\n computed: {\n labelClasses: function labelClasses() {\n return ['custom-control', 'custom-checkbox', this.get_Size ? 'form-control-' + this.get_Size : '', this.get_StateClass];\n },\n is_Checked: function is_Checked() {\n var checked = this.computedLocalChecked;\n if (isArray(checked)) {\n for (var i = 0; i < checked.length; i++) {\n if (looseEqual(checked[i], this.value)) {\n return true;\n }\n }\n return false;\n } else {\n return looseEqual(checked, this.value);\n }\n }\n },\n watch: {\n computedLocalChecked: function computedLocalChecked(newVal, oldVal) {\n if (looseEqual(newVal, oldVal)) {\n return;\n }\n this.$emit('input', newVal);\n this.$emit('update:indeterminate', this.$refs.check.indeterminate);\n },\n checked: function checked(newVal, oldVal) {\n if (this.is_Child || looseEqual(newVal, oldVal)) {\n return;\n }\n this.computedLocalChecked = newVal;\n },\n indeterminate: function indeterminate(newVal, oldVal) {\n this.setIndeterminate(newVal);\n }\n },\n methods: {\n emitChange: function emitChange(_ref) {\n var checked = _ref.target.checked;\n\n // Change event is only fired via user interaction\n // And we only emit the value of this checkbox\n if (this.is_Child || isArray(this.computedLocalChecked)) {\n this.$emit('change', checked ? this.value : null);\n if (this.is_Child) {\n // If we are a child of form-checkbbox-group, emit change on parent\n this.$parent.$emit('change', this.computedLocalChecked);\n }\n } else {\n // Single radio mode supports unchecked value\n this.$emit('change', checked ? this.value : this.uncheckedValue);\n }\n this.$emit('update:indeterminate', this.$refs.check.indeterminate);\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (this.is_Child || isArray(this.computedLocalChecked)) {\n return;\n }\n this.$refs.check.indeterminate = state;\n // Emit update event to prop\n this.$emit('update:indeterminate', this.$refs.check.indeterminate);\n }\n },\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this.indeterminate);\n }\n};","/*\n * form-radio & form-check mixin\n *\n */\n\nexport default {\n data: function data() {\n return {\n localChecked: this.checked,\n hasFocus: false\n };\n },\n\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n value: {},\n checked: {\n // This is the model, except when in group mode\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: null\n }\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n if (this.is_Child) {\n return this.$parent.localChecked;\n } else {\n return this.localChecked;\n }\n },\n set: function set(val) {\n if (this.is_Child) {\n this.$parent.localChecked = val;\n } else {\n this.localChecked = val;\n }\n }\n },\n is_Child: function is_Child() {\n return Boolean(this.$parent && this.$parent.is_RadioCheckGroup);\n },\n is_Disabled: function is_Disabled() {\n // Child can be disabled while parent isn't\n return Boolean(this.is_Child ? this.$parent.disabled || this.disabled : this.disabled);\n },\n is_Required: function is_Required() {\n return Boolean(this.is_Child ? this.$parent.required : this.required);\n },\n is_Plain: function is_Plain() {\n return Boolean(this.is_Child ? this.$parent.plain : this.plain);\n },\n is_Custom: function is_Custom() {\n return !this.is_Plain;\n },\n get_Size: function get_Size() {\n return this.is_Child ? this.$parent.size : this.size;\n },\n get_State: function get_State() {\n // This is a tri-state prop (true, false, null)\n if (this.is_Child && typeof this.$parent.get_State === 'boolean') {\n return this.$parent.get_State;\n }\n return this.computedState;\n },\n get_StateClass: function get_StateClass() {\n // This is a tri-state prop (true, false, null)\n return typeof this.get_State === 'boolean' ? this.get_State ? 'is-valid' : 'is-invalid' : '';\n },\n is_Stacked: function is_Stacked() {\n return Boolean(this.is_Child && this.$parent.stacked);\n },\n is_Inline: function is_Inline() {\n return !this.is_Stacked;\n },\n is_ButtonMode: function is_ButtonMode() {\n return Boolean(this.is_Child && this.$parent.buttons);\n },\n get_ButtonVariant: function get_ButtonVariant() {\n // Local variant trumps parent variant\n return this.buttonVariant || (this.is_Child ? this.$parent.buttonVariant : null) || 'secondary';\n },\n get_Name: function get_Name() {\n return (this.is_Child ? this.$parent.name || this.$parent.safeId() : this.name) || null;\n },\n buttonClasses: function buttonClasses() {\n // Same for radio & check\n return ['btn', 'btn-' + this.get_ButtonVariant, this.get_Size ? 'btn-' + this.get_Size : '',\n // 'disabled' class makes \"button\" look disabled\n this.is_Disabled ? 'disabled' : '',\n // 'active' class makes \"button\" look pressed\n this.is_Checked ? 'active' : '',\n // Focus class makes button look focused\n this.hasFocus ? 'focus' : ''];\n }\n },\n methods: {\n handleFocus: function handleFocus(evt) {\n // When in buttons mode, we need to add 'focus' class to label when radio focused\n if (this.is_ButtonMode && evt.target) {\n if (evt.type === 'focus') {\n this.hasFocus = true;\n } else if (evt.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }\n }\n};","export default {\n props: {\n name: {\n type: String\n },\n id: {\n type: String\n },\n disabled: {\n type: Boolean\n },\n required: {\n type: Boolean,\n default: false\n }\n }\n};","export default {\n props: {\n size: {\n type: String,\n default: null\n }\n },\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\" + this.size : null];\n },\n sizeBtnClass: function sizeBtnClass() {\n return [this.size ? \"btn-\" + this.size : null];\n }\n }\n};","export default {\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n },\n props: {\n plain: {\n type: Boolean,\n default: false\n }\n }\n};","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { isArray } from './array';\nimport { keys } from './object';\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject(obj) {\n return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\nfunction looseEqual(a, b) {\n if (a === b) return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i]);\n });\n } else if (!isArrayA && !isArrayB) {\n var keysA = keys(a);\n var keysB = keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n });\n } else {\n return false;\n }\n } catch (e) {\n return false;\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n } else {\n return false;\n }\n}\n\nexport default looseEqual;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formOptionsMixin from '../../mixins/form-options';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\n\nimport bFormCheckbox from './form-checkbox';\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin, formCustomMixin, formOptionsMixin],\n components: { bFormCheckbox: bFormCheckbox },\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n\n var checks = this.formOptions.map(function (option, idx) {\n return h('b-form-checkbox', {\n key: 'check_' + idx + '_opt',\n props: {\n id: _this.safeId('_BV_check_' + idx + '_opt_'),\n name: _this.name,\n value: option.value,\n required: _this.name && _this.required,\n disabled: option.disabled\n }\n }, [h('span', { domProps: { innerHTML: option.text } })]);\n });\n return h('div', {\n class: this.groupClasses,\n attrs: {\n id: this.safeId(),\n role: 'group',\n tabindex: '-1',\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n }\n }, [$slots.first, checks, $slots.default]);\n },\n data: function data() {\n return {\n localChecked: this.checked || [],\n // Flag for children\n is_RadioCheckGroup: true\n };\n },\n\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n checked: {\n type: [String, Number, Object, Array, Boolean],\n default: null\n },\n validated: {\n type: Boolean,\n default: false\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n stacked: {\n type: Boolean,\n default: false\n },\n buttons: {\n // Render as button style\n type: Boolean,\n default: false\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: 'secondary'\n }\n },\n watch: {\n checked: function checked(newVal, oldVal) {\n this.localChecked = this.checked;\n },\n localChecked: function localChecked(newVal, oldVal) {\n this.$emit('input', newVal);\n }\n },\n computed: {\n groupClasses: function groupClasses() {\n if (this.buttons) {\n return ['btn-group-toggle', this.stacked ? 'btn-group-vertical' : 'btn-group', this.size ? 'btn-group-' + this.size : '', this.validated ? 'was-validated' : ''];\n }\n return [this.sizeFormClass, this.stacked && this.custom ? 'custom-controls-stacked' : '', this.validated ? 'was-validated' : ''];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (this.ariaInvalid === true || this.ariaInvalid === 'true' || this.ariaInvalid === '') {\n return 'true';\n }\n return this.get_State === false ? 'true' : null;\n },\n get_State: function get_State() {\n // Child radios sniff this value\n return this.computedState;\n }\n }\n};","import { isArray } from '../utils/array';\nimport { keys } from '../utils/object';\n\nfunction isObject(obj) {\n return obj && {}.toString.call(obj) === '[object Object]';\n}\n\nexport default {\n\n props: {\n options: {\n type: [Array, Object],\n default: function _default() {\n return [];\n }\n },\n valueField: {\n type: String,\n default: 'value'\n },\n textField: {\n type: String,\n default: 'text'\n },\n disabledField: {\n type: String,\n default: 'disabled'\n }\n },\n computed: {\n formOptions: function formOptions() {\n var options = this.options;\n\n var valueField = this.valueField;\n var textField = this.textField;\n var disabledField = this.disabledField;\n\n if (isArray(options)) {\n // Normalize flat-ish arrays to Array of Objects\n return options.map(function (option) {\n if (isObject(option)) {\n return {\n value: option[valueField],\n text: String(option[textField]),\n disabled: option[disabledField] || false\n };\n }\n return {\n value: option,\n text: String(option),\n disabled: false\n };\n });\n } else {\n // options is Object\n // Normalize Objects to Array of Objects\n return keys(options).map(function (key) {\n var option = options[key] || {};\n if (isObject(option)) {\n var value = option[valueField];\n var text = option[textField];\n return {\n value: typeof value === 'undefined' ? key : value,\n text: typeof text === 'undefined' ? key : String(text),\n disabled: option[disabledField] || false\n };\n }\n return {\n value: key,\n text: String(option),\n disabled: false\n };\n });\n }\n }\n }\n};","import bFormRadio from './form-radio';\nimport bFormRadioGroup from './form-radio-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormRadio: bFormRadio,\n bRadio: bFormRadio,\n bFormRadioGroup: bFormRadioGroup,\n bRadioGroup: bFormRadioGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formStateMixin from '../../mixins/form-state';\nimport formRadioCheckMixin from '../../mixins/form-radio-check';\nimport looseEqual from '../../utils/loose-equal';\n\nexport default {\n mixins: [idMixin, formRadioCheckMixin, formMixin, formStateMixin],\n render: function render(h) {\n var _this = this;\n\n var input = h('input', {\n ref: 'radio',\n class: [this.is_ButtonMode ? '' : this.is_Plain ? 'form-check-input' : 'custom-control-input', this.get_StateClass],\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.computedLocalChecked,\n expression: 'computedLocalChecked'\n }],\n attrs: {\n id: this.safeId(),\n type: 'radio',\n name: this.get_Name,\n required: this.get_Name && this.is_Required,\n disabled: this.is_Disabled,\n autocomplete: 'off'\n },\n domProps: {\n value: this.value,\n checked: looseEqual(this.computedLocalChecked, this.value)\n },\n on: {\n focus: this.handleFocus,\n blur: this.handleFocus,\n change: this.emitChange,\n __c: function __c(evt) {\n _this.computedLocalChecked = _this.value;\n }\n }\n });\n\n var description = h(this.is_ButtonMode ? 'span' : 'label', {\n class: this.is_ButtonMode ? null : this.is_Plain ? 'form-check-label' : 'custom-control-label',\n attrs: { for: this.is_ButtonMode ? null : this.safeId() }\n }, [this.$slots.default]);\n\n if (!this.is_ButtonMode) {\n return h('div', {\n class: [this.is_Plain ? 'form-check' : this.labelClasses, { 'form-check-inline': this.is_Plain && !this.is_Stacked }, { 'custom-control-inline': !this.is_Plain && !this.is_Stacked }]\n }, [input, description]);\n } else {\n return h('label', { class: [this.buttonClasses] }, [input, description]);\n }\n },\n\n watch: {\n // Radio Groups can only have a single value, so our watchers are simple\n checked: function checked(newVal, oldVal) {\n this.computedLocalChecked = newVal;\n },\n computedLocalChceked: function computedLocalChceked(newVal, oldVal) {\n this.$emit('input', this.computedLocalChceked);\n }\n },\n computed: {\n is_Checked: function is_Checked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n labelClasses: function labelClasses() {\n // Specific to radio\n return [this.get_Size ? 'form-control-' + this.get_Size : '', 'custom-control', 'custom-radio', this.get_StateClass];\n }\n },\n methods: {\n emitChange: function emitChange(_ref) {\n var checked = _ref.target.checked;\n\n // Change is only emitted on user interaction\n this.$emit('change', checked ? this.value : null);\n // If this is a child of form-radio-group, we emit a change event on it as well\n if (this.is_Child) {\n this.$parent.$emit('change', this.computedLocalChecked);\n }\n }\n }\n};","import idMixin from '../../mixins/id';\nimport formOptionsMixin from '../../mixins/form-options';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\nimport bFormRadio from './form-radio';\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin, formCustomMixin, formOptionsMixin],\n components: { bFormRadio: bFormRadio },\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n\n var radios = this.formOptions.map(function (option, idx) {\n return h('b-form-radio', {\n key: 'radio_' + idx + '_opt',\n props: {\n id: _this.safeId('_BV_radio_' + idx + '_opt_'),\n name: _this.name,\n value: option.value,\n required: Boolean(_this.name && _this.required),\n disabled: option.disabled\n }\n }, [h('span', { domProps: { innerHTML: option.text } })]);\n });\n return h('div', {\n class: this.groupClasses,\n attrs: {\n id: this.safeId(),\n role: 'radiogroup',\n tabindex: '-1',\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n }\n }, [$slots.first, radios, $slots.default]);\n },\n data: function data() {\n return {\n localChecked: this.checked,\n // Flag for children\n is_RadioCheckGroup: true\n };\n },\n\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n checked: {\n type: [String, Object, Number, Boolean],\n default: null\n },\n validated: {\n // Used for applying hte `was-validated` class to the group\n type: Boolean,\n default: false\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n stacked: {\n type: Boolean,\n default: false\n },\n buttons: {\n // Render as button style\n type: Boolean,\n default: false\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: 'secondary'\n }\n },\n watch: {\n checked: function checked(newVal, oldVal) {\n this.localChecked = this.checked;\n },\n localChecked: function localChecked(newVal, oldVal) {\n this.$emit('input', newVal);\n }\n },\n computed: {\n groupClasses: function groupClasses() {\n if (this.buttons) {\n return ['btn-group-toggle', this.stacked ? 'btn-group-vertical' : 'btn-group', this.size ? 'btn-group-' + this.size : '', this.validated ? 'was-validated' : ''];\n }\n return [this.sizeFormClass, this.stacked && this.custom ? 'custom-controls-stacked' : '', this.validated ? 'was-validated' : ''];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (this.ariaInvalid === true || this.ariaInvalid === 'true' || this.ariaInvalid === '') {\n return 'true';\n }\n return this.get_State === false ? 'true' : null;\n },\n get_State: function get_State() {\n // Required by child radios\n return this.computedState;\n }\n }\n};","import bFormInput from './form-input';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormInput: bFormInput,\n bInput: bFormInput\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport { arrayIncludes } from '../../utils/array';\n\n// Import styles\nimport './form-input.css';\n\n// Valid supported input types\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week'];\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin],\n render: function render(h) {\n return h('input', {\n ref: 'input',\n class: this.inputClass,\n domProps: { value: this.localValue },\n attrs: {\n id: this.safeId(),\n name: this.name,\n type: this.localType,\n disabled: this.disabled,\n required: this.required,\n readonly: this.readonly || this.plaintext,\n placeholder: this.placeholder,\n autocomplete: this.autocomplete || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n },\n on: {\n input: this.onInput,\n change: this.onChange\n }\n });\n },\n data: function data() {\n return {\n localValue: this.value\n };\n },\n\n props: {\n value: {\n default: null\n },\n type: {\n type: String,\n default: 'text',\n validator: function validator(type) {\n return arrayIncludes(TYPES, type);\n }\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n readonly: {\n type: Boolean,\n default: false\n },\n plaintext: {\n type: Boolean,\n default: false\n },\n autocomplete: {\n type: String,\n default: null\n },\n placeholder: {\n type: String,\n default: null\n },\n formatter: {\n type: Function\n },\n lazyFormatter: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n localType: function localType() {\n // We only allow certain types\n return arrayIncludes(TYPES, this.type) ? this.type : 'text';\n },\n inputClass: function inputClass() {\n return [this.plaintext ? 'form-control-plaintext' : 'form-control', this.sizeFormClass, this.stateClass];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (!this.ariaInvalid || this.ariaInvalid === 'false') {\n // this.ariaInvalid is null or false or 'false'\n return this.computedState === false ? 'true' : null;\n }\n if (this.ariaInvalid === true) {\n // User wants explicit aria-invalid=true\n return 'true';\n }\n // Most likely a string value (which could be 'true')\n return this.ariaInvalid;\n }\n },\n watch: {\n value: function value(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.localValue = newVal;\n }\n },\n localValue: function localValue(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('input', newVal);\n }\n }\n },\n methods: {\n format: function format(value, e) {\n if (this.formatter) {\n var formattedValue = this.formatter(value, e);\n if (formattedValue !== value) {\n return formattedValue;\n }\n }\n return value;\n },\n onInput: function onInput(evt) {\n var value = evt.target.value;\n if (this.lazyFormatter) {\n // Update the model with the current unformated value\n this.localValue = value;\n } else {\n this.localValue = this.format(value, evt);\n }\n },\n onChange: function onChange(evt) {\n this.localValue = this.format(evt.target.value, evt);\n this.$emit('change', this.localValue);\n },\n focus: function focus() {\n if (!this.disabled) {\n this.$el.focus();\n }\n }\n }\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/index.js!./form-input.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ec8a0cc6\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../css-loader/index.js!./form-input.css\", function() {\n var newContent = require(\"!!../../../../css-loader/index.js!./form-input.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* Special styling for type=range and type=color input */\\ninput.form-control[type=\\\"range\\\"],\\ninput.form-control[type=\\\"color\\\"] {\\n height: 2.25rem;\\n}\\ninput.form-control.form-control-sm[type=\\\"range\\\"],\\ninput.form-control.form-control-sm[type=\\\"color\\\"] {\\n height: 1.9375rem;\\n}\\ninput.form-control.form-control-lg[type=\\\"range\\\"],\\ninput.form-control.form-control-lg[type=\\\"color\\\"] {\\n height: 3rem;\\n}\\n\\n/* Less padding on type=color */\\ninput.form-control[type=\\\"color\\\"] {\\n padding: 0.25rem 0.25rem;\\n}\\ninput.form-control.form-control-sm[type=\\\"color\\\"] {\\n padding: 0.125rem 0.125rem;\\n}\\n\", \"\"]);\n\n// exports\n","import bFormTextarea from './form-textarea';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormTextarea: bFormTextarea,\n bTextarea: bFormTextarea\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin],\n render: function render(h) {\n var _this = this;\n\n return h('textarea', {\n ref: 'input',\n class: this.inputClass,\n style: this.inputStyle,\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.localValue,\n expression: 'localValue'\n }],\n domProps: { value: this.value },\n attrs: {\n id: this.safeId(),\n name: this.name,\n disabled: this.disabled,\n placeholder: this.placeholder,\n required: this.required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.rowsCount,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n },\n on: {\n input: function input(evt) {\n _this.localValue = evt.target.value;\n }\n }\n });\n },\n data: function data() {\n return {\n localValue: this.value\n };\n },\n\n props: {\n value: {\n type: String,\n default: ''\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n readonly: {\n type: Boolean,\n default: false\n },\n plaintext: {\n type: Boolean,\n default: false\n },\n autocomplete: {\n type: String,\n default: null\n },\n placeholder: {\n type: String,\n default: null\n },\n rows: {\n type: [Number, String],\n default: null\n },\n maxRows: {\n type: [Number, String],\n default: null\n },\n wrap: {\n // 'soft', 'hard' or 'off'. Browser default is 'soft'\n type: String,\n default: 'soft'\n },\n noResize: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n rowsCount: function rowsCount() {\n // A better option could be based on https://codepen.io/vsync/pen/frudD\n // As linebreaks aren't added until the input is submitted\n var rows = parseInt(this.rows, 10) || 1;\n var maxRows = parseInt(this.maxRows, 10) || 0;\n var lines = (this.localValue || '').toString().split('\\n').length;\n return maxRows ? Math.min(maxRows, Math.max(rows, lines)) : Math.max(rows, lines);\n },\n inputClass: function inputClass() {\n return [this.plaintext ? 'form-control-plaintext' : 'form-control', this.sizeFormClass, this.stateClass];\n },\n inputStyle: function inputStyle() {\n // We set width 100% in plaintext mode to get around a shortcoming in bootstrap CSS\n // setting noResize to true will disable the ability for the user to resize the textarea\n return {\n width: this.plaintext ? '100%' : null,\n resize: this.noResize ? 'none' : null\n };\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (!this.ariaInvalid || this.ariaInvalid === 'false') {\n // this.ariaInvalid is null or false or 'false'\n return this.computedState === false ? 'true' : null;\n }\n if (this.ariaInvalid === true) {\n // User wants explicit aria-invalid=true\n return 'true';\n }\n // Most likely a string value (which could be the string 'true')\n return this.ariaInvalid;\n }\n },\n watch: {\n value: function value(newVal, oldVal) {\n // Update our localValue\n if (newVal !== oldVal) {\n this.localValue = newVal;\n }\n },\n localValue: function localValue(newVal, oldVal) {\n // update Parent value\n if (newVal !== oldVal) {\n this.$emit('input', newVal);\n }\n }\n },\n methods: {\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n this.$el.focus();\n }\n }\n }\n};","import bFormFile from './form-file';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormFile: bFormFile,\n bFile: bFormFile\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\nimport { from as arrayFrom } from '../../utils/array';\n\nexport default {\n mixins: [idMixin, formMixin, formStateMixin, formCustomMixin],\n render: function render(h) {\n // Form Input\n var input = h('input', {\n ref: 'input',\n class: [{\n 'form-control-file': this.plain,\n 'custom-file-input': this.custom,\n focus: this.custom && this.hasFocus\n }, this.stateClass],\n attrs: {\n type: 'file',\n id: this.safeId(),\n name: this.name,\n disabled: this.disabled,\n required: this.required,\n capture: this.capture || null,\n accept: this.accept || null,\n multiple: this.multiple,\n webkitdirectory: this.directory,\n 'aria-required': this.required ? 'true' : null,\n 'aria-describedby': this.plain ? null : this.safeId('_BV_file_control_')\n },\n on: {\n change: this.onFileChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler\n }\n });\n\n if (this.plain) {\n return input;\n }\n\n // Overlay Labels\n var label = h('label', {\n class: ['custom-file-label', this.dragging ? 'dragging' : null],\n attrs: {\n id: this.safeId('_BV_file_control_')\n }\n }, this.selectLabel);\n\n // Return rendered custom file input\n return h('div', {\n class: ['custom-file', 'b-form-file', this.stateClass],\n attrs: { id: this.safeId('_BV_file_outer_') },\n on: { dragover: this.dragover }\n }, [input, label]);\n },\n data: function data() {\n return {\n selectedFile: null,\n dragging: false,\n hasFocus: false\n };\n },\n\n props: {\n accept: {\n type: String,\n default: ''\n },\n // Instruct input to capture from camera\n capture: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: undefined\n },\n multiple: {\n type: Boolean,\n default: false\n },\n directory: {\n type: Boolean,\n default: false\n },\n noTraverse: {\n type: Boolean,\n default: false\n },\n noDrop: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n selectLabel: function selectLabel() {\n // No file choosen\n if (!this.selectedFile || this.selectedFile.length === 0) {\n return this.placeholder;\n }\n\n // Multiple files\n if (this.multiple) {\n if (this.selectedFile.length === 1) {\n return this.selectedFile[0].name;\n }\n return this.selectedFile.map(function (file) {\n return file.name;\n }).join(', ');\n }\n\n // Single file\n return this.selectedFile.name;\n }\n },\n watch: {\n selectedFile: function selectedFile(newVal, oldVal) {\n if (newVal === oldVal) {\n return;\n }\n if (!newVal && this.multiple) {\n this.$emit('input', []);\n } else {\n this.$emit('input', newVal);\n }\n }\n },\n methods: {\n focusHandler: function focusHandler(evt) {\n // Boostrap v4.beta doesn't have focus styling for custom file input\n // Firefox has a borked '[type=file]:focus ~ sibling' selector issue,\n // So we add a 'focus' class to get around these \"bugs\"\n if (this.plain || evt.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n reset: function reset() {\n try {\n // Wrapped in try in case IE < 11 craps out\n this.$refs.input.value = '';\n } catch (e) {}\n // IE < 11 doesn't support setting input.value to '' or null\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well.\n this.$refs.input.type = '';\n this.$refs.input.type = 'file';\n this.selectedFile = this.multiple ? [] : null;\n },\n onFileChange: function onFileChange(evt) {\n var _this = this;\n\n // Always emit original event\n this.$emit('change', evt);\n // Check if special `items` prop is available on event (drop mode)\n // Can be disabled by setting no-traverse\n var items = evt.dataTransfer && evt.dataTransfer.items;\n if (items && !this.noTraverse) {\n var queue = [];\n for (var i = 0; i < items.length; i++) {\n var item = items[i].webkitGetAsEntry();\n if (item) {\n queue.push(this.traverseFileTree(item));\n }\n }\n Promise.all(queue).then(function (filesArr) {\n _this.setFiles(arrayFrom(filesArr));\n });\n return;\n }\n // Normal handling\n this.setFiles(evt.target.files || evt.dataTransfer.files);\n },\n setFiles: function setFiles(files) {\n if (!files) {\n this.selectedFile = null;\n return;\n }\n if (!this.multiple) {\n this.selectedFile = files[0];\n return;\n }\n // Convert files to array\n var filesArray = [];\n for (var i = 0; i < files.length; i++) {\n if (files[i].type.match(this.accept)) {\n filesArray.push(files[i]);\n }\n }\n this.selectedFile = filesArray;\n },\n dragover: function dragover(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (this.noDrop || !this.custom) {\n return;\n }\n this.dragging = true;\n evt.dataTransfer.dropEffect = 'copy';\n },\n dragleave: function dragleave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.dragging = false;\n },\n drop: function drop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (this.noDrop) {\n return;\n }\n this.dragging = false;\n if (evt.dataTransfer.files && evt.dataTransfer.files.length > 0) {\n this.onFileChange(evt);\n }\n },\n traverseFileTree: function traverseFileTree(item, path) {\n var _this2 = this;\n\n // Based on http://stackoverflow.com/questions/3590058\n return new Promise(function (resolve) {\n path = path || '';\n if (item.isFile) {\n // Get file\n item.file(function (file) {\n file.$path = path; // Inject $path to file obj\n resolve(file);\n });\n } else if (item.isDirectory) {\n // Get folder contents\n item.createReader().readEntries(function (entries) {\n var queue = [];\n for (var i = 0; i < entries.length; i++) {\n queue.push(_this2.traverseFileTree(entries[i], path + item.name + '/'));\n }\n Promise.all(queue).then(function (filesArr) {\n resolve(arrayFrom(filesArr));\n });\n });\n }\n });\n }\n }\n};","import bFormSelect from './form-select';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormSelect: bFormSelect,\n bSelect: bFormSelect\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formOptionsMixin from '../../mixins/form-options';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\nimport { from as arrayFrom } from '../../utils/array';\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin, formCustomMixin, formOptionsMixin],\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n var options = this.formOptions.map(function (option, index) {\n return h('option', {\n key: 'option_' + index + '_opt',\n attrs: { disabled: Boolean(option.disabled) },\n domProps: { innerHTML: option.text, value: option.value }\n });\n });\n return h('select', {\n ref: 'input',\n class: this.inputClass,\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.localValue,\n expression: 'localValue'\n }],\n attrs: {\n id: this.safeId(),\n name: this.name,\n multiple: this.multiple || null,\n size: this.computedSelectSize,\n disabled: this.disabled,\n required: this.required,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n },\n on: {\n change: function change(evt) {\n var target = evt.target;\n var selectedVal = arrayFrom(target.options).filter(function (o) {\n return o.selected;\n }).map(function (o) {\n return '_value' in o ? o._value : o.value;\n });\n _this.localValue = target.multiple ? selectedVal : selectedVal[0];\n _this.$emit('change', _this.localValue);\n }\n }\n }, [$slots.first, options, $slots.default]);\n },\n data: function data() {\n return {\n localValue: this.value\n };\n },\n\n watch: {\n value: function value(newVal, oldVal) {\n this.localValue = newVal;\n },\n localValue: function localValue(newVal, oldVal) {\n this.$emit('input', this.localValue);\n }\n },\n props: {\n value: {},\n multiple: {\n type: Boolean,\n default: false\n },\n selectSize: {\n // Browsers default size to 0, which shows 4 rows in most browsers in multiple mode\n // Size of 1 can bork out firefox\n type: Number,\n default: 0\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n }\n },\n computed: {\n computedSelectSize: function computedSelectSize() {\n // Custom selects with a size of zero causes the arrows to be hidden,\n // so dont render the size attribute in this case\n return !this.plain && this.selectSize === 0 ? null : this.selectSize;\n },\n inputClass: function inputClass() {\n return ['form-control', this.stateClass, this.sizeFormClass,\n // Awaiting for https://github.com/twbs/bootstrap/issues/23058\n this.plain ? null : 'custom-select', this.plain || !this.size ? null : 'custom-select-' + this.size];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (this.ariaInvalid === true || this.ariaInvalid === 'true') {\n return 'true';\n }\n return this.stateClass === 'is-invalid' ? 'true' : null;\n }\n }\n};","import bImg from './img';\nimport bImgLazy from './img-lazy';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bImg: bImg,\n bImgLazy: bImgLazy\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import bImg from './img';\nimport { isVisible, getBCR, eventOn, eventOff } from '../../utils/dom';\nvar THROTTLE = 100;\n\nexport default {\n components: { bImg: bImg },\n render: function render(h) {\n return h('b-img', {\n props: {\n src: this.computedSrc,\n alt: this.alt,\n blank: this.computedBlank,\n blankColor: this.blankColor,\n width: this.computedWidth,\n height: this.computedHeight,\n fluid: this.fluid,\n fluidGrow: this.fluidGrow,\n block: this.block,\n thumbnail: this.thumbnail,\n rounded: this.rounded,\n left: this.left,\n right: this.right,\n center: this.center\n }\n });\n },\n data: function data() {\n return {\n isShown: false,\n scrollTimeout: null\n };\n },\n\n props: {\n src: {\n type: String,\n default: null,\n required: true\n },\n alt: {\n type: String,\n default: null\n },\n width: {\n type: [Number, String],\n default: null\n },\n height: {\n type: [Number, String],\n default: null\n },\n blankSrc: {\n // If null, a blank image is generated\n type: String,\n default: null\n },\n blankColor: {\n type: String,\n default: 'transparent'\n },\n blankWidth: {\n type: [Number, String],\n default: null\n },\n blankHeight: {\n type: [Number, String],\n default: null\n },\n fluid: {\n type: Boolean,\n default: false\n },\n fluidGrow: {\n type: Boolean,\n default: false\n },\n block: {\n type: Boolean,\n default: false\n },\n thumbnail: {\n type: Boolean,\n default: false\n },\n rounded: {\n type: [Boolean, String],\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n center: {\n type: Boolean,\n default: false\n },\n offset: {\n type: [Number, String],\n default: 360\n },\n throttle: {\n type: [Number, String],\n default: THROTTLE\n }\n },\n computed: {\n computedSrc: function computedSrc() {\n return !this.blankSrc || this.isShown ? this.src : this.blankSrc;\n },\n computedBlank: function computedBlank() {\n return !(this.isShown || this.blankSrc);\n },\n computedWidth: function computedWidth() {\n return this.isShown ? this.width : this.blankWidth || this.width;\n },\n computedHeight: function computedHeight() {\n return this.isShown ? this.height : this.blankHeight || this.height;\n }\n },\n mounted: function mounted() {\n this.setListeners(true);\n this.checkView();\n },\n activated: function activated() {\n this.setListeners(true);\n this.checkView();\n },\n deactivated: function deactivated() {\n this.setListeners(false);\n },\n beforeDdestroy: function beforeDdestroy() {\n this.setListeners(false);\n },\n\n methods: {\n setListeners: function setListeners(on) {\n clearTimeout(this.scrollTimer);\n this.scrollTimeout = null;\n var root = window;\n if (on) {\n eventOn(root, 'scroll', this.onScroll);\n eventOn(root, 'resize', this.onScroll);\n eventOn(root, 'orientationchange', this.onScroll);\n } else {\n eventOff(root, 'scroll', this.onScroll);\n eventOff(root, 'resize', this.onScroll);\n eventOff(root, 'orientationchange', this.onScroll);\n }\n },\n checkView: function checkView() {\n // check bounding box + offset to see if we should show\n if (!isVisible(this.$el)) {\n // Element is hidden, so skip for now\n return;\n }\n var offset = parseInt(this.offset, 10) || 0;\n var docElement = document.documentElement;\n var view = {\n l: 0 - offset,\n t: 0 - offset,\n b: docElement.clientHeight + offset,\n r: docElement.clientWidth + offset\n };\n var box = getBCR(this.$el);\n if (box.right >= view.l && box.bottom >= view.t && box.left <= view.r && box.top <= view.b) {\n // image is in view (or about to be in view)\n this.isShown = true;\n this.setListeners(false);\n }\n },\n onScroll: function onScroll() {\n if (this.isShown) {\n this.setListeners(false);\n } else {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = setTimeout(this.checkView, parseInt(this.throttle, 10) || THROTTLE);\n }\n }\n }\n};","import bJumbotron from './jumbotron';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bJumbotron: bJumbotron\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport Container from '../layout/container';\n\nexport var props = {\n fluid: {\n type: Boolean,\n default: false\n },\n containerFluid: {\n type: Boolean,\n default: false\n },\n header: {\n type: String,\n default: null\n },\n headerTag: {\n type: String,\n default: 'h1'\n },\n headerLevel: {\n type: [Number, String],\n default: '3'\n },\n lead: {\n type: String,\n default: null\n },\n leadTag: {\n type: String,\n default: 'p'\n },\n tag: {\n type: String,\n default: 'div'\n },\n bgVariant: {\n type: String,\n default: null\n },\n borderVariant: {\n type: String,\n default: null\n },\n textVariant: {\n type: String,\n default: null\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots;\n\n // The order of the conditionals matter.\n // We are building the component markup in order.\n var childNodes = [];\n var $slots = slots();\n\n // Header\n if (props.header || $slots.header) {\n childNodes.push(h(props.headerTag, {\n class: _defineProperty({}, 'display-' + props.headerLevel, Boolean(props.headerLevel))\n }, $slots.header || props.header));\n }\n\n // Lead\n if (props.lead || $slots.lead) {\n childNodes.push(h(props.leadTag, { staticClass: 'lead' }, $slots.lead || props.lead));\n }\n\n // Default slot\n if ($slots.default) {\n childNodes.push($slots.default);\n }\n\n // If fluid, wrap content in a container/container-fluid\n if (props.fluid) {\n // Children become a child of a container\n childNodes = [h(Container, { props: { 'fluid': props.containerFluid } }, childNodes)];\n }\n // Return the jumbotron\n return h(props.tag, mergeData(data, {\n staticClass: 'jumbotron',\n class: (_class2 = {\n 'jumbotron-fluid': props.fluid\n }, _defineProperty(_class2, 'text-' + props.textVariant, Boolean(props.textVariant)), _defineProperty(_class2, 'bg-' + props.bgVariant, Boolean(props.bgVariant)), _defineProperty(_class2, 'border-' + props.borderVariant, Boolean(props.borderVariant)), _defineProperty(_class2, 'border', Boolean(props.borderVariant)), _class2)\n }), childNodes);\n }\n};","import bLink from './link';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bLink: bLink\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import bListGroup from './list-group';\nimport bListGroupItem from './list-group-item';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bListGroup: bListGroup,\n bListGroupItem: bListGroupItem\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n flush: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var componentData = {\n staticClass: 'list-group',\n class: { 'list-group-flush': props.flush }\n };\n\n return h(props.tag, mergeData(data, componentData), children);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\nimport { arrayIncludes } from '../../utils/array';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nvar actionTags = ['a', 'router-link', 'button', 'b-link'];\nvar linkProps = linkPropsFactory();\ndelete linkProps.href.default;\ndelete linkProps.to.default;\n\nexport var props = assign({\n tag: {\n type: String,\n default: 'div'\n },\n action: {\n type: Boolean,\n default: null\n },\n button: {\n type: Boolean,\n default: null\n },\n variant: {\n type: String,\n default: null\n }\n}, linkProps);\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var tag = props.button ? 'button' : !props.href && !props.to ? props.tag : Link;\n var isAction = Boolean(props.href || props.to || props.action || props.button || arrayIncludes(actionTags, props.tag));\n var componentData = {\n staticClass: 'list-group-item',\n class: (_class = {}, _defineProperty(_class, 'list-group-item-' + props.variant, Boolean(props.variant)), _defineProperty(_class, 'list-group-item-action', isAction), _defineProperty(_class, 'active', props.active), _defineProperty(_class, 'disabled', props.disabled), _class),\n attrs: tag === 'button' && props.disabled ? { disabled: true } : {},\n props: props.button ? {} : pluckProps(linkProps, props)\n };\n\n return h(tag, mergeData(data, componentData), children);\n }\n};","import bMedia from './media';\nimport bMediaAside from './media-aside';\nimport bMediaBody from './media-body';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bMedia: bMedia,\n bMediaAside: bMediaAside,\n bMediaBody: bMediaBody\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\nimport MediaBody from './media-body';\nimport MediaAside from './media-aside';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n rightAlign: {\n type: Boolean,\n default: false\n },\n verticalAlign: {\n type: String,\n default: 'top'\n },\n noBody: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n children = _ref.children;\n\n var childNodes = props.noBody ? children : [];\n var $slots = slots();\n\n if (!props.noBody) {\n if ($slots.aside && !props.rightAlign) {\n childNodes.push(h(MediaAside, { staticClass: 'mr-3', props: { verticalAlign: props.verticalAlign } }, $slots.aside));\n }\n\n childNodes.push(h(MediaBody, $slots.default));\n\n if ($slots.aside && props.rightAlign) {\n childNodes.push(h(MediaAside, { staticClass: 'ml-3', props: { verticalAlign: props.verticalAlign } }, $slots.aside));\n }\n }\n\n return h(props.tag, mergeData(data, { staticClass: 'media' }), childNodes);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media-body'\n }), children);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n verticalAlign: {\n type: String,\n default: 'top'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'd-flex',\n class: _defineProperty({}, 'align-self-' + props.verticalAlign, props.verticalAlign)\n }), children);\n }\n};","import bModal from './modal';\nimport modalPlugin from '../../directives/modal';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bModal: bModal\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n Vue.use(modalPlugin);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport bBtn from '../button/button';\nimport bBtnClose from '../button/button-close';\nimport idMixin from '../../mixins/id';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\nimport observeDom from '../../utils/observe-dom';\nimport warn from '../../utils/warn';\nimport KeyCodes from '../../utils/key-codes';\nimport BvEvent from '../../utils/bv-event.class';\n\nimport { isVisible, selectAll, select, getBCR, addClass, removeClass, hasClass, setAttr, removeAttr, getAttr, hasAttr, eventOn, eventOff } from '../../utils/dom';\n\n// Selectors for padding/margin adjustments\nvar Selector = {\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n NAVBAR_TOGGLER: '.navbar-toggler'\n\n // ObserveDom config\n};var OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n};\n\nexport default {\n mixins: [idMixin, listenOnRootMixin],\n components: { bBtn: bBtn, bBtnClose: bBtnClose },\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n // Modal Header\n var header = h(false);\n if (!this.hideHeader) {\n var modalHeader = $slots['modal-header'];\n if (!modalHeader) {\n var closeButton = h(false);\n if (!this.hideHeaderClose) {\n closeButton = h('b-btn-close', {\n props: {\n disabled: this.is_transitioning,\n ariaLabel: this.headerCloseLabel,\n textVariant: this.headerTextVariant\n },\n on: {\n click: function click(evt) {\n _this.hide('header-close');\n }\n }\n }, [$slots['modal-header-close']]);\n }\n modalHeader = [h(this.titleTag, { class: ['modal-title'] }, [$slots['modal-title'] || this.title]), closeButton];\n }\n header = h('header', {\n ref: 'header',\n class: this.headerClasses,\n attrs: { id: this.safeId('__BV_modal_header_') }\n }, [modalHeader]);\n }\n // Modal Body\n var body = h('div', {\n ref: 'body',\n class: this.bodyClasses,\n attrs: { id: this.safeId('__BV_modal_body_') }\n }, [$slots.default]);\n // Modal Footer\n var footer = h(false);\n if (!this.hideFooter) {\n var modalFooter = $slots['modal-footer'];\n if (!modalFooter) {\n var cancelButton = h(false);\n if (!this.okOnly) {\n cancelButton = h('b-btn', {\n props: {\n variant: this.cancelVariant,\n size: this.buttonSize,\n disabled: this.cancelDisabled || this.busy || this.is_transitioning\n },\n on: {\n click: function click(evt) {\n _this.hide('cancel');\n }\n }\n }, [$slots['modal-cancel'] || this.cancelTitle]);\n }\n var okButton = h('b-btn', {\n props: {\n variant: this.okVariant,\n size: this.buttonSize,\n disabled: this.okDisabled || this.busy || this.is_transitioning\n },\n on: {\n click: function click(evt) {\n _this.hide('ok');\n }\n }\n }, [$slots['modal-ok'] || this.okTitle]);\n modalFooter = [cancelButton, okButton];\n }\n footer = h('footer', {\n ref: 'footer',\n class: this.footerClasses,\n attrs: { id: this.safeId('__BV_modal_footer_') }\n }, [modalFooter]);\n }\n // Assemble Modal Content\n var modalContent = h('div', {\n ref: 'content',\n class: ['modal-content'],\n attrs: {\n tabindex: '-1',\n role: 'document',\n 'aria-labelledby': this.hideHeader ? null : this.safeId('__BV_modal_header_'),\n 'aria-describedby': this.safeId('__BV_modal_body_')\n },\n on: {\n focusout: this.onFocusout,\n click: function click(evt) {\n evt.stopPropagation();\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/1528\n _this.$root.$emit('bv::dropdown::shown');\n }\n }\n }, [header, body, footer]);\n // Modal Dialog wrapper\n var modalDialog = h('div', { class: this.dialogClasses }, [modalContent]);\n // Modal\n var modal = h('div', {\n ref: 'modal',\n class: this.modalClasses,\n directives: [{\n name: 'show',\n rawName: 'v-show',\n value: this.is_visible,\n expression: 'is_visible'\n }],\n attrs: {\n id: this.safeId(),\n role: 'dialog',\n 'aria-hidden': this.is_visible ? null : 'true'\n },\n on: {\n click: this.onClickOut,\n keydown: this.onEsc\n }\n }, [modalDialog]);\n // Wrap modal in transition\n modal = h('transition', {\n props: {\n enterClass: '',\n enterToClass: '',\n enterActiveClass: '',\n leaveClass: '',\n leaveActiveClass: '',\n leaveToClass: ''\n },\n on: {\n 'before-enter': this.onBeforeEnter,\n enter: this.onEnter,\n 'after-enter': this.onAfterEnter,\n 'before-leave': this.onBeforeLeave,\n leave: this.onLeave,\n 'after-leave': this.onAfterLeave\n }\n }, [modal]);\n // Modal Backdrop\n var backdrop = h(false);\n if (!this.hideBackdrop && (this.is_visible || this.is_transitioning)) {\n backdrop = h('div', {\n class: this.backdropClasses,\n attrs: { id: this.safeId('__BV_modal_backdrop_') }\n });\n }\n // Assemble modal and backdrop\n var outer = h(false);\n if (!this.is_hidden) {\n outer = h('div', { attrs: { id: this.safeId('__BV_modal_outer_') } }, [modal, backdrop]);\n }\n // Wrap in DIV to maintain thi.$el reference for hide/show method aceess\n return h('div', {}, [outer]);\n },\n data: function data() {\n return {\n is_hidden: this.lazy || false,\n is_visible: false,\n is_transitioning: false,\n is_show: false,\n is_block: false,\n scrollbarWidth: 0,\n isBodyOverflowing: false,\n return_focus: this.returnFocus || null\n };\n },\n\n model: {\n prop: 'visible',\n event: 'change'\n },\n props: {\n title: {\n type: String,\n default: ''\n },\n titleTag: {\n type: String,\n default: 'h5'\n },\n size: {\n type: String,\n default: 'md'\n },\n centered: {\n type: Boolean,\n default: false\n },\n buttonSize: {\n type: String,\n default: ''\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noCloseOnBackdrop: {\n type: Boolean,\n default: false\n },\n noCloseOnEsc: {\n type: Boolean,\n default: false\n },\n noEnforceFocus: {\n type: Boolean,\n default: false\n },\n headerBgVariant: {\n type: String,\n default: null\n },\n headerBorderVariant: {\n type: String,\n default: null\n },\n headerTextVariant: {\n type: String,\n default: null\n },\n headerClass: {\n type: [String, Array],\n default: null\n },\n bodyBgVariant: {\n type: String,\n default: null\n },\n bodyTextVariant: {\n type: String,\n default: null\n },\n modalClass: {\n type: [String, Array],\n default: null\n },\n bodyClass: {\n type: [String, Array],\n default: null\n },\n footerBgVariant: {\n type: String,\n default: null\n },\n footerBorderVariant: {\n type: String,\n default: null\n },\n footerTextVariant: {\n type: String,\n default: null\n },\n footerClass: {\n type: [String, Array],\n default: null\n },\n hideHeader: {\n type: Boolean,\n default: false\n },\n hideFooter: {\n type: Boolean,\n default: false\n },\n hideHeaderClose: {\n type: Boolean,\n default: false\n },\n hideBackdrop: {\n type: Boolean,\n default: false\n },\n okOnly: {\n type: Boolean,\n default: false\n },\n okDisabled: {\n type: Boolean,\n default: false\n },\n cancelDisabled: {\n type: Boolean,\n default: false\n },\n visible: {\n type: Boolean,\n default: false\n },\n returnFocus: {\n default: null\n },\n headerCloseLabel: {\n type: String,\n default: 'Close'\n },\n cancelTitle: {\n type: String,\n default: 'Cancel'\n },\n okTitle: {\n type: String,\n default: 'OK'\n },\n cancelVariant: {\n type: String,\n default: 'secondary'\n },\n okVariant: {\n type: String,\n default: 'primary'\n },\n lazy: {\n type: Boolean,\n default: false\n },\n busy: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n modalClasses: function modalClasses() {\n return ['modal', {\n fade: !this.noFade,\n show: this.is_show,\n 'd-block': this.is_block\n }, this.modalClass];\n },\n dialogClasses: function dialogClasses() {\n var _ref;\n\n return ['modal-dialog', (_ref = {}, _defineProperty(_ref, 'modal-' + this.size, Boolean(this.size)), _defineProperty(_ref, 'modal-dialog-centered', this.centered), _ref)];\n },\n backdropClasses: function backdropClasses() {\n return ['modal-backdrop', {\n fade: !this.noFade,\n show: this.is_show || this.noFade\n }];\n },\n headerClasses: function headerClasses() {\n var _ref2;\n\n return ['modal-header', (_ref2 = {}, _defineProperty(_ref2, 'bg-' + this.headerBgVariant, Boolean(this.headerBgVariant)), _defineProperty(_ref2, 'text-' + this.headerTextVariant, Boolean(this.headerTextVariant)), _defineProperty(_ref2, 'border-' + this.headerBorderVariant, Boolean(this.headerBorderVariant)), _ref2), this.headerClass];\n },\n bodyClasses: function bodyClasses() {\n var _ref3;\n\n return ['modal-body', (_ref3 = {}, _defineProperty(_ref3, 'bg-' + this.bodyBgVariant, Boolean(this.bodyBgVariant)), _defineProperty(_ref3, 'text-' + this.bodyTextVariant, Boolean(this.bodyTextVariant)), _ref3), this.bodyClass];\n },\n footerClasses: function footerClasses() {\n var _ref4;\n\n return ['modal-footer', (_ref4 = {}, _defineProperty(_ref4, 'bg-' + this.footerBgVariant, Boolean(this.footerBgVariant)), _defineProperty(_ref4, 'text-' + this.footerTextVariant, Boolean(this.footerTextVariant)), _defineProperty(_ref4, 'border-' + this.footerBorderVariant, Boolean(this.footerBorderVariant)), _ref4), this.footerClass];\n }\n },\n watch: {\n visible: function visible(newVal, oldVal) {\n if (newVal === oldVal) {\n return;\n }\n this[newVal ? 'show' : 'hide']();\n }\n },\n methods: {\n // Public Methods\n show: function show() {\n if (this.is_visible) {\n return;\n }\n var showEvt = new BvEvent('show', {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.modal,\n relatedTarget: null\n });\n this.emitEvent(showEvt);\n if (showEvt.defaultPrevented || this.is_visible) {\n // Don't show if canceled\n return;\n }\n if (hasClass(document.body, 'modal-open')) {\n // If another modal is already open, wait for it to close\n this.$root.$once('bv::modal::hidden', this.doShow);\n } else {\n // Show the modal\n this.doShow();\n }\n },\n hide: function hide(trigger) {\n if (!this.is_visible) {\n return;\n }\n var hideEvt = new BvEvent('hide', {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.modal,\n // this could be the trigger element/component reference\n relatedTarget: null,\n isOK: trigger || null,\n trigger: trigger || null,\n cancel: function cancel() {\n // Backwards compatibility\n warn('b-modal: evt.cancel() is deprecated. Please use evt.preventDefault().');\n this.preventDefault();\n }\n });\n if (trigger === 'ok') {\n this.$emit('ok', hideEvt);\n } else if (trigger === 'cancel') {\n this.$emit('cancel', hideEvt);\n }\n this.emitEvent(hideEvt);\n // Hide if not canceled\n if (hideEvt.defaultPrevented || !this.is_visible) {\n return;\n }\n // stop observing for content changes\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n this.is_visible = false;\n this.$emit('change', false);\n },\n\n // Private method to finish showing modal\n doShow: function doShow() {\n var _this2 = this;\n\n // Plce modal in DOM if lazy\n this.is_hidden = false;\n this.$nextTick(function () {\n // We do this in nextTick to ensure the modal is in DOM first before we show it\n _this2.is_visible = true;\n _this2.$emit('change', true);\n // Observe changes in modal content and adjust if necessary\n _this2._observer = observeDom(_this2.$refs.content, _this2.adjustDialog.bind(_this2), OBSERVER_CONFIG);\n });\n },\n\n // Transition Handlers\n onBeforeEnter: function onBeforeEnter() {\n this.is_transitioning = true;\n this.checkScrollbar();\n this.setScrollbar();\n this.adjustDialog();\n addClass(document.body, 'modal-open');\n this.setResizeEvent(true);\n },\n onEnter: function onEnter() {\n this.is_block = true;\n this.$refs.modal.scrollTop = 0;\n },\n onAfterEnter: function onAfterEnter() {\n var _this3 = this;\n\n this.is_show = true;\n this.is_transitioning = false;\n this.$nextTick(function () {\n _this3.focusFirst();\n var shownEvt = new BvEvent('shown', {\n cancelable: false,\n vueTarget: _this3,\n target: _this3.$refs.modal,\n relatedTarget: null\n });\n _this3.emitEvent(shownEvt);\n });\n },\n onBeforeLeave: function onBeforeLeave() {\n this.is_transitioning = true;\n this.setResizeEvent(false);\n },\n onLeave: function onLeave() {\n // Remove the 'show' class\n this.is_show = false;\n },\n onAfterLeave: function onAfterLeave() {\n var _this4 = this;\n\n this.is_block = false;\n this.resetAdjustments();\n this.resetScrollbar();\n this.is_transitioning = false;\n removeClass(document.body, 'modal-open');\n this.$nextTick(function () {\n _this4.is_hidden = _this4.lazy || false;\n _this4.returnFocusTo();\n var hiddenEvt = new BvEvent('hidden', {\n cancelable: false,\n vueTarget: _this4,\n target: _this4.lazy ? null : _this4.$refs.modal,\n relatedTarget: null\n });\n _this4.emitEvent(hiddenEvt);\n });\n },\n\n // Event emitter\n emitEvent: function emitEvent(bvEvt) {\n var type = bvEvt.type;\n this.$emit(type, bvEvt);\n this.$root.$emit('bv::modal::' + type, bvEvt);\n },\n\n // UI Event Handlers\n onClickOut: function onClickOut(evt) {\n // If backdrop clicked, hide modal\n if (this.is_visible && !this.noCloseOnBackdrop) {\n this.hide('backdrop');\n }\n },\n onEsc: function onEsc(evt) {\n // If ESC pressed, hide modal\n if (evt.keyCode === KeyCodes.ESC && this.is_visible && !this.noCloseOnEsc) {\n this.hide('esc');\n }\n },\n onFocusout: function onFocusout(evt) {\n // If focus leaves modal, bring it back\n // 'focusout' Event Listener bound on content\n var content = this.$refs.content;\n if (!this.noEnforceFocus && this.is_visible && content && !content.contains(evt.relatedTarget)) {\n content.focus();\n }\n },\n\n // Resize Listener\n setResizeEvent: function setResizeEvent(on) {\n var _this5 = this;\n\n ;['resize', 'orientationchange'].forEach(function (evtName) {\n if (on) {\n eventOn(window, evtName, _this5.adjustDialog);\n } else {\n eventOff(window, evtName, _this5.adjustDialog);\n }\n });\n },\n\n // Root Listener handlers\n showHandler: function showHandler(id, triggerEl) {\n if (id === this.id) {\n this.return_focus = triggerEl || null;\n this.show();\n }\n },\n hideHandler: function hideHandler(id) {\n if (id === this.id) {\n this.hide();\n }\n },\n modalListener: function modalListener(bvEvt) {\n // If another modal opens, close this one\n if (bvEvt.vueTarget !== this) {\n this.hide();\n }\n },\n\n // Focus control handlers\n focusFirst: function focusFirst() {\n // Don't try and focus if we are SSR\n if (typeof document === 'undefined') {\n return;\n }\n var content = this.$refs.content;\n var modal = this.$refs.modal;\n var activeElement = document.activeElement;\n if (activeElement && content && content.contains(activeElement)) {\n // If activeElement is child of content, no need to change focus\n } else if (content) {\n if (modal) {\n modal.scrollTop = 0;\n }\n // Focus the modal content wrapper\n content.focus();\n }\n },\n returnFocusTo: function returnFocusTo() {\n // Prefer returnFocus prop over event specified return_focus value\n var el = this.returnFocus || this.return_focus || null;\n if (typeof el === 'string') {\n // CSS Selector\n el = select(el);\n }\n if (el) {\n el = el.$el || el;\n if (isVisible(el)) {\n el.focus();\n }\n }\n },\n\n // Utility methods\n getScrollbarWidth: function getScrollbarWidth() {\n var scrollDiv = document.createElement('div');\n scrollDiv.className = 'modal-scrollbar-measure';\n document.body.appendChild(scrollDiv);\n this.scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n },\n adjustDialog: function adjustDialog() {\n if (!this.is_visible) {\n return;\n }\n var modal = this.$refs.modal;\n var isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight;\n if (!this.isBodyOverflowing && isModalOverflowing) {\n modal.style.paddingLeft = this.scrollbarWidth + 'px';\n }\n if (this.isBodyOverflowing && !isModalOverflowing) {\n modal.style.paddingRight = this.scrollbarWidth + 'px';\n }\n },\n resetAdjustments: function resetAdjustments() {\n var modal = this.$refs.modal;\n if (modal) {\n modal.style.paddingLeft = '';\n modal.style.paddingRight = '';\n }\n },\n checkScrollbar: function checkScrollbar() {\n var rect = getBCR(document.body);\n this.isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n },\n setScrollbar: function setScrollbar() {\n if (this.isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n var computedStyle = window.getComputedStyle;\n var body = document.body;\n var scrollbarWidth = this.scrollbarWidth;\n // Adjust fixed content padding\n selectAll(Selector.FIXED_CONTENT).forEach(function (el) {\n var actualPadding = el.style.paddingRight;\n var calculatedPadding = computedStyle(el).paddingRight || 0;\n setAttr(el, 'data-padding-right', actualPadding);\n el.style.paddingRight = parseFloat(calculatedPadding) + scrollbarWidth + 'px';\n });\n // Adjust sticky content margin\n selectAll(Selector.STICKY_CONTENT).forEach(function (el) {\n var actualMargin = el.style.marginRight;\n var calculatedMargin = computedStyle(el).marginRight || 0;\n setAttr(el, 'data-margin-right', actualMargin);\n el.style.marginRight = parseFloat(calculatedMargin) - scrollbarWidth + 'px';\n });\n // Adjust navbar-toggler margin\n selectAll(Selector.NAVBAR_TOGGLER).forEach(function (el) {\n var actualMargin = el.style.marginRight;\n var calculatedMargin = computedStyle(el).marginRight || 0;\n setAttr(el, 'data-margin-right', actualMargin);\n el.style.marginRight = parseFloat(calculatedMargin) + scrollbarWidth + 'px';\n });\n // Adjust body padding\n var actualPadding = body.style.paddingRight;\n var calculatedPadding = computedStyle(body).paddingRight;\n setAttr(body, 'data-padding-right', actualPadding);\n body.style.paddingRight = parseFloat(calculatedPadding) + scrollbarWidth + 'px';\n }\n },\n resetScrollbar: function resetScrollbar() {\n // Restore fixed content padding\n selectAll(Selector.FIXED_CONTENT).forEach(function (el) {\n if (hasAttr(el, 'data-padding-right')) {\n el.style.paddingRight = getAttr(el, 'data-padding-right') || '';\n removeAttr(el, 'data-padding-right');\n }\n });\n // Restore sticky content and navbar-toggler margin\n selectAll(Selector.STICKY_CONTENT + ', ' + Selector.NAVBAR_TOGGLER).forEach(function (el) {\n if (hasAttr(el, 'data-margin-right')) {\n el.style.marginRight = getAttr(el, 'data-margin-right') || '';\n removeAttr(el, 'data-margin-right');\n }\n });\n // Restore body padding\n var body = document.body;\n if (hasAttr(body, 'data-padding-right')) {\n body.style.paddingRight = getAttr(body, 'data-padding-right') || '';\n removeAttr(body, 'data-padding-right');\n }\n }\n },\n created: function created() {\n // create non-reactive property\n this._observer = null;\n },\n mounted: function mounted() {\n // Measure scrollbar\n this.getScrollbarWidth();\n // Listen for events from others to either open or close ourselves\n this.listenOnRoot('bv::show::modal', this.showHandler);\n this.listenOnRoot('bv::hide::modal', this.hideHandler);\n // Listen for bv:modal::show events, and close ourselves if the opening modal not us\n this.listenOnRoot('bv::modal::show', this.modalListener);\n // Initially show modal?\n if (this.visible === true) {\n this.show();\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Ensure everything is back to normal\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n this.setResizeEvent(false);\n // Re-adjust body/navbar/fixed padding/margins (if needed)\n removeClass(document.body, 'modal-open');\n this.resetAdjustments();\n this.resetScrollbar();\n }\n};","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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { assign, defineProperty, defineProperties, readonlyDescriptor } from '../utils/object';\n\nvar BvEvent = function () {\n function BvEvent(type) {\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvEvent);\n\n // Start by emulating native Event constructor.\n if (!type) {\n throw new TypeError('Failed to construct \\'' + this.constructor.name + '\\'. 1 argument required, ' + arguments.length + ' given.');\n }\n // Assign defaults first, the eventInit,\n // and the type last so it can't be overwritten.\n assign(this, BvEvent.defaults(), eventInit, { type: type });\n // Freeze some props as readonly, but leave them enumerable.\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor()\n });\n // Create a private variable using closure scoping.\n var defaultPrevented = false;\n // Recreate preventDefault method. One way setter.\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true;\n }\n };\n // Create 'defaultPrevented' publicly accessible prop\n // that can only be altered by the preventDefault method.\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get: function get() {\n return defaultPrevented;\n }\n });\n }\n\n _createClass(BvEvent, null, [{\n key: 'defaults',\n value: function defaults() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null\n };\n }\n }]);\n\n return BvEvent;\n}();\n\nexport default BvEvent;","import bModal from './modal';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bModal: bModal\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { bindTargets, unbindTargets } from '../../utils/target';\nimport { setAttr, removeAttr } from '../../utils/dom';\n\nvar listenTypes = { click: true };\n\nexport default {\n // eslint-disable-next-line no-shadow-restricted-names\n bind: function bind(el, binding, vnode) {\n bindTargets(vnode, binding, listenTypes, function (_ref) {\n var targets = _ref.targets,\n vnode = _ref.vnode;\n\n targets.forEach(function (target) {\n vnode.context.$root.$emit('bv::show::modal', target, vnode.elm);\n });\n });\n if (el.tagName !== 'BUTTON') {\n // If element is not a button, we add `role=\"button\"` for accessibility\n setAttr(el, 'role', 'button');\n }\n },\n unbind: function unbind(el, binding, vnode) {\n unbindTargets(vnode, binding, listenTypes);\n if (el.tagName !== 'BUTTON') {\n // If element is not a button, we add `role=\"button\"` for accessibility\n removeAttr(el, 'role', 'button');\n }\n }\n};","import bNav from './nav';\nimport bNavItem from './nav-item';\nimport bNavText from './nav-text';\nimport bNavForm from './nav-form';\nimport bNavItemDropdown from './nav-item-dropdown';\nimport dropdownPlugin from '../dropdown';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bNav: bNav,\n bNavItem: bNavItem,\n bNavText: bNavText,\n bNavForm: bNavForm,\n bNavItemDropdown: bNavItemDropdown,\n bNavItemDd: bNavItemDropdown,\n bNavDropdown: bNavItemDropdown,\n bNavDd: bNavItemDropdown\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n Vue.use(dropdownPlugin);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\nimport warn from '../../utils/warn';\n\nexport var props = {\n tag: {\n type: String,\n default: 'ul'\n },\n fill: {\n type: Boolean,\n default: false\n },\n justified: {\n type: Boolean,\n default: false\n },\n tabs: {\n type: Boolean,\n default: false\n },\n pills: {\n type: Boolean,\n default: false\n },\n vertical: {\n type: Boolean,\n default: false\n },\n isNavBar: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n if (props.isNavBar) {\n warn(\"b-nav: Prop 'is-nav-bar' is deprecated. Please use component '<b-navbar-nav>' instead.\");\n }\n return h(props.tag, mergeData(data, {\n class: {\n 'nav': !props.isNavBar,\n 'navbar-nav': props.isNavBar,\n 'nav-tabs': props.tabs && !props.isNavBar,\n 'nav-pills': props.pills && !props.isNavBar,\n 'flex-column': props.vertical && !props.isNavBar,\n 'nav-fill': props.fill,\n 'nav-justified': props.justified\n }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nexport var props = linkPropsFactory();\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h('li', mergeData(data, {\n staticClass: 'nav-item'\n }), [h(Link, { staticClass: 'nav-link', props: props }, children)]);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'span'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, { staticClass: 'navbar-text' }), children);\n }\n};","import Form from '../form/form';\nimport { mergeData } from 'vue-functional-data-merge';\n\nexport default {\n functional: true,\n props: {\n id: {\n type: String,\n default: null\n }\n },\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(Form, mergeData(data, { attrs: { id: props.id }, props: { inline: true } }), children);\n }\n};","import idMixin from '../../mixins/id';\nimport dropdownMixin from '../../mixins/dropdown';\n\nexport default {\n mixins: [idMixin, dropdownMixin],\n render: function render(h) {\n var button = h('a', {\n class: this.toggleClasses,\n ref: 'toggle',\n attrs: {\n href: '#',\n id: this.safeId('_BV_button_'),\n disabled: this.disabled,\n 'aria-haspopup': 'true',\n 'aria-expanded': this.visible ? 'true' : 'false'\n },\n on: {\n click: this.toggle,\n keydown: this.toggle // space, enter, down\n }\n }, [this.$slots['button-content'] || this.$slots.text || h('span', { domProps: { innerHTML: this.text } })]);\n var menu = h('div', {\n class: this.menuClasses,\n ref: 'menu',\n attrs: { 'aria-labelledby': this.safeId('_BV_button_') },\n on: {\n mouseover: this.onMouseOver,\n keydown: this.onKeydown // tab, up, down, esc\n }\n }, [this.$slots.default]);\n return h('li', { attrs: { id: this.safeId() }, class: this.dropdownClasses }, [button, menu]);\n },\n\n computed: {\n isNav: function isNav() {\n // Signal to dropdown mixin that we are in a navbar\n return true;\n },\n dropdownClasses: function dropdownClasses() {\n return ['nav-item', 'b-nav-dropdown', 'dropdown', this.dropup ? 'dropup' : '', this.visible ? 'show' : ''];\n },\n toggleClasses: function toggleClasses() {\n return ['nav-link', this.noCaret ? '' : 'dropdown-toggle', this.disabled ? 'disabled' : '', this.extraToggleClasses ? this.extraToggleClasses : ''];\n },\n menuClasses: function menuClasses() {\n return ['dropdown-menu', this.right ? 'dropdown-menu-right' : 'dropdown-menu-left', this.visible ? 'show' : '', this.extraMenuClasses ? this.extraMenuClasses : ''];\n }\n },\n props: {\n noCaret: {\n type: Boolean,\n default: false\n },\n extraToggleClasses: {\n // Extra Toggle classes\n type: String,\n default: ''\n },\n extraMenuClasses: {\n // Extra Menu classes\n type: String,\n default: ''\n },\n role: {\n type: String,\n default: 'menu'\n }\n }\n};","import bNavbar from './navbar';\nimport bNavbarNav from './navbar-nav';\nimport bNavbarBrand from './navbar-brand';\nimport bNavbarToggle from './navbar-toggle';\nimport navPlugin from '../nav';\nimport collapsePlugin from '../collapse';\nimport dropdownPlugin from '../dropdown';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bNavbar: bNavbar,\n bNavbarNav: bNavbarNav,\n bNavbarBrand: bNavbarBrand,\n bNavbarToggle: bNavbarToggle,\n bNavToggle: bNavbarToggle\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n Vue.use(navPlugin);\n Vue.use(collapsePlugin);\n Vue.use(dropdownPlugin);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'nav'\n },\n type: {\n type: String,\n default: 'light'\n },\n variant: {\n type: String\n },\n toggleable: {\n type: [Boolean, String],\n default: false\n },\n toggleBreakpoint: {\n // Deprecated. Set toggleable to a string breakpoint\n type: String,\n default: null\n },\n fixed: {\n type: String\n },\n sticky: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var breakpoint = props.toggleBreakpoint || (props.toggleable === true ? 'sm' : props.toggleable) || 'sm';\n return h(props.tag, mergeData(data, {\n staticClass: 'navbar',\n class: (_class = {}, _defineProperty(_class, 'navbar-' + props.type, Boolean(props.type)), _defineProperty(_class, 'bg-' + props.variant, Boolean(props.variant)), _defineProperty(_class, 'fixed-' + props.fixed, Boolean(props.fixed)), _defineProperty(_class, 'sticky-top', props.sticky), _defineProperty(_class, 'navbar-expand-' + breakpoint, props.toggleable !== false), _class)\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'ul'\n },\n fill: {\n type: Boolean,\n default: false\n },\n justified: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'navbar-nav',\n class: {\n 'nav-fill': props.fill,\n 'nav-justified': props.justified\n }\n }), children);\n }\n};","import Link, { propsFactory } from '../link/link';\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\n\nvar linkProps = propsFactory();\nlinkProps.href.default = undefined;\nlinkProps.to.default = undefined;\n\nexport var props = assign(linkProps, {\n tag: {\n type: String,\n default: 'div'\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var isLink = Boolean(props.to || props.href);\n var tag = isLink ? Link : props.tag;\n\n return h(tag, mergeData(data, {\n staticClass: 'navbar-brand',\n props: isLink ? pluckProps(linkProps, props) : {}\n }), children);\n }\n};","import listenOnRootMixin from '../../mixins/listen-on-root';\n\nexport default {\n mixins: [listenOnRootMixin],\n render: function render(h) {\n return h('button', {\n class: ['navbar-toggler'],\n attrs: {\n type: 'button',\n 'aria-label': this.label,\n 'aria-controls': this.target,\n 'aria-expanded': this.toggleState ? 'true' : 'false'\n },\n on: { click: this.onClick }\n }, [this.$slots.default || h('span', { class: ['navbar-toggler-icon'] })]);\n },\n data: function data() {\n return {\n toggleState: false\n };\n },\n\n props: {\n label: {\n type: String,\n default: 'Toggle navigation'\n },\n target: {\n type: String,\n required: true\n }\n },\n methods: {\n onClick: function onClick() {\n this.$root.$emit('bv::toggle::collapse', this.target);\n },\n handleStateEvt: function handleStateEvt(id, state) {\n if (id === this.target) {\n this.toggleState = state;\n }\n }\n },\n created: function created() {\n this.listenOnRoot('bv::collapse::state', this.handleStateEvt);\n }\n};","import bPagination from './pagination';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bPagination: bPagination\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import paginationMixin from '../../mixins/pagination';\nimport { isVisible } from '../../utils/dom';\n\nvar props = {\n perPage: {\n type: Number,\n default: 20\n },\n totalRows: {\n type: Number,\n default: 20\n },\n ariaControls: {\n type: String,\n default: null\n }\n\n // Our render function is brought in from the pagination mixin\n};export default {\n mixins: [paginationMixin],\n props: props,\n computed: {\n numberOfPages: function numberOfPages() {\n var result = Math.ceil(this.totalRows / this.perPage);\n return result < 1 ? 1 : result;\n }\n },\n methods: {\n // These methods are used by the render function\n onClick: function onClick(num, evt) {\n var _this = this;\n\n // Handle edge cases where number of pages has changed (i.e. if perPage changes)\n if (num > this.numberOfPages) {\n num = this.numberOfPages;\n } else if (num < 1) {\n num = 1;\n }\n this.currentPage = num;\n this.$nextTick(function () {\n // Keep the current button focused if possible\n var target = evt.target;\n if (isVisible(target) && _this.$el.contains(target) && target.focus) {\n target.focus();\n } else {\n _this.focusCurrent();\n }\n });\n this.$emit('change', this.currentPage);\n },\n makePage: function makePage(pagenum) {\n return pagenum;\n },\n linkProps: function linkProps(pagenum) {\n return { href: '#' };\n }\n }\n};","/*\n * Comon props, computed, data, render function, and methods for b-pagination and b-pagination-nav\n */\n\nimport range from '../utils/range';\nimport KeyCodes from '../utils/key-codes';\nimport { isVisible, isDisabled, selectAll, getAttr } from '../utils/dom';\nimport bLink from '../components/link/link';\n\n// Make an array of N to N+X\nfunction makePageArray(startNum, numPages) {\n return range(numPages).map(function (value, index) {\n return { number: index + startNum, className: null };\n });\n}\n\n// Threshold of limit size when we start/stop showing ellipsis\nvar ELLIPSIS_THRESHOLD = 3;\n\n// Props object\nvar props = {\n disabled: {\n type: Boolean,\n default: false\n },\n value: {\n type: Number,\n default: 1\n },\n limit: {\n type: Number,\n default: 5\n },\n size: {\n type: String,\n default: 'md'\n },\n align: {\n type: String,\n default: 'left'\n },\n hideGotoEndButtons: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: 'Pagination'\n },\n labelFirstPage: {\n type: String,\n default: 'Goto first page'\n },\n firstText: {\n type: String,\n default: '«'\n },\n labelPrevPage: {\n type: String,\n default: 'Goto previous page'\n },\n prevText: {\n type: String,\n default: '‹'\n },\n labelNextPage: {\n type: String,\n default: 'Goto next page'\n },\n nextText: {\n type: String,\n default: '›'\n },\n labelLastPage: {\n type: String,\n default: 'Goto last page'\n },\n lastText: {\n type: String,\n default: '»'\n },\n labelPage: {\n type: String,\n default: 'Goto page'\n },\n hideEllipsis: {\n type: Boolean,\n default: false\n },\n ellipsisText: {\n type: String,\n default: '…'\n }\n};\n\nexport default {\n components: { bLink: bLink },\n data: function data() {\n return {\n showFirstDots: false,\n showLastDots: false,\n currentPage: this.value\n };\n },\n\n props: props,\n render: function render(h) {\n var _this = this;\n\n var buttons = [];\n\n // Factory function for prev/next/first/last buttons\n var makeEndBtns = function makeEndBtns(linkTo, ariaLabel, btnText, pageTest) {\n var button = void 0;\n pageTest = pageTest || linkTo; // Page # to test against to disable\n if (_this.disabled || _this.isActive(pageTest)) {\n button = h('li', {\n class: ['page-item', 'disabled'],\n attrs: { role: 'none presentation', 'aria-hidden': 'true' }\n }, [h('span', {\n class: ['page-link'],\n domProps: { innerHTML: btnText }\n })]);\n } else {\n button = h('li', {\n class: ['page-item'],\n attrs: { role: 'none presentation' }\n }, [h('b-link', {\n class: ['page-link'],\n props: _this.linkProps(linkTo),\n attrs: {\n role: 'menuitem',\n tabindex: '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': _this.ariaControls || null\n },\n on: {\n click: function click(evt) {\n _this.onClick(linkTo, evt);\n },\n keydown: function keydown(evt) {\n // Links don't normally respond to SPACE, so we add that functionality\n if (evt.keyCode === KeyCodes.SPACE) {\n evt.preventDefault();\n _this.onClick(linkTo, evt);\n }\n }\n }\n }, [h('span', {\n attrs: { 'aria-hidden': 'true' },\n domProps: { innerHTML: btnText }\n })])]);\n }\n return button;\n };\n\n // Ellipsis factory\n var makeEllipsis = function makeEllipsis() {\n return h('li', {\n class: ['page-item', 'disabled', 'd-none', 'd-sm-flex'],\n attrs: { role: 'separator' }\n }, [h('span', {\n class: ['page-link'],\n domProps: { innerHTML: _this.ellipsisText }\n })]);\n };\n\n // Goto First Page button\n buttons.push(this.hideGotoEndButtons ? h(false) : makeEndBtns(1, this.labelFirstPage, this.firstText));\n\n // Goto Previous page button\n buttons.push(makeEndBtns(this.currentPage - 1, this.labelPrevPage, this.prevText, 1));\n\n // First Ellipsis Bookend\n buttons.push(this.showFirstDots ? makeEllipsis() : h(false));\n\n // Individual Page links\n this.pageList.forEach(function (page) {\n var inner = void 0;\n var pageNum = _this.makePage(page.number);\n if (_this.disabled) {\n inner = h('span', {\n class: ['page-link'],\n domProps: { innerHTML: pageNum }\n });\n } else {\n var active = _this.isActive(page.number);\n inner = h('b-link', {\n class: _this.pageLinkClasses(page),\n props: _this.linkProps(page.number),\n attrs: {\n role: 'menuitemradio',\n tabindex: active ? '0' : '-1',\n 'aria-controls': _this.ariaControls || null,\n 'aria-label': _this.labelPage + ' ' + page.number,\n 'aria-checked': active ? 'true' : 'false',\n 'aria-posinset': page.number,\n 'aria-setsize': _this.numberOfPages\n },\n domProps: { innerHTML: pageNum },\n on: {\n click: function click(evt) {\n _this.onClick(page.number, evt);\n },\n keydown: function keydown(evt) {\n if (evt.keyCode === KeyCodes.SPACE) {\n evt.preventDefault();\n _this.onClick(page.number, evt);\n }\n }\n }\n });\n }\n buttons.push(h('li', {\n key: page.number,\n class: _this.pageItemClasses(page),\n attrs: { role: 'none presentation' }\n }, [inner]));\n });\n\n // Last Ellipsis Bookend\n buttons.push(this.showLastDots ? makeEllipsis() : h(false));\n\n // Goto Next page button\n buttons.push(makeEndBtns(this.currentPage + 1, this.labelNextPage, this.nextText, this.numberOfPages));\n\n // Goto Last Page button\n buttons.push(this.hideGotoEndButtons ? h(false) : makeEndBtns(this.numberOfPages, this.labelLastPage, this.lastText));\n\n // Assemble the paginatiom buttons\n var pagination = h('ul', {\n ref: 'ul',\n class: ['pagination', 'b-pagination', this.btnSize, this.alignment],\n attrs: {\n role: 'menubar',\n 'aria-disabled': this.disabled ? 'true' : 'false',\n 'aria-label': this.ariaLabel || null\n },\n on: {\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n var shift = evt.shiftKey;\n if (keyCode === KeyCodes.LEFT) {\n evt.preventDefault();\n shift ? _this.focusFirst() : _this.focusPrev();\n } else if (keyCode === KeyCodes.RIGHT) {\n evt.preventDefault();\n shift ? _this.focusLast() : _this.focusNext();\n }\n }\n }\n }, buttons);\n\n // if we are pagination-nav, wrap in '<nav>' wrapper\n return this.isNav ? h('nav', {}, [pagination]) : pagination;\n },\n\n watch: {\n currentPage: function currentPage(newPage, oldPage) {\n if (newPage !== oldPage) {\n this.$emit('input', newPage);\n }\n },\n value: function value(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = newValue;\n }\n }\n },\n computed: {\n btnSize: function btnSize() {\n return this.size ? 'pagination-' + this.size : '';\n },\n alignment: function alignment() {\n if (this.align === 'center') {\n return 'justify-content-center';\n } else if (this.align === 'end' || this.align === 'right') {\n return 'justify-content-end';\n }\n return '';\n },\n pageList: function pageList() {\n // Sanity checks\n if (this.currentPage > this.numberOfPages) {\n this.currentPage = this.numberOfPages;\n } else if (this.currentPage < 1) {\n this.currentPage = 1;\n }\n // - Hide first ellipsis marker\n this.showFirstDots = false;\n // - Hide last ellipsis marker\n this.showLastDots = false;\n var numLinks = this.limit;\n var startNum = 1;\n if (this.numberOfPages <= this.limit) {\n // Special Case: Less pages available than the limit of displayed pages\n numLinks = this.numberOfPages;\n } else if (this.currentPage < this.limit - 1 && this.limit > ELLIPSIS_THRESHOLD) {\n // We are near the beginning of the page list\n if (!this.hideEllipsis) {\n numLinks = this.limit - 1;\n this.showLastDots = true;\n }\n } else if (this.numberOfPages - this.currentPage + 2 < this.limit && this.limit > ELLIPSIS_THRESHOLD) {\n // We are near the end of the list\n if (!this.hideEllipsis) {\n this.showFirstDots = true;\n numLinks = this.limit - 1;\n }\n startNum = this.numberOfPages - numLinks + 1;\n } else {\n // We are somewhere in the middle of the page list\n if (this.limit > ELLIPSIS_THRESHOLD && !this.hideEllipsis) {\n this.showFirstDots = true;\n this.showLastDots = true;\n numLinks = this.limit - 2;\n }\n startNum = this.currentPage - Math.floor(numLinks / 2);\n }\n // Sanity checks\n if (startNum < 1) {\n startNum = 1;\n } else if (startNum > this.numberOfPages - numLinks) {\n startNum = this.numberOfPages - numLinks + 1;\n }\n // Generate list of page numbers\n var pages = makePageArray(startNum, numLinks);\n // We limit to a total of 3 page buttons on small screens\n // Ellipsis will also be hidden on small screens\n if (pages.length > 3) {\n var idx = this.currentPage - startNum;\n if (idx === 0) {\n // Keep leftmost 3 buttons visible\n for (var i = 3; i < pages.length; i++) {\n pages[i].className = 'd-none d-sm-flex';\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible\n for (var _i = 0; _i < pages.length - 3; _i++) {\n pages[_i].className = 'd-none d-sm-flex';\n }\n } else {\n // hide left button(s)\n for (var _i2 = 0; _i2 < idx - 1; _i2++) {\n pages[_i2].className = 'd-none d-sm-flex';\n }\n // hide right button(s)\n for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {\n pages[_i3].className = 'd-none d-sm-flex';\n }\n }\n }\n return pages;\n }\n },\n methods: {\n isActive: function isActive(pagenum) {\n return pagenum === this.currentPage;\n },\n pageItemClasses: function pageItemClasses(page) {\n return ['page-item', this.disabled ? 'disabled' : '', this.isActive(page.number) ? 'active' : '', page.className];\n },\n pageLinkClasses: function pageLinkClasses(page) {\n return ['page-link', this.disabled ? 'disabled' : '',\n // Interim workaround to get better focus styling of active button\n // See https://github.com/twbs/bootstrap/issues/24838\n this.isActive(page.number) ? 'btn-primary' : ''];\n },\n getButtons: function getButtons() {\n // Return only buttons that are visible\n return selectAll('a.page-link', this.$el).filter(function (btn) {\n return isVisible(btn);\n });\n },\n setBtnFocus: function setBtnFocus(btn) {\n this.$nextTick(function () {\n btn.focus();\n });\n },\n focusCurrent: function focusCurrent() {\n var _this2 = this;\n\n var btn = this.getButtons().find(function (el) {\n return parseInt(getAttr(el, 'aria-posinset'), 10) === _this2.currentPage;\n });\n if (btn && btn.focus) {\n this.setBtnFocus(btn);\n } else {\n // Fallback if current page is not in button list\n this.focusFirst();\n }\n },\n focusFirst: function focusFirst() {\n var btn = this.getButtons().find(function (el) {\n return !isDisabled(el);\n });\n if (btn && btn.focus && btn !== document.activeElement) {\n this.setBtnFocus(btn);\n }\n },\n focusLast: function focusLast() {\n var btn = this.getButtons().reverse().find(function (el) {\n return !isDisabled(el);\n });\n if (btn && btn.focus && btn !== document.activeElement) {\n this.setBtnFocus(btn);\n }\n },\n focusPrev: function focusPrev() {\n var buttons = this.getButtons();\n var idx = buttons.indexOf(document.activeElement);\n if (idx > 0 && !isDisabled(buttons[idx - 1]) && buttons[idx - 1].focus) {\n this.setBtnFocus(buttons[idx - 1]);\n }\n },\n focusNext: function focusNext() {\n var buttons = this.getButtons();\n var idx = buttons.indexOf(document.activeElement);\n var cnt = buttons.length - 1;\n if (idx < cnt && !isDisabled(buttons[idx + 1]) && buttons[idx + 1].focus) {\n this.setBtnFocus(buttons[idx + 1]);\n }\n }\n }\n};","/**\n * @param {number} length\n * @return {Array}\n */\nexport default (function (length) {\n return Array.apply(null, { length: length });\n});","import bPaginationNav from './pagination-nav';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bPaginationNav: bPaginationNav\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { assign } from '../../utils/object';\nimport paginationMixin from '../../mixins/pagination';\nimport { pickLinkProps } from '../link/link';\n\n// Props needed for router links\nvar routerProps = pickLinkProps('activeClass', 'exactActiveClass', 'append', 'exact', 'replace', 'target', 'rel');\n\n// Props object\nvar props = assign(\n// pagination-nav specific props\n{\n numberOfPages: {\n type: Number,\n default: 1\n },\n baseUrl: {\n type: String,\n default: '/'\n },\n useRouter: {\n type: Boolean,\n default: false\n },\n linkGen: {\n type: Function,\n default: null\n },\n pageGen: {\n type: Function,\n default: null\n }\n},\n// Router specific props\nrouterProps);\n// Our render function is brought in via the pagination mixin\nexport default {\n mixins: [paginationMixin],\n props: props,\n computed: {\n // Used by render function to trigger wraping in '<nav>' element\n isNav: function isNav() {\n return true;\n }\n },\n methods: {\n onClick: function onClick(pageNum, evt) {\n this.currentPage = pageNum;\n },\n makePage: function makePage(pagenum) {\n if (this.pageGen && typeof this.pageGen === 'function') {\n return this.pageGen(pagenum);\n }\n return pagenum;\n },\n makeLink: function makeLink(pagenum) {\n if (this.linkGen && typeof this.linkGen === 'function') {\n return this.linkGen(pagenum);\n }\n var link = '' + this.baseUrl + pagenum;\n return this.useRouter ? { path: link } : link;\n },\n linkProps: function linkProps(pagenum) {\n var link = this.makeLink(pagenum);\n var props = {\n href: typeof link === 'string' ? link : void 0,\n target: this.target || null,\n rel: this.rel || null,\n disabled: this.disabled\n };\n if (this.useRouter || (typeof link === 'undefined' ? 'undefined' : _typeof(link)) === 'object') {\n props = assign(props, {\n to: link,\n exact: this.exact,\n activeClass: this.activeClass,\n exactActiveClass: this.exactActiveClass,\n append: this.append,\n replace: this.replace\n });\n }\n return props;\n }\n }\n};","import bPopover from './popover';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bPopover: bPopover\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import PopOver from '../../utils/popover.class';\nimport warn from '../../utils/warn';\nimport toolpopMixin from '../../mixins/toolpop';\n\nexport default {\n mixins: [toolpopMixin],\n render: function render(h) {\n return h('div', {\n class: ['d-none'],\n style: { display: 'none' },\n attrs: { 'aria-hidden': true }\n }, [h('div', { ref: 'title' }, this.$slots.title), h('div', { ref: 'content' }, this.$slots.default)]);\n },\n data: function data() {\n return {};\n },\n\n props: {\n title: {\n type: String,\n default: ''\n },\n content: {\n type: String,\n default: ''\n },\n triggers: {\n type: [String, Array],\n default: 'click'\n },\n placement: {\n type: String,\n default: 'right'\n }\n },\n methods: {\n createToolpop: function createToolpop() {\n // getTarget is in toolpop mixin\n var target = this.getTarget();\n if (target) {\n this._toolpop = new PopOver(target, this.getConfig(), this.$root);\n } else {\n this._toolpop = null;\n warn(\"b-popover: 'target' element not found!\");\n }\n return this._toolpop;\n }\n }\n};","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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\nimport ToolTip from './tooltip.class';\nimport { assign } from './object';\nimport { select, addClass, removeClass, getAttr } from './dom';\n\nvar NAME = 'popover';\nvar CLASS_PREFIX = 'bs-popover';\nvar BSCLS_PREFIX_REGEX = new RegExp('\\\\b' + CLASS_PREFIX + '\\\\S+', 'g');\n\nvar Defaults = assign({}, ToolTip.Default, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n});\n\nvar ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n};\n\nvar Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n\n /* istanbul ignore next: dificult to test in Jest/JSDOM environment */\n};\nvar PopOver = function (_ToolTip) {\n _inherits(PopOver, _ToolTip);\n\n function PopOver() {\n _classCallCheck(this, PopOver);\n\n return _possibleConstructorReturn(this, (PopOver.__proto__ || Object.getPrototypeOf(PopOver)).apply(this, arguments));\n }\n\n _createClass(PopOver, [{\n key: 'isWithContent',\n\n\n // Method overrides\n\n value: function isWithContent(tip) {\n tip = tip || this.$tip;\n if (!tip) {\n return false;\n }\n var hasTitle = Boolean((select(Selector.TITLE, tip) || {}).innerHTML);\n var hasContent = Boolean((select(Selector.CONTENT, tip) || {}).innerHTML);\n return hasTitle || hasContent;\n }\n }, {\n key: 'addAttachmentClass',\n value: function addAttachmentClass(attachment) {\n addClass(this.getTipElement(), CLASS_PREFIX + '-' + attachment);\n }\n }, {\n key: 'setContent',\n value: function setContent(tip) {\n // we use append for html objects to maintain js events/components\n this.setElementContent(select(Selector.TITLE, tip), this.getTitle());\n this.setElementContent(select(Selector.CONTENT, tip), this.getContent());\n\n removeClass(tip, ClassName.FADE);\n removeClass(tip, ClassName.SHOW);\n }\n\n // This method may look identical to ToolTip version, but it uses a different RegEx defined above\n\n }, {\n key: 'cleanTipClass',\n value: function cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.className.match(BSCLS_PREFIX_REGEX);\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.forEach(function (cls) {\n removeClass(tip, cls);\n });\n }\n }\n }, {\n key: 'getTitle',\n value: function getTitle() {\n var title = this.$config.title || '';\n if (typeof title === 'function') {\n title = title(this.$element);\n }\n if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object' && title.nodeType && !title.innerHTML.trim()) {\n // We have a dom node, but without inner content, so just return an empty string\n title = '';\n }\n if (typeof title === 'string') {\n title = title.trim();\n }\n if (!title) {\n // Try and grab element's title attribute\n title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || '';\n title = title.trim();\n }\n return title;\n }\n\n // New methods\n\n }, {\n key: 'getContent',\n value: function getContent() {\n var content = this.$config.content || '';\n if (typeof content === 'function') {\n content = content(this.$element);\n }\n if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && content.nodeType && !content.innerHTML.trim()) {\n // We have a dom node, but without inner content, so just return an empty string\n content = '';\n }\n if (typeof content === 'string') {\n content = content.trim();\n }\n return content;\n }\n }], [{\n key: 'Default',\n\n // Getter overrides\n\n get: function get() {\n return Defaults;\n }\n }, {\n key: 'NAME',\n get: function get() {\n return NAME;\n }\n }]);\n\n return PopOver;\n}(ToolTip);\n\nexport default PopOver;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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\nimport Popper from 'popper.js';\nimport BvEvent from './bv-event.class';\nimport { assign } from './object';\nimport { from as arrayFrom } from './array';\nimport { closest, select, isVisible, isDisabled, getCS, addClass, removeClass, hasClass, setAttr, removeAttr, getAttr, eventOn, eventOff } from './dom';\n\nvar NAME = 'tooltip';\nvar CLASS_PREFIX = 'bs-tooltip';\nvar BSCLS_PREFIX_REGEX = new RegExp('\\\\b' + CLASS_PREFIX + '\\\\S+', 'g');\n\nvar TRANSITION_DURATION = 150;\n\n// Modal $root hidden event\nvar MODAL_CLOSE_EVENT = 'bv::modal::hidden';\n// Modal container for appending tip/popover\nvar MODAL_CLASS = '.modal-content';\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\n\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n};\n\nvar HoverState = {\n SHOW: 'show',\n OUT: 'out'\n};\n\nvar ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n};\n\nvar Selector = {\n TOOLTIP: '.tooltip',\n TOOLTIP_INNER: '.tooltip-inner',\n ARROW: '.arrow'\n\n // ESLINT: Not used\n // const Trigger = {\n // HOVER: 'hover',\n // FOCUS: 'focus',\n // CLICK: 'click',\n // BLUR: 'blur',\n // MANUAL: 'manual'\n // }\n\n};var Defaults = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div>' + '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n placement: 'top',\n offset: 0,\n arrowPadding: 6,\n container: false,\n fallbackPlacement: 'flip',\n callbacks: {},\n boundary: 'scrollParent'\n\n // Transition Event names\n};var TransitionEndEvents = {\n WebkitTransition: ['webkitTransitionEnd'],\n MozTransition: ['transitionend'],\n OTransition: ['otransitionend', 'oTransitionEnd'],\n transition: ['transitionend']\n\n // Client Side Tip ID counter for aria-describedby attribute\n // Could use Alex's uid generator util\n // Each tooltip requires a unique client side ID\n};var NEXTID = 1;\n/* istanbul ignore next */\nfunction generateId(name) {\n return '__BV_' + name + '_' + NEXTID++ + '__';\n}\n\n/*\n * ToolTip Class definition\n */\n/* istanbul ignore next: difficult to test in Jest/JSDOM environment */\n\nvar ToolTip = function () {\n // Main constructor\n function ToolTip(element, config, $root) {\n _classCallCheck(this, ToolTip);\n\n // New tooltip object\n this.$isEnabled = true;\n this.$fadeTimeout = null;\n this.$hoverTimeout = null;\n this.$visibleInterval = null;\n this.$hoverState = '';\n this.$activeTrigger = {};\n this.$popper = null;\n this.$element = element;\n this.$tip = null;\n this.$id = generateId(this.constructor.NAME);\n this.$root = $root || null;\n this.$routeWatcher = null;\n // We use a bound version of the following handlers for root/modal listeners to maintain the 'this' context\n this.$forceHide = this.forceHide.bind(this);\n this.$doHide = this.doHide.bind(this);\n this.$doShow = this.doShow.bind(this);\n this.$doDisable = this.doDisable.bind(this);\n this.$doEnable = this.doEnable.bind(this);\n // Set the configuration\n this.updateConfig(config);\n }\n\n // NOTE: Overridden by PopOver class\n\n\n _createClass(ToolTip, [{\n key: 'updateConfig',\n\n\n // Update config\n value: function updateConfig(config) {\n // Merge config into defaults. We use \"this\" here because PopOver overrides Default\n var updatedConfig = assign({}, this.constructor.Default, config);\n\n // Sanitize delay\n if (config.delay && typeof config.delay === 'number') {\n updatedConfig.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n // Title for tooltip and popover\n if (config.title && typeof config.title === 'number') {\n updatedConfig.title = config.title.toString();\n }\n\n // Content only for popover\n if (config.content && typeof config.content === 'number') {\n updatedConfig.content = config.content.toString();\n }\n\n // Hide element original title if needed\n this.fixTitle();\n // Update the config\n this.$config = updatedConfig;\n // Stop/Restart listening\n this.unListen();\n this.listen();\n }\n\n // Destroy this instance\n\n }, {\n key: 'destroy',\n value: function destroy() {\n // Stop listening to trigger events\n this.unListen();\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n // Clear any timeouts\n clearTimeout(this.$hoverTimeout);\n this.$hoverTimeout = null;\n clearTimeout(this.$fadeTimeout);\n this.$fadeTimeout = null;\n // Remove popper\n if (this.$popper) {\n this.$popper.destroy();\n }\n this.$popper = null;\n // Remove tip from document\n if (this.$tip && this.$tip.parentElement) {\n this.$tip.parentElement.removeChild(this.$tip);\n }\n this.$tip = null;\n // Null out other properties\n this.$id = null;\n this.$isEnabled = null;\n this.$root = null;\n this.$element = null;\n this.$config = null;\n this.$hoverState = null;\n this.$activeTrigger = null;\n this.$forceHide = null;\n this.$doHide = null;\n this.$doShow = null;\n this.$doDisable = null;\n this.$doEnable = null;\n }\n }, {\n key: 'enable',\n value: function enable() {\n // Create a non-cancelable BvEvent\n var enabledEvt = new BvEvent('enabled', {\n cancelable: false,\n target: this.$element,\n relatedTarget: null\n });\n this.$isEnabled = true;\n this.emitEvent(enabledEvt);\n }\n }, {\n key: 'disable',\n value: function disable() {\n // Create a non-cancelable BvEvent\n var disabledEvt = new BvEvent('disabled', {\n cancelable: false,\n target: this.$element,\n relatedTarget: null\n });\n this.$isEnabled = false;\n this.emitEvent(disabledEvt);\n }\n\n // Click toggler\n\n }, {\n key: 'toggle',\n value: function toggle(event) {\n if (!this.$isEnabled) {\n return;\n }\n if (event) {\n this.$activeTrigger.click = !this.$activeTrigger.click;\n\n if (this.isWithActiveTrigger()) {\n this.enter(null);\n } else {\n this.leave(null);\n }\n } else {\n if (hasClass(this.getTipElement(), ClassName.SHOW)) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n }\n }\n\n // Show tooltip\n\n }, {\n key: 'show',\n value: function show() {\n var _this = this;\n\n if (!document.body.contains(this.$element) || !isVisible(this.$element)) {\n // If trigger element isn't in the DOM or is not visible\n return;\n }\n // Build tooltip element (also sets this.$tip)\n var tip = this.getTipElement();\n this.fixTitle();\n this.setContent(tip);\n if (!this.isWithContent(tip)) {\n // if No content, don't bother showing\n this.$tip = null;\n return;\n }\n\n // Set ID on tip and aria-describedby on element\n setAttr(tip, 'id', this.$id);\n this.addAriaDescribedby();\n\n // Set animation on or off\n if (this.$config.animation) {\n addClass(tip, ClassName.FADE);\n } else {\n removeClass(tip, ClassName.FADE);\n }\n\n var placement = this.getPlacement();\n var attachment = this.constructor.getAttachment(placement);\n this.addAttachmentClass(attachment);\n\n // Create a cancelable BvEvent\n var showEvt = new BvEvent('show', {\n cancelable: true,\n target: this.$element,\n relatedTarget: tip\n });\n this.emitEvent(showEvt);\n if (showEvt.defaultPrevented) {\n // Don't show if event cancelled\n this.$tip = null;\n return;\n }\n\n // Insert tooltip if needed\n var container = this.getContainer();\n if (!document.body.contains(tip)) {\n container.appendChild(tip);\n }\n\n // Refresh popper\n this.removePopper();\n this.$popper = new Popper(this.$element, tip, this.getPopperConfig(placement, tip));\n\n // Transitionend Callback\n var complete = function complete() {\n if (_this.$config.animation) {\n _this.fixTransition(tip);\n }\n var prevHoverState = _this.$hoverState;\n _this.$hoverState = null;\n if (prevHoverState === HoverState.OUT) {\n _this.leave(null);\n }\n // Create a non-cancelable BvEvent\n var shownEvt = new BvEvent('shown', {\n cancelable: false,\n target: _this.$element,\n relatedTarget: tip\n });\n _this.emitEvent(shownEvt);\n };\n\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n\n // Show tip\n addClass(tip, ClassName.SHOW);\n\n // Start the transition/animation\n this.transitionOnce(tip, complete);\n }\n\n // handler for periodic visibility check\n\n }, {\n key: 'visibleCheck',\n value: function visibleCheck(on) {\n var _this2 = this;\n\n clearInterval(this.$visibleInterval);\n this.$visibleInterval = null;\n if (on) {\n this.$visibleInterval = setInterval(function () {\n var tip = _this2.getTipElement();\n if (tip && !isVisible(_this2.$element) && hasClass(tip, ClassName.SHOW)) {\n // Element is no longer visible, so force-hide the tooltip\n _this2.forceHide();\n }\n }, 100);\n }\n }\n }, {\n key: 'setWhileOpenListeners',\n value: function setWhileOpenListeners(on) {\n // Modal close events\n this.setModalListener(on);\n // Periodic $element visibility check\n // For handling when tip is in <keepalive>, tabs, carousel, etc\n this.visibleCheck(on);\n // Route change events\n this.setRouteWatcher(on);\n // Ontouch start listeners\n this.setOnTouchStartListener(on);\n if (on && /(focus|blur)/.test(this.$config.trigger)) {\n // If focus moves between trigger element and tip container, dont close\n eventOn(this.$tip, 'focusout', this);\n } else {\n eventOff(this.$tip, 'focusout', this);\n }\n }\n\n // force hide of tip (internal method)\n\n }, {\n key: 'forceHide',\n value: function forceHide() {\n if (!this.$tip || !hasClass(this.$tip, ClassName.SHOW)) {\n return;\n }\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n // Clear any hover enter/leave event\n clearTimeout(this.$hoverTimeout);\n this.$hoverTimeout = null;\n this.$hoverState = '';\n // Hide the tip\n this.hide(null, true);\n }\n\n // Hide tooltip\n\n }, {\n key: 'hide',\n value: function hide(callback, force) {\n var _this3 = this;\n\n var tip = this.$tip;\n if (!tip) {\n return;\n }\n\n // Create a canelable BvEvent\n var hideEvt = new BvEvent('hide', {\n // We disable cancelling if force is true\n cancelable: !force,\n target: this.$element,\n relatedTarget: tip\n });\n this.emitEvent(hideEvt);\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n }\n\n // Transitionend Callback\n /* istanbul ignore next */\n var complete = function complete() {\n if (_this3.$hoverState !== HoverState.SHOW && tip.parentNode) {\n // Remove tip from dom, and force recompile on next show\n tip.parentNode.removeChild(tip);\n _this3.removeAriaDescribedby();\n _this3.removePopper();\n _this3.$tip = null;\n }\n if (callback) {\n callback();\n }\n // Create a non-cancelable BvEvent\n var hiddenEvt = new BvEvent('hidden', {\n cancelable: false,\n target: _this3.$element,\n relatedTarget: null\n });\n _this3.emitEvent(hiddenEvt);\n };\n\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n\n // If forced close, disable animation\n if (force) {\n removeClass(tip, ClassName.FADE);\n }\n // Hide tip\n removeClass(tip, ClassName.SHOW);\n\n this.$activeTrigger.click = false;\n this.$activeTrigger.focus = false;\n this.$activeTrigger.hover = false;\n\n // Start the hide transition\n this.transitionOnce(tip, complete);\n\n this.$hoverState = '';\n }\n }, {\n key: 'emitEvent',\n value: function emitEvent(evt) {\n var evtName = evt.type;\n if (this.$root && this.$root.$emit) {\n // Emit an event on $root\n this.$root.$emit('bv::' + this.constructor.NAME + '::' + evtName, evt);\n }\n var callbacks = this.$config.callbacks || {};\n if (typeof callbacks[evtName] === 'function') {\n callbacks[evtName](evt);\n }\n }\n }, {\n key: 'getContainer',\n value: function getContainer() {\n var container = this.$config.container;\n var body = document.body;\n // If we are in a modal, we append to the modal instead of body, unless a container is specified\n return container === false ? closest(MODAL_CLASS, this.$element) || body : select(container, body) || body;\n }\n\n // Will be overritten by popover if needed\n\n }, {\n key: 'addAriaDescribedby',\n value: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var desc = getAttr(this.$element, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.$id).join(' ').trim();\n setAttr(this.$element, 'aria-describedby', desc);\n }\n\n // Will be overritten by popover if needed\n\n }, {\n key: 'removeAriaDescribedby',\n value: function removeAriaDescribedby() {\n var _this4 = this;\n\n var desc = getAttr(this.$element, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this4.$id;\n }).join(' ').trim();\n if (desc) {\n setAttr(this.$element, 'aria-describedby', desc);\n } else {\n removeAttr(this.$element, 'aria-describedby');\n }\n }\n }, {\n key: 'removePopper',\n value: function removePopper() {\n if (this.$popper) {\n this.$popper.destroy();\n }\n this.$popper = null;\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'transitionOnce',\n value: function transitionOnce(tip, complete) {\n var _this5 = this;\n\n var transEvents = this.getTransitionEndEvents();\n var called = false;\n clearTimeout(this.$fadeTimeout);\n this.$fadeTimeout = null;\n var fnOnce = function fnOnce() {\n if (called) {\n return;\n }\n called = true;\n clearTimeout(_this5.$fadeTimeout);\n _this5.$fadeTimeout = null;\n transEvents.forEach(function (evtName) {\n eventOff(tip, evtName, fnOnce);\n });\n // Call complete callback\n complete();\n };\n if (hasClass(tip, ClassName.FADE)) {\n transEvents.forEach(function (evtName) {\n eventOn(tip, evtName, fnOnce);\n });\n // Fallback to setTimeout\n this.$fadeTimeout = setTimeout(fnOnce, TRANSITION_DURATION);\n } else {\n fnOnce();\n }\n }\n\n // What transitionend event(s) to use? (returns array of event names)\n\n }, {\n key: 'getTransitionEndEvents',\n value: function getTransitionEndEvents() {\n for (var name in TransitionEndEvents) {\n if (this.$element.style[name] !== undefined) {\n return TransitionEndEvents[name];\n }\n }\n // fallback\n return [];\n }\n }, {\n key: 'update',\n value: function update() {\n if (this.$popper !== null) {\n this.$popper.scheduleUpdate();\n }\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'isWithContent',\n value: function isWithContent(tip) {\n tip = tip || this.$tip;\n if (!tip) {\n return false;\n }\n return Boolean((select(Selector.TOOLTIP_INNER, tip) || {}).innerHTML);\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'addAttachmentClass',\n value: function addAttachmentClass(attachment) {\n addClass(this.getTipElement(), CLASS_PREFIX + '-' + attachment);\n }\n }, {\n key: 'getTipElement',\n value: function getTipElement() {\n if (!this.$tip) {\n // Try and compile user supplied template, or fallback to default template\n this.$tip = this.compileTemplate(this.$config.template) || this.compileTemplate(this.constructor.Default.template);\n }\n // Add tab index so tip can be focused, and to allow it to be set as relatedTargt in focusin/out events\n this.$tip.tabIndex = -1;\n return this.$tip;\n }\n }, {\n key: 'compileTemplate',\n value: function compileTemplate(html) {\n if (!html || typeof html !== 'string') {\n return null;\n }\n var div = document.createElement('div');\n div.innerHTML = html.trim();\n var node = div.firstElementChild ? div.removeChild(div.firstElementChild) : null;\n div = null;\n return node;\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'setContent',\n value: function setContent(tip) {\n this.setElementContent(select(Selector.TOOLTIP_INNER, tip), this.getTitle());\n removeClass(tip, ClassName.FADE);\n removeClass(tip, ClassName.SHOW);\n }\n }, {\n key: 'setElementContent',\n value: function setElementContent(container, content) {\n if (!container) {\n // If container element doesn't exist, just return\n return;\n }\n var allowHtml = this.$config.html;\n if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && content.nodeType) {\n // content is a DOM node\n if (allowHtml) {\n if (content.parentElement !== container) {\n container.innerHtml = '';\n container.appendChild(content);\n }\n } else {\n container.innerText = content.innerText;\n }\n } else {\n // We have a plain HTML string or Text\n container[allowHtml ? 'innerHTML' : 'innerText'] = content;\n }\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'getTitle',\n value: function getTitle() {\n var title = this.$config.title || '';\n if (typeof title === 'function') {\n // Call the function to get the title value\n title = title(this.$element);\n }\n if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object' && title.nodeType && !title.innerHTML.trim()) {\n // We have a DOM node, but without inner content, so just return empty string\n title = '';\n }\n if (typeof title === 'string') {\n title = title.trim();\n }\n if (!title) {\n // If an explicit title is not given, try element's title atributes\n title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || '';\n title = title.trim();\n }\n\n return title;\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this6 = this;\n\n var triggers = this.$config.trigger.trim().split(/\\s+/);\n var el = this.$element;\n\n // Listen for global show/hide events\n this.setRootListener(true);\n\n // Using 'this' as the handler will get automagically directed to this.handleEvent\n // And maintain our binding to 'this'\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6);\n eventOn(el, 'focusout', _this6);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n eventOn(el, 'focusout', _this6);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6);\n eventOn(el, 'mouseleave', _this6);\n }\n }, this);\n }\n }, {\n key: 'unListen',\n value: function unListen() {\n var _this7 = this;\n\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n // Using \"this\" as the handler will get automagically directed to this.handleEvent\n events.forEach(function (evt) {\n eventOff(_this7.$element, evt, _this7);\n }, this);\n\n // Stop listening for global show/hide/enable/disable events\n this.setRootListener(false);\n }\n }, {\n key: 'handleEvent',\n value: function handleEvent(e) {\n // This special method allows us to use \"this\" as the event handlers\n if (isDisabled(this.$element)) {\n // If disabled, don't do anything. Note: if tip is shown before element gets\n // disabled, then tip not close until no longer disabled or forcefully closed.\n return;\n }\n if (!this.$isEnabled) {\n // If not enable\n return;\n }\n var type = e.type;\n var target = e.target;\n var relatedTarget = e.relatedTarget;\n var $element = this.$element;\n var $tip = this.$tip;\n if (type === 'click') {\n this.toggle(e);\n } else if (type === 'focusin' || type === 'mouseenter') {\n this.enter(e);\n } else if (type === 'focusout') {\n // target is the element which is loosing focus\n // And relatedTarget is the element gaining focus\n if ($tip && $element && $element.contains(target) && $tip.contains(relatedTarget)) {\n // If focus moves from $element to $tip, don't trigger a leave\n return;\n }\n if ($tip && $element && $tip.contains(target) && $element.contains(relatedTarget)) {\n // If focus moves from $tip to $element, don't trigger a leave\n return;\n }\n if ($tip && $tip.contains(target) && $tip.contains(relatedTarget)) {\n // If focus moves within $tip, don't trigger a leave\n return;\n }\n if ($element && $element.contains(target) && $element.contains(relatedTarget)) {\n // If focus moves within $element, don't trigger a leave\n return;\n }\n // Otherwise trigger a leave\n this.leave(e);\n } else if (type === 'mouseleave') {\n this.leave(e);\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'setRouteWatcher',\n value: function setRouteWatcher(on) {\n var _this8 = this;\n\n if (on) {\n this.setRouteWatcher(false);\n if (this.$root && Boolean(this.$root.$route)) {\n this.$routeWatcher = this.$root.$watch('$route', function (newVal, oldVal) {\n if (newVal === oldVal) {\n return;\n }\n // If route has changed, we force hide the tooltip/popover\n _this8.forceHide();\n });\n }\n } else {\n if (this.$routeWatcher) {\n // cancel the route watcher by calling hte stored reference\n this.$routeWatcher();\n this.$routeWatcher = null;\n }\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'setModalListener',\n value: function setModalListener(on) {\n var modal = closest(MODAL_CLASS, this.$element);\n if (!modal) {\n // If we are not in a modal, don't worry. be happy\n return;\n }\n // We can listen for modal hidden events on $root\n if (this.$root) {\n this.$root[on ? '$on' : '$off'](MODAL_CLOSE_EVENT, this.$forceHide);\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'setRootListener',\n value: function setRootListener(on) {\n // Listen for global 'bv::{hide|show}::{tooltip|popover}' hide request event\n if (this.$root) {\n this.$root[on ? '$on' : '$off']('bv::hide::' + this.constructor.NAME, this.$doHide);\n this.$root[on ? '$on' : '$off']('bv::show::' + this.constructor.NAME, this.$doShow);\n this.$root[on ? '$on' : '$off']('bv::disable::' + this.constructor.NAME, this.$doDisable);\n this.$root[on ? '$on' : '$off']('bv::enable::' + this.constructor.NAME, this.$doEnable);\n }\n }\n }, {\n key: 'doHide',\n value: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id) {\n // Close all tooltips or popovers\n this.forceHide();\n } else if (this.$element && this.$element.id && this.$element.id === id) {\n // Close this specific tooltip or popover\n this.hide();\n }\n }\n }, {\n key: 'doShow',\n value: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id) {\n // Open all tooltips or popovers\n this.show();\n } else if (id && this.$element && this.$element.id && this.$element.id === id) {\n // Show this specific tooltip or popover\n this.show();\n }\n }\n }, {\n key: 'doDisable',\n value: function doDisable(id) {\n // Programmatically disable tooltip or popover\n if (!id) {\n // Disable all tooltips or popovers\n this.disable();\n } else if (this.$element && this.$element.id && this.$element.id === id) {\n // Disable this specific tooltip or popover\n this.disable();\n }\n }\n }, {\n key: 'doEnable',\n value: function doEnable(id) {\n // Programmatically enable tooltip or popover\n if (!id) {\n // Enable all tooltips or popovers\n this.enable();\n } else if (this.$element && this.$element.id && this.$element.id === id) {\n // Enable this specific tooltip or popover\n this.enable();\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'setOnTouchStartListener',\n value: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // if this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n if (on) {\n eventOn(el, 'mouseover', _this9._noop);\n } else {\n eventOff(el, 'mouseover', _this9._noop);\n }\n });\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: '_noop',\n value: function _noop() {\n // Empty noop handler for ontouchstart devices\n }\n }, {\n key: 'fixTitle',\n value: function fixTitle() {\n var el = this.$element;\n var titleType = _typeof(getAttr(el, 'data-original-title'));\n if (getAttr(el, 'title') || titleType !== 'string') {\n setAttr(el, 'data-original-title', getAttr(el, 'title') || '');\n setAttr(el, 'title', '');\n }\n }\n\n // Enter handler\n /* istanbul ignore next */\n\n }, {\n key: 'enter',\n value: function enter(e) {\n var _this10 = this;\n\n if (e) {\n this.$activeTrigger[e.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n if (hasClass(this.getTipElement(), ClassName.SHOW) || this.$hoverState === HoverState.SHOW) {\n this.$hoverState = HoverState.SHOW;\n return;\n }\n clearTimeout(this.$hoverTimeout);\n this.$hoverState = HoverState.SHOW;\n if (!this.$config.delay || !this.$config.delay.show) {\n this.show();\n return;\n }\n this.$hoverTimeout = setTimeout(function () {\n if (_this10.$hoverState === HoverState.SHOW) {\n _this10.show();\n }\n }, this.$config.delay.show);\n }\n\n // Leave handler\n /* istanbul ignore next */\n\n }, {\n key: 'leave',\n value: function leave(e) {\n var _this11 = this;\n\n if (e) {\n this.$activeTrigger[e.type === 'focusout' ? 'focus' : 'hover'] = false;\n if (e.type === 'focusout' && /blur/.test(this.$config.trigger)) {\n // Special case for `blur`: we clear out the other triggers\n this.$activeTrigger.click = false;\n this.$activeTrigger.hover = false;\n }\n }\n if (this.isWithActiveTrigger()) {\n return;\n }\n clearTimeout(this.$hoverTimeout);\n this.$hoverState = HoverState.OUT;\n if (!this.$config.delay || !this.$config.delay.hide) {\n this.hide();\n return;\n }\n this.$hoverTimeout = setTimeout(function () {\n if (_this11.$hoverState === HoverState.OUT) {\n _this11.hide();\n }\n }, this.$config.delay.hide);\n }\n }, {\n key: 'getPopperConfig',\n value: function getPopperConfig(placement, tip) {\n var _this12 = this;\n\n return {\n placement: this.constructor.getAttachment(placement),\n modifiers: {\n offset: { offset: this.getOffset(placement, tip) },\n flip: { behavior: this.$config.fallbackPlacement },\n arrow: { element: '.arrow' },\n preventOverflow: { boundariesElement: this.$config.boundary }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n _this12.handlePopperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this12.handlePopperPlacementChange(data);\n }\n };\n }\n }, {\n key: 'getOffset',\n value: function getOffset(placement, tip) {\n if (!this.$config.offset) {\n var arrow = select(Selector.ARROW, tip);\n var arrowOffset = parseFloat(getCS(arrow).width) + parseFloat(this.$config.arrowPadding);\n switch (OffsetMap[placement.toUpperCase()]) {\n case +1:\n return '+50%p - ' + arrowOffset + 'px';\n case -1:\n return '-50%p + ' + arrowOffset + 'px';\n default:\n return 0;\n }\n }\n return this.$config.offset;\n }\n }, {\n key: 'getPlacement',\n value: function getPlacement() {\n var placement = this.$config.placement;\n if (typeof placement === 'function') {\n return placement.call(this, this.$tip, this.$element);\n }\n return placement;\n }\n }, {\n key: 'isWithActiveTrigger',\n value: function isWithActiveTrigger() {\n for (var trigger in this.$activeTrigger) {\n if (this.$activeTrigger[trigger]) {\n return true;\n }\n }\n return false;\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'cleanTipClass',\n value: function cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.className.match(BSCLS_PREFIX_REGEX);\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.forEach(function (cls) {\n removeClass(tip, cls);\n });\n }\n }\n }, {\n key: 'handlePopperPlacementChange',\n value: function handlePopperPlacementChange(data) {\n this.cleanTipClass();\n this.addAttachmentClass(this.constructor.getAttachment(data.placement));\n }\n }, {\n key: 'fixTransition',\n value: function fixTransition(tip) {\n var initConfigAnimation = this.$config.animation || false;\n if (getAttr(tip, 'x-placement') !== null) {\n return;\n }\n removeClass(tip, ClassName.FADE);\n this.$config.animation = false;\n this.hide();\n this.show();\n this.$config.animation = initConfigAnimation;\n }\n }], [{\n key: 'getAttachment',\n value: function getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n }\n }, {\n key: 'Default',\n get: function get() {\n return Defaults;\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'NAME',\n get: function get() {\n return NAME;\n }\n }]);\n\n return ToolTip;\n}();\n\nexport default ToolTip;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*\n * Tooltip/Popover component mixin\n * Common props\n */\nimport { isArray } from '../utils/array';\nimport { assign } from '../utils/object';\nimport { isElement, getById } from '../utils/dom';\nimport { HTMLElement } from '../utils/ssr';\nimport observeDom from '../utils/observe-dom';\n\nvar PLACEMENTS = {\n top: 'top',\n topleft: 'topleft',\n topright: 'topright',\n right: 'right',\n righttop: 'righttop',\n rightbottom: 'rightbottom',\n bottom: 'bottom',\n bottomleft: 'bottomleft',\n bottomright: 'bottomright',\n left: 'left',\n lefttop: 'lefttop',\n leftbottom: 'leftbottom',\n auto: 'auto'\n};\n\nvar OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['class', 'style']\n};\n\nexport default {\n props: {\n target: {\n // String ID of element, or element/component reference\n type: [String, Object, HTMLElement, Function]\n },\n delay: {\n type: [Number, Object, String],\n default: 0\n },\n offset: {\n type: [Number, String],\n default: 0\n },\n noFade: {\n type: Boolean,\n default: false\n },\n container: {\n // String ID of container, if null body is used (default)\n type: String,\n default: null\n },\n boundary: {\n // String: scrollParent, window, or viewport\n // Element: element reference\n type: [String, Object],\n default: 'scrollParent'\n },\n show: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n show: function show(_show, old) {\n if (_show === old) {\n return;\n }\n _show ? this.onOpen() : this.onClose();\n },\n disabled: function disabled(_disabled, old) {\n if (_disabled === old) {\n return;\n }\n _disabled ? this.onDisable() : this.onEnable();\n }\n },\n created: function created() {\n // Create non-reactive property\n this._toolpop = null;\n this._obs_title = null;\n this._obs_content = null;\n },\n mounted: function mounted() {\n var _this = this;\n\n // We do this in a next tick to ensure DOM has rendered first\n this.$nextTick(function () {\n // Instantiate ToolTip/PopOver on target\n // The createToolpop method must exist in main component\n if (_this.createToolpop()) {\n if (_this.disabled) {\n // Initially disabled\n _this.onDisable();\n }\n // Listen to open signals from others\n _this.$on('open', _this.onOpen);\n // Listen to close signals from others\n _this.$on('close', _this.onClose);\n // Listen to disable signals from others\n _this.$on('disable', _this.onDisable);\n // Listen to disable signals from others\n _this.$on('enable', _this.onEnable);\n // Observe content Child changes so we can notify popper of possible size change\n _this.setObservers(true);\n // Set intially open state\n if (_this.show) {\n _this.onOpen();\n }\n }\n });\n },\n updated: function updated() {\n // If content/props changes, etc\n if (this._toolpop) {\n this._toolpop.updateConfig(this.getConfig());\n }\n },\n\n /* istanbul ignore next: not easy to test */\n activated: function activated() {\n // Called when component is inside a <keep-alive> and component brought offline\n this.setObservers(true);\n },\n\n /* istanbul ignore next: not easy to test */\n deactivated: function deactivated() {\n // Called when component is inside a <keep-alive> and component taken offline\n if (this._toolpop) {\n this.setObservers(false);\n this._toolpop.hide();\n }\n },\n\n /* istanbul ignore next: not easy to test */\n beforeDestroy: function beforeDestroy() {\n // Shutdown our local event listeners\n this.$off('open', this.onOpen);\n this.$off('close', this.onClose);\n this.$off('disable', this.onDisable);\n this.$off('enable', this.onEnable);\n this.setObservers(false);\n // bring our content back if needed\n this.bringItBack();\n if (this._toolpop) {\n this._toolpop.destroy();\n this._toolpop = null;\n }\n },\n\n computed: {\n baseConfig: function baseConfig() {\n var cont = this.container;\n var delay = _typeof(this.delay) === 'object' ? this.delay : parseInt(this.delay, 10) || 0;\n return {\n // Title prop\n title: (this.title || '').trim() || '',\n // Contnt prop (if popover)\n content: (this.content || '').trim() || '',\n // Tooltip/Popover placement\n placement: PLACEMENTS[this.placement] || 'auto',\n // Container curently needs to be an ID with '#' prepended, if null then body is used\n container: cont ? /^#/.test(cont) ? cont : '#' + cont : false,\n // boundariesElement passed to popper\n boundary: this.boundary,\n // Show/Hide delay\n delay: delay || 0,\n // Offset can be css distance. if no units, pixels are assumed\n offset: this.offset || 0,\n // Disable fade Animation?\n animation: !this.noFade,\n // Open/Close Trigger(s)\n trigger: isArray(this.triggers) ? this.triggers.join(' ') : this.triggers,\n // Callbacks so we can trigger events on component\n callbacks: {\n show: this.onShow,\n shown: this.onShown,\n hide: this.onHide,\n hidden: this.onHidden,\n enabled: this.onEnabled,\n disabled: this.onDisabled\n }\n };\n }\n },\n methods: {\n getConfig: function getConfig() {\n var cfg = assign({}, this.baseConfig);\n if (this.$refs.title && this.$refs.title.innerHTML.trim()) {\n // If slot has content, it overrides 'title' prop\n // We use the DOM node as content to allow components!\n cfg.title = this.$refs.title;\n cfg.html = true;\n }\n if (this.$refs.content && this.$refs.content.innerHTML.trim()) {\n // If slot has content, it overrides 'content' prop\n // We use the DOM node as content to allow components!\n cfg.content = this.$refs.content;\n cfg.html = true;\n }\n return cfg;\n },\n onOpen: function onOpen() {\n if (this._toolpop) {\n this._toolpop.show();\n }\n },\n onClose: function onClose(callback) {\n if (this._toolpop) {\n this._toolpop.hide(callback);\n } else if (typeof callback === 'function') {\n callback();\n }\n },\n onDisable: function onDisable() {\n if (this._toolpop) {\n this._toolpop.disable();\n }\n },\n onEnable: function onEnable() {\n if (this._toolpop) {\n this._toolpop.enable();\n }\n },\n updatePosition: function updatePosition() {\n if (this._toolpop) {\n // Instruct popper to reposition popover if necessary\n this._toolpop.update();\n }\n },\n getTarget: function getTarget() {\n var target = this.target;\n if (typeof target === 'function') {\n target = target();\n }\n if (typeof target === 'string') {\n // Assume ID of element\n return getById(target);\n } else if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && isElement(target.$el)) {\n // Component reference\n return target.$el;\n } else if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && isElement(target)) {\n // Element reference\n return target;\n }\n return null;\n },\n onShow: function onShow(evt) {\n this.$emit('show', evt);\n },\n onShown: function onShown(evt) {\n this.setObservers(true);\n this.$emit('update:show', true);\n this.$emit('shown', evt);\n },\n onHide: function onHide(evt) {\n this.$emit('hide', evt);\n },\n onHidden: function onHidden(evt) {\n this.setObservers(false);\n // bring our content back if needed to keep Vue happy\n // Tooltip class will move it back to tip when shown again\n this.bringItBack();\n this.$emit('update:show', false);\n this.$emit('hidden', evt);\n },\n onEnabled: function onEnabled(evt) {\n if (!evt || evt.type !== 'enabled') {\n // Prevent possible endless loop if user mistakienly fires enabled instead of enable\n return;\n }\n this.$emit('update:disabled', false);\n this.$emit('disabled');\n },\n onDisabled: function onDisabled(evt) {\n if (!evt || evt.type !== 'disabled') {\n // Prevent possible endless loop if user mistakienly fires disabled instead of disable\n return;\n }\n this.$emit('update:disabled', true);\n this.$emit('enabled');\n },\n bringItBack: function bringItBack() {\n // bring our content back if needed to keep Vue happy\n if (this.$el && this.$refs.title) {\n this.$el.appendChild(this.$refs.title);\n }\n if (this.$el && this.$refs.content) {\n this.$el.appendChild(this.$refs.content);\n }\n },\n\n /* istanbul ignore next: not easy to test */\n setObservers: function setObservers(on) {\n if (on) {\n if (this.$refs.title) {\n this._obs_title = observeDom(this.$refs.title, this.updatePosition.bind(this), OBSERVER_CONFIG);\n }\n if (this.$refs.content) {\n this._obs_content = observeDom(this.$refs.content, this.updatePosition.bind(this), OBSERVER_CONFIG);\n }\n } else {\n if (this._obs_title) {\n this._obs_title.disconnect();\n this._obs_title = null;\n }\n if (this._obs_content) {\n this._obs_content.disconnect();\n this._obs_content = null;\n }\n }\n }\n }\n};","// Polyfills for SSR\n\nvar isSSR = typeof window === 'undefined';\n\nexport var HTMLElement = isSSR ? Object : window.HTMLElement;","import bProgress from './progress';\nimport bProgressBar from './progress-bar';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bProgress: bProgress,\n bProgressBar: bProgressBar\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import bProgressBar from './progress-bar';\n\nexport default {\n components: { bProgressBar: bProgressBar },\n render: function render(h) {\n var childNodes = this.$slots.default;\n if (!childNodes) {\n childNodes = h('b-progress-bar', {\n props: {\n value: this.value,\n max: this.max,\n precision: this.precision,\n variant: this.variant,\n animated: this.animated,\n striped: this.striped,\n showProgress: this.showProgress,\n showValue: this.showValue\n }\n });\n }\n return h('div', { class: ['progress'], style: this.progressHeight }, [childNodes]);\n },\n\n props: {\n // These props can be inherited via the child b-progress-bar(s)\n variant: {\n type: String,\n default: null\n },\n striped: {\n type: Boolean,\n default: false\n },\n animated: {\n type: Boolean,\n default: false\n },\n height: {\n type: String,\n default: null\n },\n precision: {\n type: Number,\n default: 0\n },\n showProgress: {\n type: Boolean,\n default: false\n },\n showValue: {\n type: Boolean,\n default: false\n },\n max: {\n type: Number,\n default: 100\n },\n // This prop is not inherited by child b-progress-bar(s)\n value: {\n type: Number,\n default: 0\n }\n },\n computed: {\n progressHeight: function progressHeight() {\n return { height: this.height || null };\n }\n }\n};","export default {\n render: function render(h) {\n var childNodes = h(false);\n if (this.$slots.default) {\n childNodes = this.$slots.default;\n } else if (this.label) {\n childNodes = h('span', { domProps: { innerHTML: this.label } });\n } else if (this.computedShowProgress) {\n childNodes = this.progress.toFixed(this.computedPrecision);\n } else if (this.computedShowValue) {\n childNodes = this.value.toFixed(this.computedPrecision);\n }\n return h('div', {\n class: this.progressBarClasses,\n style: this.progressBarStyles,\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': this.computedMax.toString(),\n 'aria-valuenow': this.value.toFixed(this.computedPrecision)\n }\n }, [childNodes]);\n },\n\n computed: {\n progressBarClasses: function progressBarClasses() {\n return ['progress-bar', this.computedVariant ? 'bg-' + this.computedVariant : '', this.computedStriped || this.computedAnimated ? 'progress-bar-striped' : '', this.computedAnimated ? 'progress-bar-animated' : ''];\n },\n progressBarStyles: function progressBarStyles() {\n return {\n width: 100 * (this.value / this.computedMax) + '%'\n };\n },\n progress: function progress() {\n var p = Math.pow(10, this.computedPrecision);\n return Math.round(100 * p * this.value / this.computedMax) / p;\n },\n computedMax: function computedMax() {\n // Prefer our max over parent setting\n return typeof this.max === 'number' ? this.max : this.$parent.max || 100;\n },\n computedVariant: function computedVariant() {\n // Prefer our variant over parent setting\n return this.variant || this.$parent.variant;\n },\n computedPrecision: function computedPrecision() {\n // Prefer our precision over parent setting\n return typeof this.precision === 'number' ? this.precision : this.$parent.precision || 0;\n },\n computedStriped: function computedStriped() {\n // Prefer our striped over parent setting\n return typeof this.striped === 'boolean' ? this.striped : this.$parent.striped || false;\n },\n computedAnimated: function computedAnimated() {\n // Prefer our animated over parent setting\n return typeof this.animated === 'boolean' ? this.animated : this.$parent.animated || false;\n },\n computedShowProgress: function computedShowProgress() {\n // Prefer our showProgress over parent setting\n return typeof this.showProgress === 'boolean' ? this.showProgress : this.$parent.showProgress || false;\n },\n computedShowValue: function computedShowValue() {\n // Prefer our showValue over parent setting\n return typeof this.showValue === 'boolean' ? this.showValue : this.$parent.showValue || false;\n }\n },\n props: {\n value: {\n type: Number,\n default: 0\n },\n label: {\n type: String,\n default: null\n },\n // $parent prop values take precedence over the following props\n // Which is why they are defaulted to null\n max: {\n type: Number,\n default: null\n },\n precision: {\n type: Number,\n default: null\n },\n variant: {\n type: String,\n default: null\n },\n striped: {\n type: Boolean,\n default: null\n },\n animated: {\n type: Boolean,\n default: null\n },\n showProgress: {\n type: Boolean,\n default: null\n },\n showValue: {\n type: Boolean,\n default: null\n }\n }\n};","import bTable from './table';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bTable: bTable\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport startCase from 'lodash.startcase';\nimport get from 'lodash.get';\nimport looseEqual from '../../utils/loose-equal';\nimport stableSort from '../../utils/stable-sort';\nimport KeyCodes from '../../utils/key-codes';\nimport warn from '../../utils/warn';\nimport { keys, assign } from '../../utils/object';\nimport { isArray } from '../../utils/array';\nimport idMixin from '../../mixins/id';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\n\n// Import styles\nimport './table.css';\n\nfunction toString(v) {\n if (!v) {\n return '';\n }\n if (v instanceof Object) {\n return keys(v).map(function (k) {\n return toString(v[k]);\n }).join(' ');\n }\n return String(v);\n}\n\nfunction recToString(obj) {\n if (!(obj instanceof Object)) {\n return '';\n }\n return toString(keys(obj).reduce(function (o, k) {\n // Ignore fields that start with _\n if (!/^_/.test(k)) {\n o[k] = obj[k];\n }\n return o;\n }, {}));\n}\n\nfunction defaultSortCompare(a, b, sortBy) {\n if (typeof a[sortBy] === 'number' && typeof b[sortBy] === 'number') {\n return a[sortBy] < b[sortBy] && -1 || a[sortBy] > b[sortBy] && 1 || 0;\n }\n return toString(a[sortBy]).localeCompare(toString(b[sortBy]), undefined, {\n numeric: true\n });\n}\n\nfunction processField(key, value) {\n var field = null;\n if (typeof value === 'string') {\n // Label shortcut\n field = { key: key, label: value };\n } else if (typeof value === 'function') {\n // Formatter shortcut\n field = { key: key, formatter: value };\n } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n field = assign({}, value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n field = { key: key };\n }\n return field;\n}\n\nexport default {\n mixins: [idMixin, listenOnRootMixin],\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n var $scoped = this.$scopedSlots;\n var fields = this.computedFields;\n var items = this.computedItems;\n\n // Build the caption\n var caption = h(false);\n if (this.caption || $slots['table-caption']) {\n var data = { style: this.captionStyles };\n if (!$slots['table-caption']) {\n data.domProps = { innerHTML: this.caption };\n }\n caption = h('caption', data, $slots['table-caption']);\n }\n\n // Build the colgroup\n var colgroup = $slots['table-colgroup'] ? h('colgroup', {}, $slots['table-colgroup']) : h(false);\n\n // factory function for thead and tfoot cells (th's)\n var makeHeadCells = function makeHeadCells() {\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n return fields.map(function (field, colIndex) {\n var data = {\n key: field.key,\n class: _this.fieldClasses(field),\n style: field.thStyle || {},\n attrs: {\n tabindex: field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': String(colIndex + 1),\n 'aria-label': field.sortable ? _this.localSortDesc && _this.localSortBy === field.key ? _this.labelSortAsc : _this.labelSortDesc : null,\n 'aria-sort': field.sortable && _this.localSortBy === field.key ? _this.localSortDesc ? 'descending' : 'ascending' : null\n },\n on: {\n click: function click(evt) {\n evt.stopPropagation();\n evt.preventDefault();\n _this.headClicked(evt, field);\n },\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n evt.stopPropagation();\n evt.preventDefault();\n _this.headClicked(evt, field);\n }\n }\n }\n };\n var slot = isFoot && $scoped['FOOT_' + field.key] ? $scoped['FOOT_' + field.key] : $scoped['HEAD_' + field.key];\n if (slot) {\n slot = [slot({ label: field.label, column: field.key, field: field })];\n } else {\n data.domProps = { innerHTML: field.label };\n }\n return h('th', data, slot);\n });\n };\n\n // Build the thead\n var thead = h(false);\n if (this.isStacked !== true) {\n // If in always stacked mode (this.isStacked === true), then we don't bother rendering the thead\n thead = h('thead', { class: this.headClasses }, [h('tr', { class: this.theadTrClass }, makeHeadCells(false))]);\n }\n\n // Build the tfoot\n var tfoot = h(false);\n if (this.footClone && this.isStacked !== true) {\n // If in always stacked mode (this.isStacked === true), then we don't bother rendering the tfoot\n tfoot = h('tfoot', { class: this.footClasses }, [h('tr', { class: this.tfootTrClass }, makeHeadCells(true))]);\n }\n\n // Prepare the tbody rows\n var rows = [];\n\n // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in always stacked mode, we don't bother rendering the row\n if ($scoped['top-row'] && this.isStacked !== true) {\n rows.push(h('tr', { key: 'top-row', class: ['b-table-top-row', this.tbodyTrClass] }, [$scoped['top-row']({ columns: fields.length, fields: fields })]));\n } else {\n rows.push(h(false));\n }\n\n // Add the item data rows\n items.forEach(function (item, rowIndex) {\n var detailsSlot = $scoped['row-details'];\n var rowShowDetails = Boolean(item._showDetails && detailsSlot);\n var detailsId = rowShowDetails ? _this.safeId('_details_' + rowIndex + '_') : null;\n var toggleDetailsFn = function toggleDetailsFn() {\n if (detailsSlot) {\n _this.$set(item, '_showDetails', !item._showDetails);\n }\n };\n // For each item data field in row\n var tds = fields.map(function (field, colIndex) {\n var data = {\n key: 'row-' + rowIndex + '-cell-' + colIndex,\n class: _this.tdClasses(field, item),\n attrs: _this.tdAttrs(field, item, colIndex),\n domProps: {}\n };\n var childNodes = void 0;\n if ($scoped[field.key]) {\n childNodes = [$scoped[field.key]({\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, field.key),\n value: _this.getFormattedValue(item, field),\n toggleDetails: toggleDetailsFn,\n detailsShowing: Boolean(item._showDetails)\n })];\n if (_this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n childNodes = [h('div', {}, [childNodes])];\n }\n } else {\n var formatted = _this.getFormattedValue(item, field);\n if (_this.isStacked) {\n // We innerHTML a DIV to ensure rendered as a single cell when visually stacked!\n childNodes = [h('div', formatted)];\n } else {\n // Non stacked\n childNodes = formatted;\n }\n }\n // Render either a td or th cell\n return h(field.isRowHeader ? 'th' : 'td', data, childNodes);\n });\n // Calculate the row number in the dataset (indexed from 1)\n var ariaRowIndex = null;\n if (_this.currentPage && _this.perPage && _this.perPage > 0) {\n ariaRowIndex = (_this.currentPage - 1) * _this.perPage + rowIndex + 1;\n }\n // Assemble and add the row\n rows.push(h('tr', {\n key: 'row-' + rowIndex,\n class: [_this.rowClasses(item), { 'b-table-has-details': rowShowDetails }],\n attrs: {\n 'aria-describedby': detailsId,\n 'aria-rowindex': ariaRowIndex,\n role: _this.isStacked ? 'row' : null\n },\n on: {\n click: function click(evt) {\n _this.rowClicked(evt, item, rowIndex);\n },\n dblclick: function dblclick(evt) {\n _this.rowDblClicked(evt, item, rowIndex);\n },\n mouseenter: function mouseenter(evt) {\n _this.rowHovered(evt, item, rowIndex);\n }\n }\n }, tds));\n // Row Details slot\n if (rowShowDetails) {\n var tdAttrs = { colspan: String(fields.length) };\n var trAttrs = { id: detailsId };\n if (_this.isStacked) {\n tdAttrs['role'] = 'cell';\n trAttrs['role'] = 'row';\n }\n var details = h('td', { attrs: tdAttrs }, [detailsSlot({\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: toggleDetailsFn\n })]);\n rows.push(h('tr', {\n key: 'details-' + rowIndex,\n class: ['b-table-details', _this.tbodyTrClass],\n attrs: trAttrs\n }, [details]));\n } else if (detailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n rows.push(h(false));\n }\n });\n\n // Empty Items / Empty Filtered Row slot\n if (this.showEmpty && (!items || items.length === 0)) {\n var empty = this.filter ? $slots['emptyfiltered'] : $slots['empty'];\n if (!empty) {\n empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: { innerHTML: this.filter ? this.emptyFilteredText : this.emptyText }\n });\n }\n empty = h('td', {\n attrs: {\n colspan: String(fields.length),\n role: this.isStacked ? 'cell' : null\n }\n }, [h('div', { attrs: { role: 'alert', 'aria-live': 'polite' } }, [empty])]);\n rows.push(h('tr', {\n key: 'empty-row',\n class: ['b-table-empty-row', this.tbodyTrClass],\n attrs: this.isStacked ? { role: 'row' } : {}\n }, [empty]));\n } else {\n rows.push(h(false));\n }\n\n // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in always stacked mode, we don't bother rendering the row\n if ($scoped['bottom-row'] && this.isStacked !== true) {\n rows.push(h('tr', { key: 'bottom-row', class: ['b-table-bottom-row', this.tbodyTrClass] }, [$scoped['bottom-row']({ columns: fields.length, fields: fields })]));\n } else {\n rows.push(h(false));\n }\n\n // Assemble the rows into the tbody\n var tbody = h('tbody', { class: this.bodyClasses, attrs: this.isStacked ? { role: 'rowgroup' } : {} }, rows);\n\n // Assemble table\n var table = h('table', {\n class: this.tableClasses,\n attrs: {\n id: this.safeId(),\n role: this.isStacked ? 'table' : null,\n 'aria-busy': this.computedBusy ? 'true' : 'false',\n 'aria-colcount': String(fields.length),\n 'aria-rowcount': this.$attrs['aria-rowcount'] || this.perPage && this.perPage > 0 ? '-1' : null\n }\n }, [caption, colgroup, thead, tfoot, tbody]);\n\n // Add responsive wrapper if needed and return table\n return this.isResponsive ? h('div', { class: this.responsiveClass }, [table]) : table;\n },\n data: function data() {\n return {\n localSortBy: this.sortBy || '',\n localSortDesc: this.sortDesc || false,\n localItems: [],\n // Note: filteredItems only used to determine if # of items changed\n filteredItems: [],\n localBusy: false\n };\n },\n\n props: {\n items: {\n type: [Array, Function],\n default: function _default() {\n return [];\n }\n },\n fields: {\n type: [Object, Array],\n default: null\n },\n sortBy: {\n type: String,\n default: null\n },\n sortDesc: {\n type: Boolean,\n default: false\n },\n caption: {\n type: String,\n default: null\n },\n captionTop: {\n type: Boolean,\n default: false\n },\n striped: {\n type: Boolean,\n default: false\n },\n bordered: {\n type: Boolean,\n default: false\n },\n outlined: {\n type: Boolean,\n default: false\n },\n dark: {\n type: Boolean,\n default: function _default() {\n if (this && typeof this.inverse === 'boolean') {\n // Deprecate inverse\n warn(\"b-table: prop 'inverse' has been deprecated. Use 'dark' instead\");\n return this.dark;\n }\n return false;\n }\n },\n inverse: {\n // Deprecated in v1.0.0 in favor of `dark`\n type: Boolean,\n default: null\n },\n hover: {\n type: Boolean,\n default: false\n },\n small: {\n type: Boolean,\n default: false\n },\n fixed: {\n type: Boolean,\n default: false\n },\n footClone: {\n type: Boolean,\n default: false\n },\n responsive: {\n type: [Boolean, String],\n default: false\n },\n stacked: {\n type: [Boolean, String],\n default: false\n },\n headVariant: {\n type: String,\n default: ''\n },\n footVariant: {\n type: String,\n default: ''\n },\n theadClass: {\n type: [String, Array],\n default: null\n },\n theadTrClass: {\n type: [String, Array],\n default: null\n },\n tbodyClass: {\n type: [String, Array],\n default: null\n },\n tbodyTrClass: {\n type: [String, Array],\n default: null\n },\n tfootClass: {\n type: [String, Array],\n default: null\n },\n tfootTrClass: {\n type: [String, Array],\n default: null\n },\n perPage: {\n type: Number,\n default: 0\n },\n currentPage: {\n type: Number,\n default: 1\n },\n filter: {\n type: [String, RegExp, Function],\n default: null\n },\n sortCompare: {\n type: Function,\n default: null\n },\n noLocalSorting: {\n type: Boolean,\n default: false\n },\n noProviderPaging: {\n type: Boolean,\n default: false\n },\n noProviderSorting: {\n type: Boolean,\n default: false\n },\n noProviderFiltering: {\n type: Boolean,\n default: false\n },\n busy: {\n type: Boolean,\n default: false\n },\n value: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n labelSortAsc: {\n type: String,\n default: 'Click to sort Ascending'\n },\n labelSortDesc: {\n type: String,\n default: 'Click to sort Descending'\n },\n showEmpty: {\n type: Boolean,\n default: false\n },\n emptyText: {\n type: String,\n default: 'There are no records to show'\n },\n emptyFilteredText: {\n type: String,\n default: 'There are no records matching your request'\n },\n apiUrl: {\n // Passthrough prop. Passed to the context object. Not used by b-table directly\n type: String,\n default: ''\n }\n },\n watch: {\n items: function items(newVal, oldVal) {\n if (oldVal !== newVal) {\n this._providerUpdate();\n }\n },\n context: function context(newVal, oldVal) {\n if (!looseEqual(newVal, oldVal)) {\n this.$emit('context-changed', newVal);\n }\n },\n filteredItems: function filteredItems(newVal, oldVal) {\n if (this.localFiltering && newVal.length !== oldVal.length) {\n // Emit a filtered notification event, as number of filtered items has changed\n this.$emit('filtered', newVal);\n }\n },\n sortDesc: function sortDesc(newVal, oldVal) {\n if (newVal === this.localSortDesc) {\n return;\n }\n this.localSortDesc = newVal || false;\n },\n localSortDesc: function localSortDesc(newVal, oldVal) {\n // Emit update to sort-desc.sync\n if (newVal !== oldVal) {\n this.$emit('update:sortDesc', newVal);\n if (!this.noProviderSorting) {\n this._providerUpdate();\n }\n }\n },\n sortBy: function sortBy(newVal, oldVal) {\n if (newVal === this.localSortBy) {\n return;\n }\n this.localSortBy = newVal || null;\n },\n localSortBy: function localSortBy(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('update:sortBy', newVal);\n if (!this.noProviderSorting) {\n this._providerUpdate();\n }\n }\n },\n perPage: function perPage(newVal, oldVal) {\n if (oldVal !== newVal && !this.noProviderPaging) {\n this._providerUpdate();\n }\n },\n currentPage: function currentPage(newVal, oldVal) {\n if (oldVal !== newVal && !this.noProviderPaging) {\n this._providerUpdate();\n }\n },\n filter: function filter(newVal, oldVal) {\n if (oldVal !== newVal && !this.noProviderFiltering) {\n this._providerUpdate();\n }\n },\n localBusy: function localBusy(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('update:busy', newVal);\n }\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.localSortBy = this.sortBy;\n this.localSortDesc = this.sortDesc;\n if (this.hasProvider) {\n this._providerUpdate();\n }\n this.listenOnRoot('bv::refresh::table', function (id) {\n if (id === _this2.id || id === _this2) {\n _this2._providerUpdate();\n }\n });\n },\n\n computed: {\n isStacked: function isStacked() {\n return this.stacked === '' ? true : this.stacked;\n },\n isResponsive: function isResponsive() {\n var responsive = this.responsive === '' ? true : this.responsive;\n return this.isStacked ? false : responsive;\n },\n responsiveClass: function responsiveClass() {\n return this.isResponsive === true ? 'table-responsive' : this.isResponsive ? 'table-responsive-' + this.responsive : '';\n },\n tableClasses: function tableClasses() {\n return ['table', 'b-table', this.striped ? 'table-striped' : '', this.hover ? 'table-hover' : '', this.dark ? 'table-dark' : '', this.bordered ? 'table-bordered' : '', this.small ? 'table-sm' : '', this.outlined ? 'border' : '', this.fixed ? 'b-table-fixed' : '', this.isStacked === true ? 'b-table-stacked' : this.isStacked ? 'b-table-stacked-' + this.stacked : ''];\n },\n headClasses: function headClasses() {\n return [this.headVariant ? 'thead-' + this.headVariant : '', this.theadClass];\n },\n bodyClasses: function bodyClasses() {\n return [this.tbodyClass];\n },\n footClasses: function footClasses() {\n var variant = this.footVariant || this.headVariant || null;\n return [variant ? 'thead-' + variant : '', this.tfootClass];\n },\n captionStyles: function captionStyles() {\n // Move caption to top\n return this.captionTop ? { captionSide: 'top' } : {};\n },\n hasProvider: function hasProvider() {\n return this.items instanceof Function;\n },\n localFiltering: function localFiltering() {\n return this.hasProvider ? this.noProviderFiltering : true;\n },\n localSorting: function localSorting() {\n return this.hasProvider ? this.noProviderSorting : !this.noLocalSorting;\n },\n localPaging: function localPaging() {\n return this.hasProvider ? this.noProviderPaging : true;\n },\n context: function context() {\n return {\n perPage: this.perPage,\n currentPage: this.currentPage,\n filter: this.filter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n apiUrl: this.apiUrl\n };\n },\n computedFields: function computedFields() {\n var _this3 = this;\n\n // We normalize fields into an array of objects\n // [ { key:..., label:..., ...}, {...}, ..., {..}]\n var fields = [];\n if (isArray(this.fields)) {\n // Normalize array Form\n this.fields.filter(function (f) {\n return f;\n }).forEach(function (f) {\n if (typeof f === 'string') {\n fields.push({ key: f, label: startCase(f) });\n } else if ((typeof f === 'undefined' ? 'undefined' : _typeof(f)) === 'object' && f.key && typeof f.key === 'string') {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(assign({}, f));\n } else if ((typeof f === 'undefined' ? 'undefined' : _typeof(f)) === 'object' && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n var key = keys(f)[0];\n var field = processField(key, f[key]);\n if (field) {\n fields.push(field);\n }\n }\n });\n } else if (this.fields && _typeof(this.fields) === 'object' && keys(this.fields).length > 0) {\n // Normalize object Form\n keys(this.fields).forEach(function (key) {\n var field = processField(key, _this3.fields[key]);\n if (field) {\n fields.push(field);\n }\n });\n }\n // If no field provided, take a sample from first record (if exits)\n if (fields.length === 0 && this.computedItems.length > 0) {\n var sample = this.computedItems[0];\n var ignoredKeys = ['_rowVariant', '_cellVariants', '_showDetails'];\n keys(sample).forEach(function (k) {\n if (!ignoredKeys.includes(k)) {\n fields.push({ key: k, label: startCase(k) });\n }\n });\n }\n // Ensure we have a unique array of fields and that they have String labels\n var memo = {};\n return fields.filter(function (f) {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = typeof f.label === 'string' ? f.label : startCase(f.key);\n return true;\n }\n return false;\n });\n },\n computedItems: function computedItems() {\n // Grab some props/data to ensure reactivity\n var perPage = this.perPage;\n var currentPage = this.currentPage;\n var filter = this.filter;\n var sortBy = this.localSortBy;\n var sortDesc = this.localSortDesc;\n var sortCompare = this.sortCompare;\n var localFiltering = this.localFiltering;\n var localSorting = this.localSorting;\n var localPaging = this.localPaging;\n var items = this.hasProvider ? this.localItems : this.items;\n if (!items) {\n this.$nextTick(this._providerUpdate);\n return [];\n }\n // Array copy for sorting, filtering, etc.\n items = items.slice();\n // Apply local filter\n if (filter && localFiltering) {\n if (filter instanceof Function) {\n items = items.filter(filter);\n } else {\n var regex = void 0;\n if (filter instanceof RegExp) {\n regex = filter;\n } else {\n regex = new RegExp('.*' + filter + '.*', 'ig');\n }\n items = items.filter(function (item) {\n var test = regex.test(recToString(item));\n regex.lastIndex = 0;\n return test;\n });\n }\n }\n if (localFiltering) {\n // Make a local copy of filtered items to trigger filtered event\n this.filteredItems = items.slice();\n }\n // Apply local Sort\n if (sortBy && localSorting) {\n items = stableSort(items, function (a, b) {\n var ret = null;\n if (typeof sortCompare === 'function') {\n // Call user provided sortCompare routine\n ret = sortCompare(a, b, sortBy);\n }\n if (ret === null || ret === undefined) {\n // Fallback to defaultSortCompare if sortCompare not defined or returns null\n ret = defaultSortCompare(a, b, sortBy);\n }\n // Handle sorting direction\n return (ret || 0) * (sortDesc ? -1 : 1);\n });\n }\n // Apply local pagination\n if (Boolean(perPage) && localPaging) {\n // Grab the current page of data (which may be past filtered items)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n }\n // Update the value model with the filtered/sorted/paginated data set\n this.$emit('input', items);\n return items;\n },\n computedBusy: function computedBusy() {\n return this.busy || this.localBusy;\n }\n },\n methods: {\n keys: keys,\n fieldClasses: function fieldClasses(field) {\n return [field.sortable ? 'sorting' : '', field.sortable && this.localSortBy === field.key ? 'sorting_' + (this.localSortDesc ? 'desc' : 'asc') : '', field.variant ? 'table-' + field.variant : '', field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n tdClasses: function tdClasses(field, item) {\n var cellVariant = '';\n if (item._cellVariants && item._cellVariants[field.key]) {\n cellVariant = (this.dark ? 'bg' : 'table') + '-' + item._cellVariants[field.key];\n }\n return [field.variant && !cellVariant ? (this.dark ? 'bg' : 'table') + '-' + field.variant : '', cellVariant, field.class ? field.class : '', this.getTdValues(item, field.key, field.tdClass, '')];\n },\n tdAttrs: function tdAttrs(field, item, colIndex) {\n var attrs = {};\n attrs['aria-colindex'] = String(colIndex + 1);\n if (this.isStacked) {\n // Generate the \"header cell\" label content in stacked mode\n attrs['data-label'] = field.label;\n if (field.isRowHeader) {\n attrs['role'] = 'rowheader';\n } else {\n attrs['role'] = 'cell';\n }\n }\n return assign({}, attrs, this.getTdValues(item, field.key, field.tdAttr, {}));\n },\n rowClasses: function rowClasses(item) {\n return [item._rowVariant ? (this.dark ? 'bg' : 'table') + '-' + item._rowVariant : '', this.tbodyTrClass];\n },\n rowClicked: function rowClicked(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return;\n }\n this.$emit('row-clicked', item, index, e);\n },\n rowDblClicked: function rowDblClicked(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return;\n }\n this.$emit('row-dblclicked', item, index, e);\n },\n rowHovered: function rowHovered(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return;\n }\n this.$emit('row-hovered', item, index, e);\n },\n headClicked: function headClicked(e, field) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return;\n }\n var sortChanged = false;\n if (field.sortable) {\n if (field.key === this.localSortBy) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = field.key;\n this.localSortDesc = false;\n }\n sortChanged = true;\n } else if (this.localSortBy) {\n this.localSortBy = null;\n this.localSortDesc = false;\n sortChanged = true;\n }\n this.$emit('head-clicked', field.key, field, e);\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit('sort-changed', this.context);\n }\n },\n stopIfBusy: function stopIfBusy(evt) {\n if (this.computedBusy) {\n // If table is busy (via provider) then don't propagate\n evt.preventDefault();\n evt.stopPropagation();\n return true;\n }\n return false;\n },\n refresh: function refresh() {\n // Expose refresh method\n if (this.hasProvider) {\n this._providerUpdate();\n }\n },\n _providerSetLocal: function _providerSetLocal(items) {\n this.localItems = items && items.length > 0 ? items.slice() : [];\n this.localBusy = false;\n this.$emit('refreshed');\n // Deprecated root emit\n this.emitOnRoot('table::refreshed', this.id);\n // New root emit\n if (this.id) {\n this.emitOnRoot('bv::table::refreshed', this.id);\n }\n },\n _providerUpdate: function _providerUpdate() {\n var _this4 = this;\n\n // Refresh the provider items\n if (this.computedBusy || !this.hasProvider) {\n // Don't refresh remote data if we are 'busy' or if no provider\n return;\n }\n // Set internal busy state\n this.localBusy = true;\n // Call provider function with context and optional callback\n var data = this.items(this.context, this._providerSetLocal);\n if (data && data.then && typeof data.then === 'function') {\n // Provider returned Promise\n data.then(function (items) {\n _this4._providerSetLocal(items);\n });\n } else {\n // Provider returned Array data\n this._providerSetLocal(data);\n }\n },\n getTdValues: function getTdValues(item, key, tdValue, defValue) {\n var parent = this.$parent;\n if (tdValue) {\n if (typeof tdValue === 'function') {\n var value = get(item, key);\n return tdValue(value, key, item);\n } else if (typeof tdValue === 'string' && typeof parent[tdValue] === 'function') {\n var _value = get(item, key);\n return parent[tdValue](_value, key, item);\n }\n return tdValue;\n }\n return defValue;\n },\n getFormattedValue: function getFormattedValue(item, field) {\n var key = field.key;\n var formatter = field.formatter;\n var parent = this.$parent;\n var value = get(item, key);\n if (formatter) {\n if (typeof formatter === 'function') {\n value = formatter(value, key, item);\n } else if (typeof formatter === 'string' && typeof parent[formatter] === 'function') {\n value = parent[formatter](value, key, item);\n }\n }\n return value;\n }\n }\n};","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\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 objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = startCase;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\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 objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/*\n * Consitant and stable sort function across JavsaScript platforms\n *\n * Inconsistant sorts can cause SSR problems between client and server\n * such as in <b-table> if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistant/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm bsaed on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sortcompare function\n * @return {array}\n */\n\nexport default function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/index.js!./table.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c5e7f37c\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../css-loader/index.js!./table.css\", function() {\n var newContent = require(\"!!../../../../css-loader/index.js!./table.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* Add support for fixed layout table */\\ntable.b-table.b-table-fixed {\\n table-layout: fixed;\\n}\\n\\n/* Busy table styling */\\ntable.b-table[aria-busy='false'] {\\n opacity: 1;\\n}\\ntable.b-table[aria-busy='true'] {\\n opacity: 0.6;\\n}\\n\\n/* Sort styling */\\ntable.b-table > thead > tr > th,\\ntable.b-table > tfoot > tr > th {\\n position: relative;\\n}\\ntable.b-table > thead > tr > th.sorting,\\ntable.b-table > tfoot > tr > th.sorting {\\n padding-right: 1.5em;\\n cursor: pointer;\\n}\\ntable.b-table > thead > tr > th.sorting::before,\\ntable.b-table > thead > tr > th.sorting::after,\\ntable.b-table > tfoot > tr > th.sorting::before,\\ntable.b-table > tfoot > tr > th.sorting::after {\\n position: absolute;\\n bottom: 0;\\n display: block;\\n opacity: 0.4;\\n padding-bottom: inherit;\\n font-size: inherit;\\n line-height: 180%;\\n}\\ntable.b-table > thead > tr > th.sorting::before,\\ntable.b-table > tfoot > tr > th.sorting::before {\\n right: 0.75em;\\n content: '\\\\2191';\\n}\\ntable.b-table > thead > tr > th.sorting::after,\\ntable.b-table > tfoot > tr > th.sorting::after {\\n right: 0.25em;\\n content: '\\\\2193';\\n}\\ntable.b-table > thead > tr > th.sorting_asc::after,\\ntable.b-table > thead > tr > th.sorting_desc::before,\\ntable.b-table > tfoot > tr > th.sorting_asc::after,\\ntable.b-table > tfoot > tr > th.sorting_desc::before {\\n opacity: 1;\\n}\\n\\n/* Stacked table layout */\\n/* Derived from http://blog.adrianroselli.com/2017/11/a-responsive-accessible-table.html */\\n/* Always stacked */\\ntable.b-table.b-table-stacked {\\n width: 100%;\\n}\\ntable.b-table.b-table-stacked,\\ntable.b-table.b-table-stacked > tbody,\\ntable.b-table.b-table-stacked > tbody > tr,\\ntable.b-table.b-table-stacked > tbody > tr > td,\\ntable.b-table.b-table-stacked > tbody > tr > th,\\ntable.b-table.b-table-stacked > caption {\\n display: block;\\n}\\n\\n/* Hide stuff we can't deal with, or shouldn't show */\\ntable.b-table.b-table-stacked > thead,\\ntable.b-table.b-table-stacked > tfoot,\\ntable.b-table.b-table-stacked > tbody > tr.b-table-top-row,\\ntable.b-table.b-table-stacked > tbody > tr.b-table-bottom-row {\\n display: none;\\n}\\n\\n/* inter-row top border */\\ntable.b-table.b-table-stacked > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n}\\n\\n/* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\ntable.b-table.b-table-stacked > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n}\\n\\n/* generate row cell \\\"heading\\\" */\\ntable.b-table.b-table-stacked > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n}\\n\\n@media all and (max-width: 575.99px) {\\n /* Under SM */\\n table.b-table.b-table-stacked-sm {\\n width: 100%;\\n }\\n table.b-table.b-table-stacked-sm,\\n table.b-table.b-table-stacked-sm > tbody,\\n table.b-table.b-table-stacked-sm > tbody > tr,\\n table.b-table.b-table-stacked-sm > tbody > tr > td,\\n table.b-table.b-table-stacked-sm > tbody > tr > th,\\n table.b-table.b-table-stacked-sm > caption {\\n display: block;\\n }\\n /* hide stuff we can't deal with, or shouldn't show */\\n table.b-table.b-table-stacked-sm > thead,\\n table.b-table.b-table-stacked-sm > tfoot,\\n table.b-table.b-table-stacked-sm > tbody > tr.b-table-top-row,\\n table.b-table.b-table-stacked-sm > tbody > tr.b-table-bottom-row {\\n display: none;\\n }\\n /* inter-row top border */\\n table.b-table.b-table-stacked-sm > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n }\\n /* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\n table.b-table.b-table-stacked-sm > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n }\\n /* generate row cell \\\"heading\\\" */\\n table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n }\\n}\\n\\n@media all and (max-width: 767.99px) {\\n /* under MD */\\n table.b-table.b-table-stacked-md {\\n width: 100%;\\n }\\n table.b-table.b-table-stacked-md,\\n table.b-table.b-table-stacked-md > tbody,\\n table.b-table.b-table-stacked-md > tbody > tr,\\n table.b-table.b-table-stacked-md > tbody > tr > td,\\n table.b-table.b-table-stacked-md > tbody > tr > th,\\n table.b-table.b-table-stacked-md > caption {\\n display: block;\\n }\\n /* hide stuff we can't deal with, or shouldn't show */\\n table.b-table.b-table-stacked-md > thead,\\n table.b-table.b-table-stacked-md > tfoot,\\n table.b-table.b-table-stacked-md > tbody > tr.b-table-top-row,\\n table.b-table.b-table-stacked-md > tbody > tr.b-table-bottom-row {\\n display: none;\\n }\\n /* inter-row top border */\\n table.b-table.b-table-stacked-md > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n }\\n /* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\n table.b-table.b-table-stacked-md > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n }\\n /* generate row cell \\\"heading\\\" */\\n table.b-table.b-table-stacked-md > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n }\\n}\\n\\n@media all and (max-width: 991.99px) {\\n /* under LG */\\n table.b-table.b-table-stacked-lg {\\n width: 100%;\\n }\\n table.b-table.b-table-stacked-lg,\\n table.b-table.b-table-stacked-lg > tbody,\\n table.b-table.b-table-stacked-lg > tbody > tr,\\n table.b-table.b-table-stacked-lg > tbody > tr > td,\\n table.b-table.b-table-stacked-lg > tbody > tr > th,\\n table.b-table.b-table-stacked-lg > caption {\\n display: block;\\n }\\n /* hide stuff we can't deal with, or shouldn't show */\\n table.b-table.b-table-stacked-lg > thead,\\n table.b-table.b-table-stacked-lg > tfoot,\\n table.b-table.b-table-stacked-lg > tbody > tr.b-table-top-row,\\n table.b-table.b-table-stacked-lg > tbody > tr.b-table-bottom-row {\\n display: none;\\n }\\n /* inter-row top border */\\n table.b-table.b-table-stacked-lg > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n }\\n /* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\n table.b-table.b-table-stacked-lg > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n }\\n /* generate row cell \\\"heading\\\" */\\n table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n }\\n}\\n\\n@media all and (max-width: 1199.99px) {\\n /* under XL */\\n table.b-table.b-table-stacked-xl {\\n width: 100%;\\n }\\n table.b-table.b-table-stacked-xl,\\n table.b-table.b-table-stacked-xl > tbody,\\n table.b-table.b-table-stacked-xl > tbody > tr,\\n table.b-table.b-table-stacked-xl > tbody > tr > td,\\n table.b-table.b-table-stacked-xl > tbody > tr > th,\\n table.b-table.b-table-stacked-xl > caption {\\n display: block;\\n }\\n /* hide stuff we can't deal with, or shouldn't show */\\n table.b-table.b-table-stacked-xl > thead,\\n table.b-table.b-table-stacked-xl > tfoot,\\n table.b-table.b-table-stacked-xl > tbody > tr.b-table-top-row,\\n table.b-table.b-table-stacked-xl > tbody > tr.b-table-bottom-row {\\n display: none;\\n }\\n /* inter-row top border */\\n table.b-table.b-table-stacked-xl > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n }\\n /* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\n table.b-table.b-table-stacked-xl > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n }\\n /* generate row cell \\\"heading\\\" */\\n table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n }\\n}\\n\\n/* Details row styling */\\ntable.b-table > tbody > tr.b-table-details > td {\\n border-top: none;\\n}\\n\", \"\"]);\n\n// exports\n","import bTabs from './tabs';\nimport bTab from './tab';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bTabs: bTabs,\n bTab: bTab\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport KeyCodes from '../../utils/key-codes';\nimport observeDom from '../../utils/observe-dom';\nimport idMixin from '../../mixins/id';\n\n// Helper component\nvar bTabButtonHelper = {\n name: 'bTabButtonHelper',\n props: {\n content: { type: [String, Array], default: '' },\n href: { type: String, default: '#' },\n posInSet: { type: Number, default: null },\n setSize: { type: Number, default: null },\n controls: { type: String, default: null },\n id: { type: String, default: null },\n active: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n linkClass: { default: null },\n itemClass: { default: null },\n noKeyNav: { type: Boolean, default: false }\n },\n render: function render(h) {\n var link = h('a', {\n class: ['nav-link', { active: this.active, disabled: this.disabled }, this.linkClass],\n attrs: {\n role: 'tab',\n tabindex: this.noKeyNav ? null : '-1',\n href: this.href,\n id: this.id,\n disabled: this.disabled,\n 'aria-selected': this.active ? 'true' : 'false',\n 'aria-setsize': this.setSize,\n 'aria-posinset': this.posInSet,\n 'aria-controls': this.controls\n },\n on: {\n click: this.handleClick,\n keydown: this.handleClick\n }\n }, this.content);\n return h('li', { class: ['nav-item', this.itemClass], attrs: { role: 'presentation' } }, [link]);\n },\n\n methods: {\n handleClick: function handleClick(evt) {\n function stop() {\n evt.preventDefault();\n evt.stopPropagation();\n }\n if (evt.type !== 'click' && this.noKeyNav) {\n return;\n }\n if (this.disabled) {\n stop();\n return;\n }\n if (evt.type === 'click' || evt.keyCode === KeyCodes.ENTER || evt.keyCode === KeyCodes.SPACE) {\n stop();\n this.$emit('click', evt);\n }\n }\n }\n};\n\nexport default {\n mixins: [idMixin],\n render: function render(h) {\n var _this = this,\n _ref;\n\n var tabs = this.tabs;\n // Navigation 'buttons'\n var buttons = tabs.map(function (tab, index) {\n return h(bTabButtonHelper, {\n key: index,\n props: {\n content: tab.$slots.title || tab.title,\n href: tab.href,\n id: tab.controlledBy || _this.safeId('_BV_tab_' + (index + 1) + '_'),\n active: tab.localActive,\n disabled: tab.disabled,\n setSize: tabs.length,\n posInSet: index + 1,\n controls: _this.safeId('_BV_tab_container_'),\n linkClass: tab.titleLinkClass,\n itemClass: tab.titleItemClass,\n noKeyNav: _this.noKeyNav\n },\n on: {\n click: function click(evt) {\n _this.setTab(index);\n }\n }\n });\n });\n\n // Nav 'button' wrapper\n var navs = h('ul', {\n class: ['nav', (_ref = {}, _defineProperty(_ref, 'nav-' + this.navStyle, !this.noNavStyle), _defineProperty(_ref, 'card-header-' + this.navStyle, this.card && !this.vertical), _defineProperty(_ref, 'card-header', this.card && this.vertical), _defineProperty(_ref, 'h-100', this.card && this.vertical), _defineProperty(_ref, 'flex-column', this.vertical), _defineProperty(_ref, 'border-bottom-0', this.vertical), _defineProperty(_ref, 'rounded-0', this.vertical), _defineProperty(_ref, 'small', this.small), _ref), this.navClass],\n attrs: {\n role: 'tablist',\n tabindex: this.noKeyNav ? null : '0',\n id: this.safeId('_BV_tab_controls_')\n },\n on: { keydown: this.onKeynav }\n }, [buttons, this.$slots.tabs]);\n navs = h('div', {\n class: [{\n 'card-header': this.card && !this.vertical && !(this.end || this.bottom),\n 'card-footer': this.card && !this.vertical && (this.end || this.bottom),\n 'col-auto': this.vertical\n }, this.navWrapperClass]\n }, [navs]);\n\n var empty = void 0;\n if (tabs && tabs.length) {\n empty = h(false);\n } else {\n empty = h('div', { class: ['tab-pane', 'active', { 'card-body': this.card }] }, this.$slots.empty);\n }\n\n // Main content section\n var content = h('div', {\n ref: 'tabsContainer',\n class: ['tab-content', { col: this.vertical }, this.contentClass],\n attrs: { id: this.safeId('_BV_tab_container_') }\n }, [this.$slots.default, empty]);\n\n // Render final output\n return h(this.tag, {\n class: ['tabs', { row: this.vertical, 'no-gutters': this.vertical && this.card }],\n attrs: { id: this.safeId() }\n }, [this.end || this.bottom ? content : h(false), [navs], this.end || this.bottom ? h(false) : content]);\n },\n data: function data() {\n return {\n currentTab: this.value,\n tabs: []\n };\n },\n\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n card: {\n type: Boolean,\n default: false\n },\n small: {\n type: Boolean,\n default: false\n },\n value: {\n type: Number,\n default: null\n },\n pills: {\n type: Boolean,\n default: false\n },\n vertical: {\n type: Boolean,\n default: false\n },\n bottom: {\n type: Boolean,\n default: false\n },\n end: {\n // Synonym for 'bottom'\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noNavStyle: {\n type: Boolean,\n default: false\n },\n noKeyNav: {\n type: Boolean,\n default: false\n },\n lazy: {\n // This prop is sniffed by the tab child\n type: Boolean,\n default: false\n },\n contentClass: {\n type: [String, Array, Object],\n default: null\n },\n navClass: {\n type: [String, Array, Object],\n default: null\n },\n navWrapperClass: {\n type: [String, Array, Object],\n default: null\n }\n },\n watch: {\n currentTab: function currentTab(val, old) {\n if (val === old) {\n return;\n }\n this.$root.$emit('changed::tab', this, val, this.tabs[val]);\n this.$emit('input', val);\n this.tabs[val].$emit('click');\n },\n value: function value(val, old) {\n if (val === old) {\n return;\n }\n if (typeof old !== 'number') {\n old = 0;\n }\n // Moving left or right?\n var direction = val < old ? -1 : 1;\n this.setTab(val, false, direction);\n }\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n navStyle: function navStyle() {\n return this.pills ? 'pills' : 'tabs';\n }\n },\n methods: {\n /**\n * Util: Return the sign of a number (as -1, 0, or 1)\n */\n sign: function sign(x) {\n return x === 0 ? 0 : x > 0 ? 1 : -1;\n },\n\n /*\n * handle keyboard navigation\n */\n onKeynav: function onKeynav(evt) {\n if (this.noKeyNav) {\n return;\n }\n var key = evt.keyCode;\n var shift = evt.shiftKey;\n function stop() {\n evt.preventDefault();\n evt.stopPropagation();\n }\n if (key === KeyCodes.UP || key === KeyCodes.LEFT) {\n stop();\n if (shift) {\n this.setTab(0, false, 1);\n } else {\n this.previousTab();\n }\n } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT) {\n stop();\n if (shift) {\n this.setTab(this.tabs.length - 1, false, -1);\n } else {\n this.nextTab();\n }\n }\n },\n\n /**\n * Move to next tab\n */\n nextTab: function nextTab() {\n this.setTab(this.currentTab + 1, false, 1);\n },\n\n /**\n * Move to previous tab\n */\n previousTab: function previousTab() {\n this.setTab(this.currentTab - 1, false, -1);\n },\n\n /**\n * Set active tab on the tabs collection and the child 'tab' component\n * Index is the tab we want to activate. Direction is the direction we are moving\n * so if the tab we requested is disabled, we can skip over it.\n * Force is used by updateTabs to ensure we have cleared any previous active tabs.\n */\n setTab: function setTab(index, force, direction) {\n var _this2 = this;\n\n direction = this.sign(direction || 0);\n index = index || 0;\n // Prevent setting same tab and infinite loops!\n if (!force && index === this.currentTab) {\n return;\n }\n var tab = this.tabs[index];\n // Don't go beyond indexes!\n if (!tab) {\n // Reset the v-model to the current Tab\n this.$emit('input', this.currentTab);\n return;\n }\n // Ignore or Skip disabled\n if (tab.disabled) {\n if (direction) {\n // Skip to next non disabled tab in specified direction (recursive)\n this.setTab(index + direction, force, direction);\n }\n return;\n }\n // Activate requested current tab, and deactivte any old tabs\n this.tabs.forEach(function (t) {\n if (t === tab) {\n // Set new tab as active\n _this2.$set(t, 'localActive', true);\n } else {\n // Ensure non current tabs are not active\n _this2.$set(t, 'localActive', false);\n }\n });\n // Update currentTab\n this.currentTab = index;\n },\n\n /**\n * Dynamically update tabs list\n */\n updateTabs: function updateTabs() {\n // Probe tabs\n this.tabs = this.$children.filter(function (child) {\n return child._isTab;\n });\n // Set initial active tab\n var tabIndex = null;\n // Find *last* active non-dsabled tab in current tabs\n // We trust tab state over currentTab\n this.tabs.forEach(function (tab, index) {\n if (tab.localActive && !tab.disabled) {\n tabIndex = index;\n }\n });\n // Else try setting to currentTab\n if (tabIndex === null) {\n if (this.currentTab >= this.tabs.length) {\n // Handle last tab being removed\n this.setTab(this.tabs.length - 1, true, -1);\n return;\n } else if (this.tabs[this.currentTab] && !this.tabs[this.currentTab].disabled) {\n tabIndex = this.currentTab;\n }\n }\n // Else find *first* non-disabled tab in current tabs\n if (tabIndex === null) {\n this.tabs.forEach(function (tab, index) {\n if (!tab.disabled && tabIndex === null) {\n tabIndex = index;\n }\n });\n }\n this.setTab(tabIndex || 0, true, 0);\n }\n },\n mounted: function mounted() {\n this.updateTabs();\n // Observe Child changes so we can notify tabs change\n observeDom(this.$refs.tabsContainer, this.updateTabs.bind(this), {\n subtree: false\n });\n }\n};","import idMixin from '../../mixins/id';\n\nexport default {\n mixins: [idMixin],\n render: function render(h) {\n var content = h(false);\n if (this.localActive || !this.computedLazy) {\n content = h(this.tag, {\n ref: 'panel',\n class: this.tabClasses,\n directives: [{ name: 'show', value: this.localActive }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': this.localActive ? 'false' : 'true',\n 'aria-expanded': this.localActive ? 'true' : 'false',\n 'aria-lablelledby': this.controlledBy || null\n }\n }, [this.$slots.default]);\n }\n return h('transition', {\n props: { mode: 'out-in' },\n on: {\n beforeEnter: this.beforeEnter,\n afterEnter: this.afterEnter,\n afterLeave: this.afterLeave\n }\n }, [content]);\n },\n\n methods: {\n beforeEnter: function beforeEnter() {\n this.show = false;\n },\n afterEnter: function afterEnter() {\n this.show = true;\n },\n afterLeave: function afterLeave() {\n this.show = false;\n }\n },\n data: function data() {\n return {\n localActive: this.active && !this.disabled,\n show: false\n };\n },\n mounted: function mounted() {\n this.show = this.localActive;\n },\n\n computed: {\n tabClasses: function tabClasses() {\n return ['tab-pane', this.$parent && this.$parent.card && !this.noBody ? 'card-body' : '', this.show ? 'show' : '', this.computedFade ? 'fade' : '', this.disabled ? 'disabled' : '', this.localActive ? 'active' : ''];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedFade: function computedFade() {\n return this.$parent.fade;\n },\n computedLazy: function computedLazy() {\n return this.$parent.lazy;\n },\n _isTab: function _isTab() {\n // For parent sniffing of child\n return true;\n }\n },\n props: {\n active: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n },\n buttonId: {\n type: String,\n default: ''\n },\n title: {\n type: String,\n default: ''\n },\n titleItemClass: {\n // Sniffed by tabs.vue and added to nav 'li.nav-item'\n type: [String, Array, Object],\n default: null\n },\n titleLinkClass: {\n // Sniffed by tabs.vue and added to nav 'a.nav-link'\n type: [String, Array, Object],\n default: null\n },\n headHtml: {\n // Is this actually ever used?\n type: String,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noBody: {\n type: Boolean,\n default: false\n },\n href: {\n type: String,\n default: '#'\n }\n }\n};","import bTooltip from './tooltip';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bTooltip: bTooltip\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import ToolTip from '../../utils/tooltip.class';\nimport warn from '../../utils/warn';\nimport toolpopMixin from '../../mixins/toolpop';\n\nexport default {\n mixins: [toolpopMixin],\n render: function render(h) {\n return h('div', { class: ['d-none'], style: { display: 'none' }, attrs: { 'aria-hidden': true } }, [h('div', { ref: 'title' }, this.$slots.default)]);\n },\n data: function data() {\n return {};\n },\n\n props: {\n title: {\n type: String,\n default: ''\n },\n triggers: {\n type: [String, Array],\n default: 'hover focus'\n },\n placement: {\n type: String,\n default: 'top'\n }\n },\n methods: {\n createToolpop: function createToolpop() {\n // getTarget is in toolpop mixin\n var target = this.getTarget();\n if (target) {\n this._toolpop = new ToolTip(target, this.getConfig(), this.$root);\n } else {\n this._toolpop = null;\n warn(\"b-tooltip: 'target' element not found!\");\n }\n return this._toolpop;\n }\n }\n};","import Toggle from './toggle';\nimport Modal from './modal';\nimport Scrollspy from './scrollspy';\nimport Tooltip from './tooltip';\nimport Popover from './popover';\n\nexport { Toggle, Modal, Scrollspy, Tooltip, Popover };","import bScrollspy from './scrollspy';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bScrollspy: bScrollspy\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*\n * ScrollSpy directive v-b-scrollspy\n */\n\nimport ScrollSpy from './scrollspy.class';\nimport { keys } from '../../utils/object';\n\nvar inBrowser = typeof window !== 'undefined';\nvar isServer = !inBrowser;\n\n// Key we use to store our Instance\nvar BVSS = '__BV_ScrollSpy__';\n\n// Generate config from bindings\n/* istanbul ignore next: not easy to test */\nfunction makeConfig(binding) {\n var config = {};\n\n // If Argument, assume element ID\n if (binding.arg) {\n // Element ID specified as arg. We must pre-pend #\n config.element = '#' + binding.arg;\n }\n\n // Process modifiers\n keys(binding.modifiers).forEach(function (mod) {\n if (/^\\d+$/.test(mod)) {\n // Offest value\n config.offset = parseInt(mod, 10);\n } else if (/^(auto|position|offset)$/.test(mod)) {\n // Offset method\n config.method = mod;\n }\n });\n\n // Process value\n if (typeof binding.value === 'string') {\n // Value is a CSS ID or selector\n config.element = binding.value;\n } else if (typeof binding.value === 'number') {\n // Value is offset\n config.offset = Math.round(binding.value);\n } else if (_typeof(binding.value) === 'object') {\n // Value is config object\n // Filter the object based on our supported config options\n keys(binding.value).filter(function (k) {\n return Boolean(ScrollSpy.DefaultType[k]);\n }).forEach(function (k) {\n config[k] = binding.value[k];\n });\n }\n\n return config;\n}\n\n/* istanbul ignore next: not easy to test */\nfunction addBVSS(el, binding, vnode) {\n if (isServer) {\n return;\n }\n var cfg = makeConfig(binding);\n if (!el[BVSS]) {\n el[BVSS] = new ScrollSpy(el, cfg, vnode.context.$root);\n } else {\n el[BVSS].updateConfig(cfg, vnode.context.$root);\n }\n return el[BVSS];\n}\n\n/* istanbul ignore next: not easy to test */\nfunction removeBVSS(el) {\n if (el[BVSS]) {\n el[BVSS].dispose();\n el[BVSS] = null;\n }\n}\n\n/*\n * Export our directive\n */\n\n/* istanbul ignore next: not easy to test */\nexport default {\n bind: function bind(el, binding, vnode) {\n addBVSS(el, binding, vnode);\n },\n inserted: function inserted(el, binding, vnode) {\n addBVSS(el, binding, vnode);\n },\n update: function update(el, binding, vnode) {\n addBVSS(el, binding, vnode);\n },\n componentUpdated: function componentUpdated(el, binding, vnode) {\n addBVSS(el, binding, vnode);\n },\n unbind: function unbind(el) {\n if (isServer) {\n return;\n }\n // Remove scroll event listener on scrollElId\n removeBVSS(el);\n }\n};","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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*\n * ScrollSpy class definition\n */\n\nimport { assign } from '../../utils/object';\nimport observeDom from '../../utils/observe-dom';\nimport warn from '../../utils/warn';\nimport { isElement, isVisible, closest, matches, getBCR, offset, position, selectAll, select, hasClass, addClass, removeClass, getAttr, eventOn, eventOff } from '../../utils/dom';\n\n/*\n * Constants / Defaults\n */\n\nvar NAME = 'v-b-scrollspy';\nvar ACTIVATE_EVENT = 'bv::scrollspy::activate';\n\nvar Default = {\n element: 'body',\n offset: 10,\n method: 'auto',\n throttle: 75\n};\n\nvar DefaultType = {\n element: '(string|element|component)',\n offset: 'number',\n method: 'string',\n throttle: 'number'\n};\n\nvar ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n};\n\nvar Selector = {\n ACTIVE: '.active',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown, .dropup',\n DROPDOWN_ITEMS: '.dropdown-item',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n};\n\nvar OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n\n // HREFs must start with # but can be === '#', or start with '#/' or '#!' (which can be router links)\n};var HREF_REGEX = /^#[^/!]+/;\n\n// Transition Events\nvar TransitionEndEvents = ['webkitTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd'];\n\n/*\n * Utility Methods\n */\n\n// Better var type detection\n/* istanbul ignore next: not easy to test */\nfunction toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase();\n}\n\n// Check config properties for expected types\n/* istanbul ignore next: not easy to test */\nfunction typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n // handle Vue instances\n valueType = value && value._isVue ? 'component' : valueType;\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n warn(componentName + ': Option \"' + property + '\" provided type \"' + valueType + '\", but expected type \"' + expectedTypes + '\"');\n }\n }\n }\n}\n\n/*\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n/* istanbul ignore next: not easy to test */\n\nvar ScrollSpy = function () {\n function ScrollSpy(element, config, $root) {\n _classCallCheck(this, ScrollSpy);\n\n // The element we activate links in\n this.$el = element;\n this.$scroller = null;\n this.$selector = [Selector.NAV_LINKS, Selector.LIST_ITEMS, Selector.DROPDOWN_ITEMS].join(',');\n this.$offsets = [];\n this.$targets = [];\n this.$activeTarget = null;\n this.$scrollHeight = 0;\n this.$resizeTimeout = null;\n this.$obs_scroller = null;\n this.$obs_targets = null;\n this.$root = $root || null;\n this.$config = null;\n\n this.updateConfig(config);\n }\n\n _createClass(ScrollSpy, [{\n key: 'updateConfig',\n value: function updateConfig(config, $root) {\n if (this.$scroller) {\n // Just in case out scroll element has changed\n this.unlisten();\n this.$scroller = null;\n }\n var cfg = assign({}, this.constructor.Default, config);\n if ($root) {\n this.$root = $root;\n }\n typeCheckConfig(this.constructor.Name, cfg, this.constructor.DefaultType);\n this.$config = cfg;\n\n if (this.$root) {\n var self = this;\n this.$root.$nextTick(function () {\n self.listen();\n });\n } else {\n this.listen();\n }\n }\n }, {\n key: 'dispose',\n value: function dispose() {\n this.unlisten();\n clearTimeout(this.$resizeTimeout);\n this.$resizeTimeout = null;\n this.$el = null;\n this.$config = null;\n this.$scroller = null;\n this.$selector = null;\n this.$offsets = null;\n this.$targets = null;\n this.$activeTarget = null;\n this.$scrollHeight = null;\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this = this;\n\n var scroller = this.getScroller();\n if (scroller && scroller.tagName !== 'BODY') {\n eventOn(scroller, 'scroll', this);\n }\n eventOn(window, 'scroll', this);\n eventOn(window, 'resize', this);\n eventOn(window, 'orientationchange', this);\n TransitionEndEvents.forEach(function (evtName) {\n eventOn(window, evtName, _this);\n });\n this.setObservers(true);\n // Scedule a refresh\n this.handleEvent('refresh');\n }\n }, {\n key: 'unlisten',\n value: function unlisten() {\n var _this2 = this;\n\n var scroller = this.getScroller();\n this.setObservers(false);\n if (scroller && scroller.tagName !== 'BODY') {\n eventOff(scroller, 'scroll', this);\n }\n eventOff(window, 'scroll', this);\n eventOff(window, 'resize', this);\n eventOff(window, 'orientationchange', this);\n TransitionEndEvents.forEach(function (evtName) {\n eventOff(window, evtName, _this2);\n });\n }\n }, {\n key: 'setObservers',\n value: function setObservers(on) {\n var _this3 = this;\n\n // We observe both the scroller for content changes, and the target links\n if (this.$obs_scroller) {\n this.$obs_scroller.disconnect();\n this.$obs_scroller = null;\n }\n if (this.$obs_targets) {\n this.$obs_targets.disconnect();\n this.$obs_targets = null;\n }\n if (on) {\n this.$obs_targets = observeDom(this.$el, function () {\n _this3.handleEvent('mutation');\n }, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['href']\n });\n this.$obs_scroller = observeDom(this.getScroller(), function () {\n _this3.handleEvent('mutation');\n }, {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['id', 'style', 'class']\n });\n }\n }\n\n // general event handler\n\n }, {\n key: 'handleEvent',\n value: function handleEvent(evt) {\n var type = typeof evt === 'string' ? evt : evt.type;\n\n var self = this;\n function resizeThrottle() {\n if (!self.$resizeTimeout) {\n self.$resizeTimeout = setTimeout(function () {\n self.refresh();\n self.process();\n self.$resizeTimeout = null;\n }, self.$config.throttle);\n }\n }\n\n if (type === 'scroll') {\n if (!this.$obs_scroller) {\n // Just in case we are added to the DOM before the scroll target is\n // We re-instantiate our listeners, just in case\n this.listen();\n }\n this.process();\n } else if (/(resize|orientationchange|mutation|refresh)/.test(type)) {\n // Postpone these events by throttle time\n resizeThrottle();\n }\n }\n\n // Refresh the list of target links on the element we are applied to\n\n }, {\n key: 'refresh',\n value: function refresh() {\n var _this4 = this;\n\n var scroller = this.getScroller();\n if (!scroller) {\n return;\n }\n var autoMethod = scroller !== scroller.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;\n var method = this.$config.method === 'auto' ? autoMethod : this.$config.method;\n var methodFn = method === OffsetMethod.POSITION ? position : offset;\n var offsetBase = method === OffsetMethod.POSITION ? this.getScrollTop() : 0;\n\n this.$offsets = [];\n this.$targets = [];\n\n this.$scrollHeight = this.getScrollHeight();\n\n // Find all the unique link href's\n selectAll(this.$selector, this.$el).map(function (link) {\n return getAttr(link, 'href');\n }).filter(function (href) {\n return HREF_REGEX.test(href || '');\n }).map(function (href) {\n var el = select(href, scroller);\n if (isVisible(el)) {\n return {\n offset: parseInt(methodFn(el).top, 10) + offsetBase,\n target: href\n };\n }\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a.offset - b.offset;\n }).reduce(function (memo, item) {\n // record only unique targets/offfsets\n if (!memo[item.target]) {\n _this4.$offsets.push(item.offset);\n _this4.$targets.push(item.target);\n memo[item.target] = true;\n }\n return memo;\n }, {});\n\n return this;\n }\n\n // Handle activating/clearing\n\n }, {\n key: 'process',\n value: function process() {\n var scrollTop = this.getScrollTop() + this.$config.offset;\n var scrollHeight = this.getScrollHeight();\n var maxScroll = this.$config.offset + scrollHeight - this.getOffsetHeight();\n\n if (this.$scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this.$targets[this.$targets.length - 1];\n if (this.$activeTarget !== target) {\n this.activate(target);\n }\n return;\n }\n\n if (this.$activeTarget && scrollTop < this.$offsets[0] && this.$offsets[0] > 0) {\n this.$activeTarget = null;\n this.clear();\n return;\n }\n\n for (var i = this.$offsets.length; i--;) {\n var isActiveTarget = this.$activeTarget !== this.$targets[i] && scrollTop >= this.$offsets[i] && (typeof this.$offsets[i + 1] === 'undefined' || scrollTop < this.$offsets[i + 1]);\n\n if (isActiveTarget) {\n this.activate(this.$targets[i]);\n }\n }\n }\n }, {\n key: 'getScroller',\n value: function getScroller() {\n if (this.$scroller) {\n return this.$scroller;\n }\n var scroller = this.$config.element;\n if (!scroller) {\n return null;\n } else if (isElement(scroller.$el)) {\n scroller = scroller.$el;\n } else if (typeof scroller === 'string') {\n scroller = select(scroller);\n }\n if (!scroller) {\n return null;\n }\n this.$scroller = scroller.tagName === 'BODY' ? window : scroller;\n return this.$scroller;\n }\n }, {\n key: 'getScrollTop',\n value: function getScrollTop() {\n var scroller = this.getScroller();\n return scroller === window ? scroller.pageYOffset : scroller.scrollTop;\n }\n }, {\n key: 'getScrollHeight',\n value: function getScrollHeight() {\n return this.getScroller().scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }\n }, {\n key: 'getOffsetHeight',\n value: function getOffsetHeight() {\n var scroller = this.getScroller();\n return scroller === window ? window.innerHeight : getBCR(scroller).height;\n }\n }, {\n key: 'activate',\n value: function activate(target) {\n var _this5 = this;\n\n this.$activeTarget = target;\n this.clear();\n\n // Grab the list of target links (<a href=\"{$target}\">)\n var links = selectAll(this.$selector.split(',').map(function (selector) {\n return selector + '[href=\"' + target + '\"]';\n }).join(','), this.$el);\n\n links.forEach(function (link) {\n if (hasClass(link, ClassName.DROPDOWN_ITEM)) {\n // This is a dropdown item, so find the .dropdown-toggle and set it's state\n var dropdown = closest(Selector.DROPDOWN, link);\n if (dropdown) {\n _this5.setActiveState(select(Selector.DROPDOWN_TOGGLE, dropdown), true);\n }\n // Also set this link's state\n _this5.setActiveState(link, true);\n } else {\n // Set triggered link as active\n _this5.setActiveState(link, true);\n if (matches(link.parentElement, Selector.NAV_ITEMS)) {\n // Handle nav-link inside nav-item, and set nav-item active\n _this5.setActiveState(link.parentElement, true);\n }\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n var el = link;\n while (el) {\n el = closest(Selector.NAV_LIST_GROUP, el);\n var sibling = el ? el.previousElementSibling : null;\n if (matches(sibling, Selector.NAV_LINKS + ', ' + Selector.LIST_ITEMS)) {\n _this5.setActiveState(sibling, true);\n }\n // Handle special case where nav-link is inside a nav-item\n if (matches(sibling, Selector.NAV_ITEMS)) {\n _this5.setActiveState(select(Selector.NAV_LINKS, sibling), true);\n // Add active state to nav-item as well\n _this5.setActiveState(sibling, true);\n }\n }\n }\n });\n\n // Signal event to via $root, passing ID of activaed target and reference to array of links\n if (links && links.length > 0 && this.$root) {\n this.$root.$emit(ACTIVATE_EVENT, target, links);\n }\n }\n }, {\n key: 'clear',\n value: function clear() {\n var _this6 = this;\n\n selectAll(this.$selector + ', ' + Selector.NAV_ITEMS, this.$el).filter(function (el) {\n return hasClass(el, ClassName.ACTIVE);\n }).forEach(function (el) {\n return _this6.setActiveState(el, false);\n });\n }\n }, {\n key: 'setActiveState',\n value: function setActiveState(el, active) {\n if (!el) {\n return;\n }\n if (active) {\n addClass(el, ClassName.ACTIVE);\n } else {\n removeClass(el, ClassName.ACTIVE);\n }\n }\n }], [{\n key: 'Name',\n get: function get() {\n return NAME;\n }\n }, {\n key: 'Default',\n get: function get() {\n return Default;\n }\n }, {\n key: 'DefaultType',\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return ScrollSpy;\n}();\n\nexport default ScrollSpy;","import bTooltip from './tooltip';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bTooltip: bTooltip\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport Popper from 'popper.js';\nimport ToolTip from '../../utils/tooltip.class';\nimport { assign, keys } from '../../utils/object';\nimport warn from '../../utils/warn';\n\nvar inBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n// Key which we use to store tooltip object on element\nvar BVTT = '__BV_ToolTip__';\n\n// Valid event triggers\nvar validTriggers = {\n 'focus': true,\n 'hover': true,\n 'click': true,\n 'blur': true\n\n // Build a ToolTip config based on bindings (if any)\n // Arguments and modifiers take precedence over passed value config object\n /* istanbul ignore next: not easy to test */\n};function parseBindings(bindings) {\n // We start out with a blank config\n var config = {};\n\n // Process bindings.value\n if (typeof bindings.value === 'string') {\n // Value is tooltip content (html optionally supported)\n config.title = bindings.value;\n } else if (typeof bindings.value === 'function') {\n // Title generator function\n config.title = bindings.value;\n } else if (_typeof(bindings.value) === 'object') {\n // Value is config object, so merge\n config = assign(bindings.value);\n }\n\n // If Argument, assume element ID of container element\n if (bindings.arg) {\n // Element ID specified as arg. We must prepend '#' to become a CSS selector\n config.container = '#' + bindings.arg;\n }\n\n // Process modifiers\n keys(bindings.modifiers).forEach(function (mod) {\n if (/^html$/.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (/^nofade$/.test(mod)) {\n // no animation\n config.animation = false;\n } else if (/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)) {\n // placement of tooltip\n config.placement = mod;\n } else if (/^(window|viewport)$/.test(mod)) {\n // bounday of tooltip\n config.boundary = mod;\n } else if (/^d\\d+$/.test(mod)) {\n // delay value\n var delay = parseInt(mod.slice(1), 10) || 0;\n if (delay) {\n config.delay = delay;\n }\n } else if (/^o-?\\d+$/.test(mod)) {\n // offset value. Negative allowed\n var offset = parseInt(mod.slice(1), 10) || 0;\n if (offset) {\n config.offset = offset;\n }\n }\n });\n\n // Special handling of event trigger modifiers Trigger is a space separated list\n var selectedTriggers = {};\n\n // parse current config object trigger\n var triggers = typeof config.trigger === 'string' ? config.trigger.trim().split(/\\s+/) : [];\n triggers.forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n });\n\n // Parse Modifiers for triggers\n keys(validTriggers).forEach(function (trigger) {\n if (bindings.modifiers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n });\n\n // Sanitize triggers\n config.trigger = keys(selectedTriggers).join(' ');\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n if (!config.trigger) {\n // remove trigger config\n delete config.trigger;\n }\n\n return config;\n}\n\n//\n// Add or Update tooltip on our element\n//\n/* istanbul ignore next: not easy to test */\nfunction applyBVTT(el, bindings, vnode) {\n if (!inBrowser) {\n return;\n }\n if (!Popper) {\n // Popper is required for tooltips to work\n warn('v-b-tooltip: Popper.js is required for tooltips to work');\n return;\n }\n if (el[BVTT]) {\n el[BVTT].updateConfig(parseBindings(bindings));\n } else {\n el[BVTT] = new ToolTip(el, parseBindings(bindings), vnode.context.$root);\n }\n}\n\n//\n// Remove tooltip on our element\n//\n/* istanbul ignore next: not easy to test */\nfunction removeBVTT(el) {\n if (!inBrowser) {\n return;\n }\n if (el[BVTT]) {\n el[BVTT].destroy();\n el[BVTT] = null;\n delete el[BVTT];\n }\n}\n\n/*\n * Export our directive\n */\n/* istanbul ignore next: not easy to test */\nexport default {\n bind: function bind(el, bindings, vnode) {\n applyBVTT(el, bindings, vnode);\n },\n inserted: function inserted(el, bindings, vnode) {\n applyBVTT(el, bindings, vnode);\n },\n update: function update(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyBVTT(el, bindings, vnode);\n }\n },\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyBVTT(el, bindings, vnode);\n }\n },\n unbind: function unbind(el) {\n removeBVTT(el);\n }\n};","import bPopover from './popover';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bPopover: bPopover\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport Popper from 'popper.js';\nimport PopOver from '../../utils/popover.class';\nimport { assign, keys } from '../../utils/object';\nimport warn from '../../utils/warn';\n\nvar inBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n// Key which we use to store tooltip object on element\nvar BVPO = '__BV_PopOver__';\n\n// Valid event triggers\nvar validTriggers = {\n 'focus': true,\n 'hover': true,\n 'click': true,\n 'blur': true\n\n // Build a PopOver config based on bindings (if any)\n // Arguments and modifiers take precedence over pased value config object\n /* istanbul ignore next: not easy to test */\n};function parseBindings(bindings) {\n // We start out with a blank config\n var config = {};\n\n // Process bindings.value\n if (typeof bindings.value === 'string') {\n // Value is popover content (html optionally supported)\n config.content = bindings.value;\n } else if (typeof bindings.value === 'function') {\n // Content generator function\n config.content = bindings.value;\n } else if (_typeof(bindings.value) === 'object') {\n // Value is config object, so merge\n config = assign(bindings.value);\n }\n\n // If Argument, assume element ID of container element\n if (bindings.arg) {\n // Element ID specified as arg. We must prepend '#' to become a CSS selector\n config.container = '#' + bindings.arg;\n }\n\n // Process modifiers\n keys(bindings.modifiers).forEach(function (mod) {\n if (/^html$/.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (/^nofade$/.test(mod)) {\n // no animation\n config.animation = false;\n } else if (/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)) {\n // placement of popover\n config.placement = mod;\n } else if (/^(window|viewport)$/.test(mod)) {\n // bounday of popover\n config.boundary = mod;\n } else if (/^d\\d+$/.test(mod)) {\n // delay value\n var delay = parseInt(mod.slice(1), 10) || 0;\n if (delay) {\n config.delay = delay;\n }\n } else if (/^o-?\\d+$/.test(mod)) {\n // offset value (negative allowed)\n var offset = parseInt(mod.slice(1), 10) || 0;\n if (offset) {\n config.offset = offset;\n }\n }\n });\n\n // Special handling of event trigger modifiers Trigger is a space separated list\n var selectedTriggers = {};\n\n // parse current config object trigger\n var triggers = typeof config.trigger === 'string' ? config.trigger.trim().split(/\\s+/) : [];\n triggers.forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n });\n\n // Parse Modifiers for triggers\n keys(validTriggers).forEach(function (trigger) {\n if (bindings.modifiers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n });\n\n // Sanitize triggers\n config.trigger = keys(selectedTriggers).join(' ');\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to focus\n config.trigger = 'focus';\n }\n if (!config.trigger) {\n // remove trigger config\n delete config.trigger;\n }\n\n return config;\n}\n\n//\n// Add or Update popover on our element\n//\n/* istanbul ignore next: not easy to test */\nfunction applyBVPO(el, bindings, vnode) {\n if (!inBrowser) {\n return;\n }\n if (!Popper) {\n // Popper is required for tooltips to work\n warn('v-b-popover: Popper.js is required for popovers to work');\n return;\n }\n if (el[BVPO]) {\n el[BVPO].updateConfig(parseBindings(bindings));\n } else {\n el[BVPO] = new PopOver(el, parseBindings(bindings), vnode.context.$root);\n }\n};\n\n//\n// Remove popover on our element\n//\n/* istanbul ignore next */\nfunction removeBVPO(el) {\n if (!inBrowser) {\n return;\n }\n if (el[BVPO]) {\n el[BVPO].destroy();\n el[BVPO] = null;\n delete el[BVPO];\n }\n}\n\n/*\n * Export our directive\n */\n/* istanbul ignore next: not easy to test */\nexport default {\n bind: function bind(el, bindings, vnode) {\n applyBVPO(el, bindings, vnode);\n },\n inserted: function inserted(el, bindings, vnode) {\n applyBVPO(el, bindings, vnode);\n },\n update: function update(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyBVPO(el, bindings, vnode);\n }\n },\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyBVPO(el, bindings, vnode);\n }\n },\n unbind: function unbind(el) {\n removeBVPO(el);\n }\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/index.js!./bootstrap.min.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1bb891f9\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../css-loader/index.js!./bootstrap.min.css\", function() {\n var newContent = require(\"!!../../../css-loader/index.js!./bootstrap.min.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/*!\\n * Bootstrap v4.1.1 (https://getbootstrap.com/)\\n * Copyright 2011-2018 The Bootstrap Authors\\n * Copyright 2011-2018 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\\\"-1\\\"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:\\\"\\\\2014 \\\\A0\\\"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\\\"\\\"}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:\\\"\\\";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\\\"\\\";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\\\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\\\") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\\\"1\\\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:\\\"Browse\\\"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:\\\"Browse\\\";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-appearance:none;appearance:none}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-appearance:none;appearance:none}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;appearance:none}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\\\"\\\";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\\\"/\\\"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\\\"\\\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\\\")}.carousel-control-next-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\\\")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:\\\"\\\"}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:\\\"\\\"}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:\\\"\\\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:\\\"\\\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:\\\" (\\\" attr(title) \\\")\\\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../css-loader/index.js!./bootstrap-vue.min.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"316608a2\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../css-loader/index.js!./bootstrap-vue.min.css\", function() {\n var newContent = require(\"!!../../css-loader/index.js!./bootstrap-vue.min.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".input-group>.input-group-append:last-child>.b-dropdown:not(:last-child):not(.dropdown-toggle)>.btn,.input-group>.input-group-append:not(:last-child)>.b-dropdown>.btn,.input-group>.input-group-prepend>.b-dropdown>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.b-dropdown>.btn,.input-group>.input-group-prepend:first-child>.b-dropdown:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.b-dropdown>.btn{border-top-left-radius:0;border-bottom-left-radius:0}input.form-control[type=range],input.form-control[type=color]{height:2.25rem}input.form-control.form-control-sm[type=range],input.form-control.form-control-sm[type=color]{height:1.9375rem}input.form-control.form-control-lg[type=range],input.form-control.form-control-lg[type=color]{height:3rem}input.form-control[type=color]{padding:.25rem}input.form-control.form-control-sm[type=color]{padding:.125rem}table.b-table.b-table-fixed{table-layout:fixed}table.b-table[aria-busy=false]{opacity:1}table.b-table[aria-busy=true]{opacity:.6}table.b-table>tfoot>tr>th,table.b-table>thead>tr>th{position:relative}table.b-table>tfoot>tr>th.sorting,table.b-table>thead>tr>th.sorting{padding-right:1.5em;cursor:pointer}table.b-table>tfoot>tr>th.sorting::after,table.b-table>tfoot>tr>th.sorting::before,table.b-table>thead>tr>th.sorting::after,table.b-table>thead>tr>th.sorting::before{position:absolute;bottom:0;display:block;opacity:.4;padding-bottom:inherit;font-size:inherit;line-height:180%}table.b-table>tfoot>tr>th.sorting::before,table.b-table>thead>tr>th.sorting::before{right:.75em;content:'\\\\2191'}table.b-table>tfoot>tr>th.sorting::after,table.b-table>thead>tr>th.sorting::after{right:.25em;content:'\\\\2193'}table.b-table>tfoot>tr>th.sorting_asc::after,table.b-table>tfoot>tr>th.sorting_desc::before,table.b-table>thead>tr>th.sorting_asc::after,table.b-table>thead>tr>th.sorting_desc::before{opacity:1}table.b-table.b-table-stacked{width:100%}table.b-table.b-table-stacked,table.b-table.b-table-stacked>caption,table.b-table.b-table-stacked>tbody,table.b-table.b-table-stacked>tbody>tr,table.b-table.b-table-stacked>tbody>tr>td,table.b-table.b-table-stacked>tbody>tr>th{display:block}table.b-table.b-table-stacked>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked>tbody>tr.b-table-top-row,table.b-table.b-table-stacked>tfoot,table.b-table.b-table-stacked>thead{display:none}table.b-table.b-table-stacked>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}@media all and (max-width:575.99px){table.b-table.b-table-stacked-sm{width:100%}table.b-table.b-table-stacked-sm,table.b-table.b-table-stacked-sm>caption,table.b-table.b-table-stacked-sm>tbody,table.b-table.b-table-stacked-sm>tbody>tr,table.b-table.b-table-stacked-sm>tbody>tr>td,table.b-table.b-table-stacked-sm>tbody>tr>th{display:block}table.b-table.b-table-stacked-sm>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked-sm>tbody>tr.b-table-top-row,table.b-table.b-table-stacked-sm>tfoot,table.b-table.b-table-stacked-sm>thead{display:none}table.b-table.b-table-stacked-sm>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked-sm>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked-sm>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}}@media all and (max-width:767.99px){table.b-table.b-table-stacked-md{width:100%}table.b-table.b-table-stacked-md,table.b-table.b-table-stacked-md>caption,table.b-table.b-table-stacked-md>tbody,table.b-table.b-table-stacked-md>tbody>tr,table.b-table.b-table-stacked-md>tbody>tr>td,table.b-table.b-table-stacked-md>tbody>tr>th{display:block}table.b-table.b-table-stacked-md>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked-md>tbody>tr.b-table-top-row,table.b-table.b-table-stacked-md>tfoot,table.b-table.b-table-stacked-md>thead{display:none}table.b-table.b-table-stacked-md>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked-md>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked-md>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}}@media all and (max-width:991.99px){table.b-table.b-table-stacked-lg{width:100%}table.b-table.b-table-stacked-lg,table.b-table.b-table-stacked-lg>caption,table.b-table.b-table-stacked-lg>tbody,table.b-table.b-table-stacked-lg>tbody>tr,table.b-table.b-table-stacked-lg>tbody>tr>td,table.b-table.b-table-stacked-lg>tbody>tr>th{display:block}table.b-table.b-table-stacked-lg>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked-lg>tbody>tr.b-table-top-row,table.b-table.b-table-stacked-lg>tfoot,table.b-table.b-table-stacked-lg>thead{display:none}table.b-table.b-table-stacked-lg>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked-lg>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked-lg>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}}@media all and (max-width:1199.99px){table.b-table.b-table-stacked-xl{width:100%}table.b-table.b-table-stacked-xl,table.b-table.b-table-stacked-xl>caption,table.b-table.b-table-stacked-xl>tbody,table.b-table.b-table-stacked-xl>tbody>tr,table.b-table.b-table-stacked-xl>tbody>tr>td,table.b-table.b-table-stacked-xl>tbody>tr>th{display:block}table.b-table.b-table-stacked-xl>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked-xl>tbody>tr.b-table-top-row,table.b-table.b-table-stacked-xl>tfoot,table.b-table.b-table-stacked-xl>thead{display:none}table.b-table.b-table-stacked-xl>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked-xl>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked-xl>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}}table.b-table>tbody>tr.b-table-details>td{border-top:none}\", \"\"]);\n\n// exports\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/code/index.ts","webpack:///./node_modules/vue/dist/vue.runtime.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/process/browser.js","webpack:///./src/code/component/main.vue","webpack:///./src/code/component/main.vue?c837","webpack:///./src/code/component/main.vue?b8af","webpack:///./src/code/component/main.vue?4b91","webpack:///./node_modules/vue-property-decorator/lib/vue-property-decorator.umd.js","webpack:///./node_modules/vue-class-component/dist/vue-class-component.common.js","webpack:///./node_modules/reflect-metadata/Reflect.js","webpack:///./src/code/component/menu.vue","webpack:///./src/code/component/menu.vue?c9f8","webpack:///./src/code/component/menu.vue?f46b","webpack:///./src/code/component/menu.vue?4ec7","webpack:///./src/code/common_var.ts","webpack:///./src/code/component/menu.vue?c391","webpack:///./src/code/component/menu.vue?3d4c","webpack:///./src/code/component/menu.vue?7315","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./src/code/component/db_info.vue","webpack:///./src/code/component/db_info.vue?396e","webpack:///./src/code/component/db_info.vue?24c6","webpack:///./src/code/component/db_info.vue?9c10","webpack:///./src/code/service/main_service.ts","webpack:///./src/code/service/base_service.ts","webpack:///./src/code/service/service_helper.ts","webpack:///./node_modules/jsstore/dist/jsstore.commonjs2.js","webpack:///./node_modules/jsstore/dist/jsstore.worker.js","webpack:///./node_modules/vue-context-menu/vue-context-menu.js","webpack:///./src/code/component/db_info.vue?4918","webpack:///./src/code/component/db_info.vue?a011","webpack:///./src/code/component/db_info.vue?4b17","webpack:///./src/code/component/query_executor.vue","webpack:///./src/code/component/query_executor.vue?0f9f","webpack:///./src/code/component/query_executor.vue?4a4a","webpack:///./src/code/component/query_executor.vue?e9d7","webpack:///./src/code/component/editor.vue","webpack:///./src/code/component/editor.vue?e63e","webpack:///./src/code/component/editor.vue?0fc2","webpack:///./src/code/component/editor.vue?4ac5","webpack:///./src/code/helpers/dom_helper.ts","webpack:///./src/code/util.ts","webpack:///./src/code/component/editor.vue?0d9c","webpack:///./src/code/component/editor.vue?1994","webpack:///./src/code/component/editor.vue?83d5","webpack:///./src/code/component/qry_result.vue","webpack:///./src/code/component/qry_result.vue?ffea","webpack:///./src/code/component/qry_result.vue?41c7","webpack:///./src/code/component/qry_result.vue?78b9","webpack:///./src/code/component/qry_result.vue?f495","webpack:///./src/code/component/qry_result.vue?4dbc","webpack:///./src/code/component/qry_result.vue?5c4e","webpack:///./src/code/helpers/query_helper.ts","webpack:///./src/code/enum.ts","webpack:///./src/code/component/query_link.vue","webpack:///./src/code/component/query_link.vue?2e9d","webpack:///./src/code/component/query_link.vue?ff42","webpack:///./src/code/component/query_link.vue?277e","webpack:///./src/code/component/query_executor.vue?3f4c","webpack:///./src/code/component/query_executor.vue?7e2d","webpack:///./src/code/component/query_executor.vue?4614","webpack:///./src/code/component/start.vue","webpack:///./src/code/component/start.vue?4a41","webpack:///./src/code/component/start.vue?6e4b","webpack:///./src/code/component/start.vue?f100","webpack:///./src/code/service/demo_service.ts","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/is-buffer/index.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/btoa.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./src/code/component/start.vue?66e0","webpack:///./src/code/component/start.vue?b642","webpack:///./src/code/component/start.vue?ffbd","webpack:///./src/code/css/common.css?ac05","webpack:///./src/code/css/common.css","webpack:///./node_modules/css-loader/lib/url/escape.js","webpack:///./src/code/fonts/Allerta-Regular.ttf","webpack:///./src/code/fonts/ABeeZee-Regular.ttf","webpack:///./node_modules/bootstrap-vue/es/index.js","webpack:///./node_modules/bootstrap-vue/es/components/index.js","webpack:///./node_modules/bootstrap-vue/es/components/alert/index.js","webpack:///./node_modules/bootstrap-vue/es/components/alert/alert.js","webpack:///./node_modules/bootstrap-vue/es/components/button/button-close.js","webpack:///./node_modules/vue-functional-data-merge/dist/lib.esm.js","webpack:///./node_modules/bootstrap-vue/es/utils/plugins.js","webpack:///./node_modules/bootstrap-vue/es/components/badge/index.js","webpack:///./node_modules/bootstrap-vue/es/components/badge/badge.js","webpack:///./node_modules/bootstrap-vue/es/utils/pluck-props.js","webpack:///./node_modules/bootstrap-vue/es/utils/object.js","webpack:///./node_modules/bootstrap-vue/es/utils/array.js","webpack:///./node_modules/bootstrap-vue/es/utils/identity.js","webpack:///./node_modules/bootstrap-vue/es/components/link/link.js","webpack:///./node_modules/bootstrap-vue/es/components/breadcrumb/index.js","webpack:///./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb.js","webpack:///./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-item.js","webpack:///./node_modules/bootstrap-vue/es/components/breadcrumb/breadcrumb-link.js","webpack:///./node_modules/bootstrap-vue/es/components/button/index.js","webpack:///./node_modules/bootstrap-vue/es/components/button/button.js","webpack:///./node_modules/bootstrap-vue/es/utils/dom.js","webpack:///./node_modules/bootstrap-vue/es/components/button-group/index.js","webpack:///./node_modules/bootstrap-vue/es/components/button-group/button-group.js","webpack:///./node_modules/bootstrap-vue/es/components/button-toolbar/index.js","webpack:///./node_modules/bootstrap-vue/es/components/button-toolbar/button-toolbar.js","webpack:///./node_modules/bootstrap-vue/es/utils/key-codes.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/index.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group-prepend.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group-addon.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group-text.js","webpack:///./node_modules/bootstrap-vue/es/components/input-group/input-group-append.js","webpack:///./node_modules/bootstrap-vue/es/components/card/index.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card.js","webpack:///./node_modules/bootstrap-vue/es/utils/prefix-prop-name.js","webpack:///./node_modules/bootstrap-vue/es/utils/upper-first.js","webpack:///./node_modules/bootstrap-vue/es/utils/unprefix-prop-name.js","webpack:///./node_modules/bootstrap-vue/es/utils/lower-first.js","webpack:///./node_modules/bootstrap-vue/es/utils/copyProps.js","webpack:///./node_modules/bootstrap-vue/es/mixins/card-mixin.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-body.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-header.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-footer.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-img.js","webpack:///./node_modules/bootstrap-vue/es/components/card/card-group.js","webpack:///./node_modules/bootstrap-vue/es/components/carousel/index.js","webpack:///./node_modules/bootstrap-vue/es/components/carousel/carousel.js","webpack:///./node_modules/bootstrap-vue/es/utils/observe-dom.js","webpack:///./node_modules/bootstrap-vue/es/mixins/id.js","webpack:///./node_modules/bootstrap-vue/es/components/carousel/carousel-slide.js","webpack:///./node_modules/bootstrap-vue/es/components/image/img.js","webpack:///./node_modules/bootstrap-vue/es/utils/warn.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/index.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/container.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/row.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/col.js","webpack:///./node_modules/bootstrap-vue/es/utils/memoize.js","webpack:///./node_modules/bootstrap-vue/es/utils/suffix-prop-name.js","webpack:///./node_modules/bootstrap-vue/es/components/layout/form-row.js","webpack:///./node_modules/bootstrap-vue/es/components/collapse/index.js","webpack:///./node_modules/bootstrap-vue/es/components/collapse/collapse.js","webpack:///./node_modules/bootstrap-vue/es/mixins/listen-on-root.js","webpack:///./node_modules/bootstrap-vue/es/directives/toggle/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/toggle/toggle.js","webpack:///./node_modules/bootstrap-vue/es/utils/target.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/index.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown.js","webpack:///./node_modules/bootstrap-vue/es/mixins/dropdown.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/bootstrap-vue/es/mixins/clickout.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css?54e5","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown.css","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown-item-button.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown-header.js","webpack:///./node_modules/bootstrap-vue/es/components/dropdown/dropdown-divider.js","webpack:///./node_modules/bootstrap-vue/es/components/embed/index.js","webpack:///./node_modules/bootstrap-vue/es/components/embed/embed.js","webpack:///./node_modules/bootstrap-vue/es/components/form/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form-row.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form-text.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form-invalid-feedback.js","webpack:///./node_modules/bootstrap-vue/es/components/form/form-valid-feedback.js","webpack:///./node_modules/bootstrap-vue/es/components/form-group/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-group/form-group.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-state.js","webpack:///./node_modules/bootstrap-vue/es/components/form-checkbox/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-radio-check.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-size.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-custom.js","webpack:///./node_modules/bootstrap-vue/es/utils/loose-equal.js","webpack:///./node_modules/bootstrap-vue/es/components/form-checkbox/form-checkbox-group.js","webpack:///./node_modules/bootstrap-vue/es/mixins/form-options.js","webpack:///./node_modules/bootstrap-vue/es/components/form-radio/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-radio/form-radio.js","webpack:///./node_modules/bootstrap-vue/es/components/form-radio/form-radio-group.js","webpack:///./node_modules/bootstrap-vue/es/components/form-input/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-input/form-input.js","webpack:///./node_modules/bootstrap-vue/es/components/form-input/form-input.css?b5c7","webpack:///./node_modules/bootstrap-vue/es/components/form-input/form-input.css","webpack:///./node_modules/bootstrap-vue/es/components/form-textarea/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-textarea/form-textarea.js","webpack:///./node_modules/bootstrap-vue/es/components/form-file/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-file/form-file.js","webpack:///./node_modules/bootstrap-vue/es/components/form-select/index.js","webpack:///./node_modules/bootstrap-vue/es/components/form-select/form-select.js","webpack:///./node_modules/bootstrap-vue/es/components/image/index.js","webpack:///./node_modules/bootstrap-vue/es/components/image/img-lazy.js","webpack:///./node_modules/bootstrap-vue/es/components/jumbotron/index.js","webpack:///./node_modules/bootstrap-vue/es/components/jumbotron/jumbotron.js","webpack:///./node_modules/bootstrap-vue/es/components/link/index.js","webpack:///./node_modules/bootstrap-vue/es/components/list-group/index.js","webpack:///./node_modules/bootstrap-vue/es/components/list-group/list-group.js","webpack:///./node_modules/bootstrap-vue/es/components/list-group/list-group-item.js","webpack:///./node_modules/bootstrap-vue/es/components/media/index.js","webpack:///./node_modules/bootstrap-vue/es/components/media/media.js","webpack:///./node_modules/bootstrap-vue/es/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/es/components/media/media-aside.js","webpack:///./node_modules/bootstrap-vue/es/components/modal/index.js","webpack:///./node_modules/bootstrap-vue/es/components/modal/modal.js","webpack:///./node_modules/bootstrap-vue/es/utils/bv-event.class.js","webpack:///./node_modules/bootstrap-vue/es/directives/modal/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/modal/modal.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/index.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav-item.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav-text.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav-form.js","webpack:///./node_modules/bootstrap-vue/es/components/nav/nav-item-dropdown.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/index.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/navbar.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/navbar-nav.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/navbar-brand.js","webpack:///./node_modules/bootstrap-vue/es/components/navbar/navbar-toggle.js","webpack:///./node_modules/bootstrap-vue/es/components/pagination/index.js","webpack:///./node_modules/bootstrap-vue/es/components/pagination/pagination.js","webpack:///./node_modules/bootstrap-vue/es/mixins/pagination.js","webpack:///./node_modules/bootstrap-vue/es/utils/range.js","webpack:///./node_modules/bootstrap-vue/es/components/pagination-nav/index.js","webpack:///./node_modules/bootstrap-vue/es/components/pagination-nav/pagination-nav.js","webpack:///./node_modules/bootstrap-vue/es/components/popover/index.js","webpack:///./node_modules/bootstrap-vue/es/components/popover/popover.js","webpack:///./node_modules/bootstrap-vue/es/utils/popover.class.js","webpack:///./node_modules/bootstrap-vue/es/utils/tooltip.class.js","webpack:///./node_modules/bootstrap-vue/es/mixins/toolpop.js","webpack:///./node_modules/bootstrap-vue/es/utils/ssr.js","webpack:///./node_modules/bootstrap-vue/es/components/progress/index.js","webpack:///./node_modules/bootstrap-vue/es/components/progress/progress.js","webpack:///./node_modules/bootstrap-vue/es/components/progress/progress-bar.js","webpack:///./node_modules/bootstrap-vue/es/components/table/index.js","webpack:///./node_modules/bootstrap-vue/es/components/table/table.js","webpack:///./node_modules/lodash.startcase/index.js","webpack:///./node_modules/lodash.get/index.js","webpack:///./node_modules/bootstrap-vue/es/utils/stable-sort.js","webpack:///./node_modules/bootstrap-vue/es/components/table/table.css?b646","webpack:///./node_modules/bootstrap-vue/es/components/table/table.css","webpack:///./node_modules/bootstrap-vue/es/components/tabs/index.js","webpack:///./node_modules/bootstrap-vue/es/components/tabs/tabs.js","webpack:///./node_modules/bootstrap-vue/es/components/tabs/tab.js","webpack:///./node_modules/bootstrap-vue/es/components/tooltip/index.js","webpack:///./node_modules/bootstrap-vue/es/components/tooltip/tooltip.js","webpack:///./node_modules/bootstrap-vue/es/directives/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/scrollspy/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.js","webpack:///./node_modules/bootstrap-vue/es/directives/scrollspy/scrollspy.class.js","webpack:///./node_modules/bootstrap-vue/es/directives/tooltip/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/tooltip/tooltip.js","webpack:///./node_modules/bootstrap-vue/es/directives/popover/index.js","webpack:///./node_modules/bootstrap-vue/es/directives/popover/popover.js","webpack:///./node_modules/bootstrap/dist/css/bootstrap.min.css?bc99","webpack:///./node_modules/bootstrap/dist/css/bootstrap.min.css","webpack:///./node_modules/bootstrap-vue/dist/bootstrap-vue.min.css?d906","webpack:///./node_modules/bootstrap-vue/dist/bootstrap-vue.min.css"],"names":[],"mappings":";;;;;;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAK;AACL;AACA;;AAEA;AACA;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;;;;;;;;;ACnEsB;AACkB;AACC;AACK;AACI;AAElD,wBAAwB;AACxB,2CAAG,CAAC,GAAG,CAAC,qDAAY,CAAC,CAAC;AAEtB,mBAAmB;AACnB,IAAI,OAAO,GAAG,IAAI,2CAAG,CAAC;IAClB,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,WAAC,IAAI,QAAC,CAAC,2DAAI,CAAC,EAAP,CAAO;CACvB,CAAC,CAAC;;;;;;;;;ACbH;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,8BAA8B;AACjD;AACA;;AAEA;AACA;AACA;;AAEA;;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;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;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;;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;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;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,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;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,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,OAAO;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;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,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAEA;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;;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,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA,0BAA0B;AAC1B,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;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,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,qCAAqC,OAAO;AAC5C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;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,OAAO;AACP,KAAK,QAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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;;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;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,QAEP;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uCAAuC;;AAEnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;AAKA;AACA;;;AAGA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;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;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gEAAgE,+BAA+B;AAC/F,mCAAmC;AACnC;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,QAGH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO,QAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,QAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;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;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;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,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;;AAEA;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,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA,2DAA2D;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA,wBAAwB;AACxB;AACA,4BAA4B,4BAA4B;AACxD,4BAA4B,gCAAgC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yDAAyD,UAAU;AACnE,iBAAiB,wBAAwB,OAAO,uBAAuB;AACvE;AACA;AACA,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;;AAEA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO,kDAAkD;AACzD;AACA;AACA;AACA;AACA,OAAO,kDAAkD;AACzD;AACA;AACA;AACA;AACA,OAAO;AACP,mCAAmC,gEAAgE;AACnG;AACA;AACA;AACA,gCAAgC;AAChC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,SAAS;AAChC;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,uBAAuB,OAAO,gCAAgC;AAC/E,wDAAwD,oBAAoB;AAC5E;AACA;AACA;AACA,2BAA2B,gEAAgE;AAC3F,OAAO;AACP,mCAAmC,iCAAiC;AACpE;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2DAA2D,oBAAoB;AAC/E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;AAUA;;;;;;;;;AASA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sDAAsD;AACtE;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,6CAA6C,EAAE;AACtD;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,UAAU;AACV;AACA,uCAAuC,SAAS;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,4BAA4B,EAAE;AAC3E,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,+BAA+B,EAAE;AAC9E,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa;;AAE3D;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,iCAAiC,qCAAqC;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uCAAuC,EAAE;AACpF;AACA;AACA;AACA,6CAA6C,2CAA2C,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,8BAA8B,EAAE;AACrE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C,uCAAuC,EAAE;AACtF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;;AAEA;AACA;AACA,0EAA0E,0BAA0B,EAAE;AACtG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA,gEAAgE,sBAAsB,EAAE;AACxF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;;;;;;;;AC/1PA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9DA;AACA;;AAEA;AACA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0CAA0C,sBAAsB,EAAE;AAClE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,UAAU;AACV;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;;;;;;ACzLD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;;;;;ACvLJ;AAClC;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAWA;AACA;AACA,gF;;;;;;;;;;;;;;;;;;;;;;AChCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iCAAiC;AAClD;AACA;AACA;AACA,eAAe,6BAA6B,gBAAgB,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,iCAAiC,SAAS,6BAA6B,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uB;;;;;;;;;wCCpD4K,2OAAoB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACmB1K;AAC6B;AAErB;AACK;AACc;AACjB;AACS;AACd;AACI;AACE;AAGjC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAC/C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;AAU9C;IAAkC,wBAAG;IAGnC;QAAA,YACE,iBAAO,SAGR;QAND,kBAAY,GAAG,KAAK,CAAC;QAInB,KAAI,CAAC,UAAU,EAAE,CAAC;QAClB,KAAI,CAAC,aAAa,EAAE,CAAC;;IACvB,CAAC;IAED,4BAAa,GAAb;QACE,IAAI,GAAG,GAAG,0CAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,CAAC,0CAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrB,8CAAM,CAAC,YAAY,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;SACjD;IACH,CAAC;IAED,qCAAsB,GAAtB;QACE,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;IACzC,CAAC;IAEO,yBAAU,GAAlB;QAAA,iBASC;QARC,oDAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAU;YACjC,KAAK,CAAC,UAAU,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,oDAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,gBAAM;YAChC,KAAI,CAAC,UAAU,GAAG,MAAM,CAAC;YACzB,KAAI,CAAC,sBAAsB,EAAE,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IA7BkB,IAAI;QARxB,wEAAS,CAAC;YACT,UAAU,EAAE;gBACV,IAAI;gBACJ,MAAM;gBACN,aAAa;gBACb,KAAK;aACN;SACF,CAAC;OACmB,IAAI,CA8BxB;IAAD,WAAC;CAAA,CA9BiC,2CAAG,GA8BpC;+DA9BoB,IAAI;;;;;;;AC3CzB;AACA;AACA,UAC2C;AAC3C,CAAC,kDAAkD;;AAEnD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,sCAAsC;AACtC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA;AACA,gCAAgC,sDAAsD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,cAAc;;AAE5D,CAAC;;;;;;;;AClID;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,cAAc;;AAE5D,+BAA+B,iFAAiF;;AAEhH;;AAEA,gBAAgB,gBAAgB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,qCAAqC,EAAE;AAC5F;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C;AACA;AACA,uBAAuB,gBAAgB;AACvC;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,sCAAsC,gBAAgB,EAAE;AACxD,2CAA2C,wBAAwB,EAAE;AACrE;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD;AACrD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,0CAA0C,oBAAoB,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;;AAEA;AACA;AACA;;;;;;;ACtOA;AACA;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,mDAAmD;AAC3G;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,6BAA6B,gBAAgB,kBAAkB;AAC/D;AACA;AACA;AACA;AACA,+BAA+B,4CAA4C;AAC3E;AACA,mCAAmC,wBAAwB,kBAAkB,EAAE;AAC/E,mCAAmC,yBAAyB,EAAE,EAAE;AAChE;AACA,uCAAuC,8BAA8B;AACrE,uCAAuC,mBAAmB,EAAE;AAC5D;AACA,uCAAuC,qDAAqD;AAC5F,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,2CAA2C;AAC3C,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,QAAQ;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,uBAAuB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,0BAA0B;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE,aAAa;AAChF,qEAAqE,aAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B,EAAE;AAClE;AACA;AACA,iBAAiB;AACjB,oDAAoD,+CAA+C;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,UAAU;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0DAA0D;AAC5G,oDAAoD,4DAA4D;AAChH,qDAAqD,4DAA4D;AACjH,2DAA2D,uBAAuB;AAClF,6DAA6D,uBAAuB;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uBAAuB,EAAE;AAC/D;AACA;AACA,iBAAiB;AACjB,sDAAsD,6BAA6B;AACnF,sDAAsD,0CAA0C;AAChG,yDAAyD,gCAAgC;AACzF,mDAAmD,mBAAmB;AACtE,kDAAkD,yBAAyB;AAC3E,oDAAoD,2BAA2B;AAC/E,qDAAqD,4BAA4B;AACjF,2DAA2D,oBAAoB;AAC/E,6DAA6D,oBAAoB;AACjF;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,0BAA0B;AACtF;AACA;AACA;AACA;AACA,+BAA+B,UAAU;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC,0BAA0B;AAC3B,mC;;;;;;;;;;;;;AC3mCkC;AAClC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAWA;AACA;AACA,gF;;;;;;;;;;;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,SAAS,gBAAgB,EAAE;AAC/C,gBAAgB,uBAAuB;AACvC;AACA,cAAc,4BAA4B;AAC1C;AACA;AACA,gBAAgB,2BAA2B;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,6BAA6B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,uB;;;;;;;;;wCC1E4K,2OAAoB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACoB1K;AAC6B;AACV;AAGzC;IAAkC,wBAAG;IAqBnC;QAAA,YACE,iBAAO,SAER;QAvBD,YAAM,GAAW,EAAE,CAAC;QAsBlB,KAAI,CAAC,UAAU,EAAE,CAAC;;IACpB,CAAC;IAtBD,2BAAY,GAAZ;QACE,oDAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED,wBAAS,GAAT,UAAU,MAAc;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,yBAAU,GAAV;QAAA,iBAKC;QAJC,oDAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,UAAC,MAAc;YACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACpB,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yBAAU,GAAV;QACE,oDAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAnBkB,IAAI;QADxB,gEAAS;OACW,IAAI,CAyBxB;IAAD,WAAC;CAAA,CAzBiC,2CAAG,GAyBpC;+DAzBoB,IAAI;;;;;;;;;;;ACzBH;AACf,IAAM,QAAQ,GAAG,IAAI,2CAAG,EAAE,CAAC;;;;;;;;;;;;ACDkU,yYAAoB,C;;;;;;ACAxX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,sDAAuD,8BAA8B,gBAAgB,sBAAsB,iBAAiB,iBAAiB,GAAG,+BAA+B,mBAAmB,GAAG,mCAAmC,4BAA4B,GAAG,yCAAyC,mBAAmB,yBAAyB,kBAAkB,GAAG,oCAAoC,wBAAwB,sBAAsB,wBAAwB,2BAA2B,GAAG;;AAEzgB;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;;;AC3EA;AAAA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;AC7NA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;AC1BA;AAAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC5FkC;AAClC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAWA;AACA;AACA,gF;;;;;;;;;;;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA,wBAAwB,SAAS,gBAAgB,EAAE;AACnD;AACA;AACA;AACA;AACA,iCAAiC,qBAAqB,YAAY,EAAE;AACpE;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,oBAAoB;AAC9E;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,+BAA+B,6BAA6B;AAC5D;AACA;AACA;AACA;AACA;AACA,qBAAqB,8BAA8B,iBAAiB,EAAE;AACtE;AACA;AACA;AACA,yBAAyB,+CAA+C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E;AACA;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B,kBAAkB,EAAE;AAC/E;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+BAA+B;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC,eAAe;AACf,SAAS;AACT;AACA,oBAAoB,+BAA+B,uBAAuB,EAAE;AAC5E;AACA;AACA;AACA,oBAAoB,+BAA+B,wBAAwB,EAAE;AAC7E;AACA;AACA;AACA,oBAAoB,+BAA+B,wBAAwB,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,yDAAyD,cAAc;AACvE;AACA;AACA;AACA;AACA;AACA,mCAAmC,0BAA0B,EAAE;AAC/D,yCAAyC,eAAe;AACxD;AACA;AACA;AACA;AACA;AACA,8DAA8D,+DAA+D;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iGAAiG,2DAA2D,EAAE;;AAE9J;AACA,mGAAmG,0DAA0D,EAAE;;AAE/J,sGAAsG,6DAA6D,EAAE;;AAErK,kGAAkG,yDAAyD,EAAE;;AAE7J,mGAAmG,0DAA0D,EAAE;;AAE/J,4FAA4F,mDAAmD,EAAE;;AAEjJ;AACA,+FAA+F,uDAAuD,EAAE;;AAExJ;AACA,kGAAkG,0DAA0D,EAAE;;AAE9J;AACA,+FAA+F,4DAA4D,EAAE;;;;;;;;;AAS7J,OAAO;AACP;AACA;;AAEA;AACA;AACA,kGAAkG,iBAAiB,EAAE;AACrH;AACA;AACA;AACA;AACA;AACA,UAAU,gBAAgB,sCAAsC,iBAAiB,EAAE;AACnF,yBAAyB,uDAAuD;AAChF;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA,CAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA;;AAEA;AACA;AACA,oGAAoG,mBAAmB,EAAE;AACzH,uGAAuG,sBAAsB,EAAE;AAC/H,mGAAmG,kBAAkB,EAAE;AACvH,oGAAoG,mBAAmB,EAAE;AACzH,6FAA6F,YAAY,EAAE;AAC3G;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA,CAAC,sCAAsC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,gCAAgC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,kBAAkB;;;AAGnB,OAAO;AACP;AACA;;AAEA;AACA;AACA,wGAAwG,uBAAuB,EAAE;AACjI;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,oDAAoD,EAAE;AACxI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA;;AAEA;AACA;AACA,mGAAmG,kBAAkB,EAAE;AACvH;AACA;;;AAGA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA;;AAEA;AACA;AACA,gGAAgG,eAAe,EAAE;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA;;AAEA;AACA;AACA,mGAAmG,kBAAkB,EAAE;AACvH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,+FAA+F,uDAAuD,EAAE;;;;;AAKxJ,OAAO;AACP;AACA;;AAEA;AACA;AACA,gGAAgG,eAAe,EAAE;AACjH;;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;AAID,OAAO;AACP;AACA,6C;;;;;;ACrwBA,sG;;;;;;ACAA,eAAe,mCAAiM,iBAAiB,mBAAmB,cAAc,4BAA4B,YAAY,qBAAqB,2DAA2D,SAAS,mCAAmC,SAAS,qBAAqB,qCAAqC,oCAAoC,EAAE,iBAAiB,iCAAiC,iBAAiB,YAAY,UAAU,sBAAsB,mBAAmB,iDAAiD,mBAAmB,kBAAkB,K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B,qBAAqB,wBAAwB,GAAG;;AAEngB;;;;;;;;;;;;;ACPkC;AAClC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,uBAWA;AACA;AACA,gF;;;;;;;;;;;;;;;;;;;;;;ACjCA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,SAAS,yBAAyB,EAAE;AACzC;AACA;AACA;AACA,SAAS,SAAS,2BAA2B,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,uBAAuB;AACvB,iBAAiB;AACjB;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,qBAAqB,OAAO,kBAAkB,EAAE;AAC1E;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,qBAAqB,OAAO,kBAAkB,EAAE;AAC1E;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,qDAAqD;AACzE,iBAAiB;AACjB,WAAW;AACX;AACA;AACA;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA;AACA;AACA,0BAA0B,qBAAqB;AAC/C,uBAAuB;AACvB,iBAAiB;AACjB;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS,qBAAqB,OAAO,qBAAqB,EAAE;AAC7E;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,0CAA0C,EAAE;AAC9D;AACA;AACA;AACA,aAAa,SAAS,WAAW,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,iBAAiB;AACjB,+BAA+B,SAAS,sBAAsB,EAAE;AAChE;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,eAAe,EAAE;AAClD;AACA,uBAAuB,SA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AO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,SAAS,GAAG,SAAS;AAC5C,2BAA2B;AAC3B;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA,uCAAuC,OAAO;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;AC9SA;;AAEA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA;;;;;;;ACVA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;;;;;;;ACpBA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,kCAAkC,cAAc;AAChD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;AAED;;;;;;;;+CC9EA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO,YAAY;AACnB;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA,CAAC;;AAED;;;;;;;;;AC/FA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,4CAA4C;AAC5C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;;;;;;;ACnLA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACzBA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;;;;;;;ACjBA;;AAEA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACpBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;;;;;;;ACjEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,eAAe;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;ACpDA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;ACnEA;;AAEA;;AAEA;;AAEA;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;;AAEA;;;;;;;;ACnCA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,wCAAwC;AACxC,OAAO;;AAEP;AACA,0DAA0D,wBAAwB;AAClF;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B,aAAa,EAAE;AAC5C;AACA;AACA,GAAG;AACH;;;;;;;;ACpDA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;AACA,YAAY,OAAO;AACnB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;ACnDA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;;;;;;;ACrFA;;AAEA;;AAEA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,MAAM;AACjB,WAAW,eAAe;AAC1B,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;;;;;;;ACnBA;;AAEA;AACA;AACA;;;;;;;;ACJA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;;;;;;;ACbA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;;;;;;;AClBA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACxDA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,WAAW,SAAS;AACpB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AC1B6U,kXAAoB,C;;;;;;ACAjW;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,wCAAyC,8BAA8B,gBAAgB,iBAAiB,uBAAuB,kBAAkB,qBAAqB,GAAG,sBAAsB,2BAA2B,mBAAmB,yBAAyB,wBAAwB,GAAG,kCAAkC,yBAAyB,eAAe,gBAAgB,iBAAiB,kBAAkB,kBAAkB,GAAG,2DAA2D,yBAAyB,mBAAmB,eAAe,gBAAgB,+BAA+B,yBAAyB,4BAA4B,6BAA6B,iCAAiC,8BAA8B,GAAG,+DAA+D,yBAAyB,kBAAkB,mBAAmB,0BAA0B,kBAAkB,yBAAyB,wBAAwB,2BAA2B,sBAAsB,mBAAmB,GAAG,4EAA4E,0BAA0B,yBAAyB,oEAAoE,uEAAuE,wEAAwE,4EAA4E,yEAAyE,GAAG,4EAA4E,0BAA0B,yBAAyB,wEAAwE,2EAA2E,4EAA4E,gFAAgF,6EAA6E,GAAG,4EAA4E,0BAA0B,yBAAyB,wEAAwE,2EAA2E,4EAA4E,gFAAgF,6EAA6E,GAAG,4EAA4E,0BAA0B,yBAAyB,yEAAyE,4EAA4E,6EAA6E,iFAAiF,8EAA8E,GAAG,4EAA4E,0BAA0B,yBAAyB,sEAAsE,yEAAyE,0EAA0E,8EAA8E,2EAA2E,GAAG,4EAA4E,0BAA0B,yBAAyB,yEAAyE,4EAA4E,6EAA6E,iFAAiF,8EAA8E,GAAG,4EAA4E,0BAA0B,yBAAyB,wEAAwE,2EAA2E,4EAA4E,gFAAgF,6EAA6E,GAAG,+BAA+B,QAAQ,wDAAwD,yCAAyC,GAAG,MAAM,6DAA6D,sCAAsC,0BAA0B,GAAG,GAAG,kCAAkC,QAAQ,2DAA2D,yCAAyC,GAAG,MAAM,gEAAgE,sCAAsC,0BAA0B,GAAG,GAAG,mCAAmC,oBAAoB,4DAA4D,yCAAyC,GAAG,kBAAkB,iEAAiE,sCAAsC,0BAA0B,GAAG,GAAG,uCAAuC,QAAQ,gEAAgE,yCAAyC,GAAG,MAAM,qEAAqE,sCAAsC,0BAA0B,GAAG,GAAG,oCAAoC,QAAQ,6DAA6D,yCAAyC,GAAG,MAAM,kEAAkE,sCAAsC,0BAA0B,GAAG,GAAG;;AAEn6L;;;;;;;ACPA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;AACA;;;AAGA;AACA,4CAA6C,0BAA0B,KAAK,oBAAoB,0BAA0B,KAAK,oBAAoB,6BAA6B,gFAA+F,KAAK,oBAAoB,6BAA6B,gFAA+F,KAAK,2BAA2B,0BAA0B,KAAK,eAAe,sBAAsB,KAAK;;AAE7gB;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACfA,qG;;;;;;ACAA,qG;;;;;;;;;;;ACAA;AACA;AACiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;ACnCA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;ACfA;;AAEA;AACA,eAAe,6EAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,SAAS,kCAAkC,OAAO,sBAAsB,EAAE;AAClH;AACA,qBAAqB,kCAAkC,4DAA4D,EAAE;AACrH,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,G;;;;;;;;ACjHA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,gCAAgC,oBAAoB;AACpD;AACA;AACA;AACA,G;;;;;;;;ACnDA;AAAA,wCAAwC,iCAAiC,IAAI,uFAAuF,UAAU,qBAAqB,gBAAgB,oBAAoB,IAAI,yCAAyC,WAAW,mBAAmB,0GAA0G,MAAM,4CAA4C,wEAAwE,MAAM,sCAAsC,EAAE,6CAA6C,EAAE,WAAW,4FAA4F,MAAM,qHAAqH,kBAAkB,uBAAuB,MAAM,yGAAyG,SAAgB;AAC7/B;;;;;;;;;;;;;ACDA;AAAA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;AC9DA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;ACfoB;;AAEpB;AACiB;AACgC;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,G;;;;;;;;;;;;AC/Ce;AACG;AAClB;;AAEA;AACA;AACA;AACA,aAAa,UAAU;AACvB,cAAc;AACd,WAAW,SAAS;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,IAAI;AACP,C;;;;;;;;;;;;;;;;;;;;ACnBA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB,0BAA0B;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU;AACV,C;;;;;;;;;;;;ACpEA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,2DAA2D;AAC3D;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,sDAAsD;AACtD;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;ACtJA;AACA;AACA,C;;;;;;;;;;;;;;;ACFA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAEnP;AACS;AACZ;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;;AAEA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD,oBAAoB,6BAA6B,mGAAmG;;AAEpJ;AACA,+FAA+F,2BAA2B;AAC1H;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,kFAA4B,uBAAuB;AACnD,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,0HAAoE;;AAEpE;AACA;AACA,G;;;;;;;;;;;;ACpOA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;ACnBA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAEtP;AACF;AACD;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4EAAkC,uEAAiB,SAAS,iBAAiB,GAAG;AAChF,OAAO;AACP;;AAEA,sGAAoC,4BAA4B;AAChE;AACA,G;;;;;;;;;;;;AC9CoB;AACH;AAC6B;;AAE9C,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,uBAAuB;AACrC,cAAc;AACd,KAAK,iEAAuB,eAAe;AAC3C;AACA,G;;;;;;;;;;;;;AC7BoB;AACpB;AACiB;AACgC;;AAEjD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA,6BAA6B;AAC7B,KAAK;AACL,6BAA6B;AAC7B;;AAEA;AACA;AACA,G;;;;;;;;;;;AC/CA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;ACnBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACiB;AACM;AACS;AACiB;;AAEjD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC7G4B;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;;;;AC1NA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;AChBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACI;;AAExB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC3CA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;AChB+B;AAC/B;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;ACrHA;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;AChBqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;ACxBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,qJAA+D,YAAY,2BAA2B,EAAE;AACxG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oJAA8D,YAAY,0BAA0B,EAAE;AACtG;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;AC1EwC;;AAExC;AACA;AACA;AACA;AACA,G;;;;;;;;;;;ACNoB;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;ACvCoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;ACrBwC;;AAExC;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;;;;ACzBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACiB;AACjB;AACuC;AACI;AACA;AACN;;AAErC;AACA;;AAEA,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAAqC,uIAAwC;AAC7E;AACA;AACA;AACA,KAAK;AACL,6EAAmC,qIAAsC;AACzE;AACA;AACA,+EAAqC,uIAAwC;AAC7E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,G;;;;;;;;;;AC3EA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA,C;;;;;;;;ACRA;AAAA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;ACRA;;AAEA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA,C;;;;;;;;ACRA;AAAA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;ACRA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAExP;AACD;AACjB;;AAEA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6FAA6C;AAC7C,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;ACnBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACA;AACiB;AACjB;;AAEA,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,OAAO;AACP;AACA;AACA;AACA;AACA,mBAAmB;AACnB,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,0SAA0S;AACjT,KAAK;AACL;AACA,G;;;;;;;;;;;;;ACnEA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACiB;AACjB;;AAEA,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C,KAAK,0BAA0B,YAAY,0BAA0B,EAAE;AACvE;AACA,G;;;;;;;;;;;;;ACpCA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACiB;AACjB;;AAEA,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;AAC5C,KAAK,0BAA0B,YAAY,0BAA0B,EAAE;AACvE;AACA,G;;;;;;;;;;ACpCoB;;AAEpB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,cAAc,2BAA2B;AACzC,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC/CoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2GAAyC,2BAA2B;AACpE;AACA,G;;;;;;;;;;;ACnCA;AACA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;ACjBA;AACA;AAC+E;AAC/E;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gBAAgB,yEAAyE;AACzF;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,cAAc,gDAAgD,wBAAwB,EAAE,cAAc,qBAAqB;AAClI;AACA,gBAAgB,yEAAyE;AACzF;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,cAAc,gDAAgD,wBAAwB,EAAE,cAAc,qBAAqB;AAClI;;AAEA;AACA;AACA;AACA,oBAAoB,oFAAoF;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gBAAgB,4BAA4B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,cAAc,8BAA8B;AAC5C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;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,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;AClciB;AACG;;AAEpB;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,SAAS;AACpB,WAAW,OAAO,QAAQ,+BAA+B;AACzD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kCAAkC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,4EAA4B,iCAAiC;AAC7D,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,C;;;;;;;ACjEA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;AC/BA;AACA;AACA;;AAEA;AACA,eAAe,2DAAa;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,sCAAsC,6BAA6B,sCAAsC,YAAY,0BAA0B,EAAE,2CAA2C,YAAY,uBAAuB,EAAE;;AAEjO;AACA;AACA,cAAc,8BAA8B;AAC5C,cAAc;AACd,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;AC1GA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA,oCAAoC,EAAE,YAAY,EAAE,8DAA8D,EAAE,GAAG,EAAE,iFAAiF,GAAG;;AAE7M;AACA,yDAAyD,EAAE,6BAA6B,EAAE,8BAA8B,EAAE;AAC1H,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,G;;;;;;;ACnIA;AAAA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA,qE;;;;;;;;;;;;;ACTA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACrBoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;AC5BA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACI;;AAExB;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,G;;;;;;;;;;;;;;ACxDA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACA;AAC+B;AACP;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,2EAA4B;AAC5B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL,2GAAyC,mBAAmB;AAC5D;AACA,G;;;;;;;;;;AC3IiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA,C;;;;;;;;;;ACTA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA;AACA,C;;;;;;;;;;ACXoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;;ACrBA;AACA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACjBA;AAC2B;;AAE3B;AACA;AACA;AACA;AACA;;+DAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD,cAAc,sBAAsB;AACpC,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;AC5LA;AAAA,kCAAkC,0BAA0B,0CAA0C,gBAAgB,OAAO,kBAAkB,EAAE,aAAa,EAAE,OAAO,wBAAwB,EAAE;;AAE/K;AAClB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA,KAAK;;;AAGL;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,EAAE;AACrB;AACA;AACA;AACA;;AAEA,wFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,G;;;;;;;;;;ACnEA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AACyC;;AAEzC;AACA;;AAEA;AACA,mBAAmB;;AAEnB;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;AC/De;;AAEf,sBAAsB;;AAEtB;;AAEA;AACA,kGAA4C;AAC5C;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,QAAQ,iCAAiC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;;AAEQ;;AAER,4E;;;;;;;;;;;;;;ACjDA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;AC9BA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,kEAAmB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK,2BAA2B,qBAAqB;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,SAAS,oBAAoB,+BAA+B;AACjF,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,G;;;;;;;;;;;;;;;;AC5HA;AACA;AACA;AAC4B;AACX;AACjB;AACA;AACoE;;AAEpE;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6GAAuD;AACvD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;AC1YA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,kCAAkC;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,IAAI;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B;AACA,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;AAMD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA,oBAAoB;AACpB;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,YAAY,OAAO;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,QAAQ;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;;AAEA,oBAAoB;AACpB;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA,cAAc;AACd;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,mBAAmB;AACnB,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,QAAQ;AACtB,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,gBAAgB;;AAE5D;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE,gBAAgB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,WAAW,YAAY;AACvB,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,qBAAqB,yDAAyD;;AAE9E;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B,2BAA2B;AAC3B,gCAAgC;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gDAAgD;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,GAAG;AACH;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,UAAU;AACV,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,cAAc;AAC5B;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB,GAAG;;AAEH;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B;AAC9B,4BAA4B;AAC5B;;AAEA,qCAAqC;AACrC;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,WAAW;AACzB,cAAc,OAAO;AACrB,aAAa,WAAW;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,cAAc;AAC7B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,MAAM;AACpB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,mBAAmB;AAClC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,aAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,cAAc,mBAAmB;AACjC;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,WAAW;AAC1B;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,IAAI;AACJ;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,kBAAkB;AAC9B;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,kCAAkC;;AAElC;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA,WAAW,WAAW;AACtB;;AAEA;AACA;AACA,WAAW,WAAW;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4BAA4B;AACzC,aAAa,YAAY;AACzB,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,cAAc;AACd,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,2BAA2B;AAC3B,iDAAiD,uCAAuC,kDAAkD;AAC1I,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA,cAAc,OAAO;AACrB;AACA,cAAc,OAAO;AACrB;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;;;;;;;;;;ACv9EA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;ACrBA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,8XAA+X,iCAAiC,oCAAoC,GAAG,mOAAmO,gCAAgC,mCAAmC,GAAG;;AAEhvB;;;;;;;;;;;;ACPoB;AAC6B;;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;ACnBoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,6DAA6D;AAC3E;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;AC7BoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC1BoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;ACrBA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACI;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B;AAC/B,KAAK,oGAAkC,gDAAgD;AACvF;AACA,G;;;;;;;;;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACxBoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;ACxCA;;AAEA,yH;;;;;;;;;ACFA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;ACxCoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,6BAA6B;AAC3C,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC/BoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc,6BAA6B;AAC3C,cAAc;AACd,KAAK;AACL;AACA,G;;;;;;;;;;AC/BA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;AChBA;AACqE;AACrE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe,2TAA+H;AAC9I;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC,IAAI;AAC5C,yBAAyB;AACzB,8DAA8D,IAAI;AAClE;AACA;AACA;AACA;AACA,mCAAmC,mEAAmE;AACtG,6BAA6B,iCAAiC;AAC9D,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA,yBAAyB,iCAAiC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,mDAAmD,IAAI;AACvD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA,iDAAiD,IAAI;AACrD,sCAAsC,SAAS,yBAAyB,wBAAwB;AAChG;;AAEA;AACA;AACA;AACA;AACA,+BAA+B,IAAI;AACnC,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,uCAAuC;AAC5C,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;ACjSA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;ACrCA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACkB;AAClB;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,iBAAiB,8CAA8C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,cAAc;AACd,KAAK;;AAEL;AACA;AACA,mEAAmE,yDAAyD,GAAG,8DAA8D;AAC7L,OAAO;AACP,KAAK;AACL,yBAAyB,8BAA8B;AACvD;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,uBAAuB,oBAAoB;AAC3C;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,G;;;;;;;AC7JA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA,aAAa;AACb;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;AClHA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,G;;;;;;;;ACfA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;ACZA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAExP;AACH;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA,2E;;;;;;;;;;;;;;;AClDA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,eAAe,wEAA+B;AAC9C;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,cAAc,YAAY,yBAAyB,EAAE;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AC1GkB;AACH;;AAEf;AACA,kBAAkB;AAClB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,G;;;;;;;;;;;AC5EA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,cAAc;AACd,KAAK;;AAEL;AACA;AACA,mEAAmE,yDAAyD,GAAG,8DAA8D;AAC7L,OAAO;AACP,KAAK;AACL,yBAAyB,8BAA8B;AACvD;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;ACtFA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,kEAAyB;AACxC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,cAAc,YAAY,yBAAyB,EAAE;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AC1GA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AChJA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,6JAA8J,sBAAsB,GAAG,2GAA2G,wBAAwB,GAAG,2GAA2G,mBAAmB,GAAG,0EAA0E,+BAA+B,GAAG,sDAAsD,iCAAiC,GAAG;;AAEpoB;;;;;;;;;;;ACPA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;AChBA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,iBAAiB,oBAAoB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;ACjJA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AAC4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,cAAc,qCAAqC;AACnD,WAAW;AACX,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,2BAA2B,oBAAoB;AAC/C;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA,G;;;;;;;;;;ACtPA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;AAC4B;;AAE5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD,mBAAmB;AACnB,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,aAAa;AACb;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;ACvGA;AACA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACjBA;AAC+C;AAC/C;;AAEA;AACA,eAAe,qDAAa;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;ACvLA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iCAAiC;AACjC,OAAO;AACP;;AAEA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kFAAkC,SAAS,gCAAgC,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,G;;;;;;;;;;ACjGA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AACA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACjBoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,G;;;;;;;;;;;;;AC5BA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;AACpB;AACiB;AACO;AACyB;;AAEjD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,mDAAmD,iBAAiB,KAAK;AACzE,8BAA8B;AAC9B;;AAEA;AACA;AACA,G;;;;;;;;;;;;ACrDA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;ACnBoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iFAAuC,8BAA8B,qCAAqC,EAAE;AAC5G;;AAEA;;AAEA;AACA,iFAAuC,8BAA8B,qCAAqC,EAAE;AAC5G;AACA;;AAEA,2GAAyC,uBAAuB;AAChE;AACA,G;;;;;;;;;;ACjDoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;ACrBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+BAA+B;AAC/B,KAAK;AACL;AACA,G;;;;;;;;;;;AC5BA;AACA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;ACjBA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE/M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAE0I;;AAE1I;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe,wIAAmC;AAClD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,yCAAyC,yBAAyB;AAClE;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gCAAgC,4BAA4B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA;AACA,wBAAwB,SAAS,uCAAuC,EAAE;AAC1E;AACA;AACA,sBAAsB;AACtB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA,yCAAyC;AACzC,KAAK;AACL;AACA;;AAEA,uCAAuC;AACvC,KAAK;AACL;AACA;;AAEA,yCAAyC;AACzC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;;AAEA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;ACvuBA;AAAA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEhF;;AAEvE;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAiD,aAAa;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,wE;;;;;;;;;;AC/DA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfqC;AACP;;AAE9B,mBAAmB;;+DAEnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;AC5BoB;AACpB;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;;ACzDoB;AAC6B;;AAEjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK,2DAAa,wCAAwC;AAC1D;AACA,G;;;;;;;;;;ACjBoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,2GAAyC,6BAA6B;AACtE;AACA,G;;;;;;;;;;ACnBA;AACoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA,oJAAoC,SAAS,eAAe,UAAU,eAAe,EAAE;AACvF;AACA,G;;;;;;;;;;AClBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK,mEAAmE,YAAY,uBAAuB,EAAE;AAC7G;AACA;AACA;AACA,cAAc,gDAAgD;AAC9D;AACA;AACA;AACA;AACA,KAAK;AACL,oBAAoB,SAAS,oBAAoB,+BAA+B;AAChF,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;AC5BA;AAAA,2CAA2C,kBAAkB,kCAAkC,qEAAqE,EAAE,EAAE,OAAO,kBAAkB,EAAE,YAAY;;AAE3L;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB;AACzB,KAAK;AACL;AACA,G;;;;;;;;;;AClDoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;;;;;ACjC6B;AACT;AACpB;AACiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;AChCA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,WAAW;AACX,KAAK,qCAAqC,iCAAiC;AAC3E,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,G;;;;;;;;;;AC7CA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AACoB;;AAEpB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,cAAc;AACd;AACA;AACA,G;;;;;;;;;;;ACzDA;AAAA;AACA;AACA;;AAEA;AACA;AACoD;AACpD;;AAEA;AACA;AACA;AACA,YAAY;AACZ,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qBAAqB;AACrB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sBAAsB;AACtB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sBAAsB;AACtB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,qBAAqB;AACrB,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA,eAAe,uEAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,kBAAkB;AAClB,SAAS;AACT;AACA,qBAAqB;AACrB,SAAS;AACT,OAAO;AACP;AACA;AACA,kBAAkB;AAClB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,kBAAkB,wBAAwB;AAC1C,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA,mBAAmB;AACnB,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,mCAAmC;AACnC,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,SAAS;AACT;AACA,0BAA0B,uBAAuB;AACjD;AACA;AACA,SAAS;AACT;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA;AACA,0CAA0C,eAAe;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;ACxaA;AAAA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACA;AACA,4BAA4B,iBAAiB;AAC7C,CAAC,E;;;;;;;;;;ACND;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;ACfA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAEzP;AACjB;AACwB;;AAExB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+BAA+B,aAAa;AAC5C,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,G;;;;;;;;;;ACpFA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,kBAAkB;AAChC,cAAc;AACd,KAAK,aAAa,eAAe,gCAAgC,iBAAiB;AAClF,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AChDA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ,iDAAiD,aAAa,uFAAuF,EAAE,uFAAuF;;AAE9O,0CAA0C,+DAA+D,qGAAqG,EAAE,yEAAyE,eAAe,yEAAyE,EAAE,EAAE,uHAAuH;;AAE5e;AACiB;AACgC;;AAEjD;AACA;AACA;;AAEA,wEAAwB;AACxB;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,4GAA+D;AAC/D,gHAAmE;AACnE;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,wE;;;;;;;;;;;;ACnJA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACiB;AACW;AAC8G;;AAE1I;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;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;;AAEA;;;AAGA;AACA;;;AAGA;AACA;AACA;AACA,mFAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,4GAA+D;AAC/D;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA,iCAAiC,UAAU,GAAG,gBAAgB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D,iBAAiB,2CAA2C;AAC5D,kBAAkB,oBAAoB;AACtC,4BAA4B;AAC5B,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,wE;;;;;;;;;;;;ACplCA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACA;AACA;AACkB;AACD;AACY;AACP;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;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,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,+EAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;ACpUA;AAAA;;AAEA;;AAEA,sD;;;;;;;;;;;ACJA;AACA;AACqC;;AAErC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;ACjBA;;AAEA;AACA,eAAe,sEAA6B;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,qBAAqB,kDAAkD;AACvE,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,cAAc;AACd;AACA;AACA,G;;;;;;;;ACpEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,8BAA8B,YAAY,wBAAwB,EAAE;AACpE,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AC1GA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;;;;;;;;;;ACfA;AAAA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACA;AACA;AACA;AACA;AACuB;AACL;AAClB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,IAAI;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb,GAAG;AACH;AACA,aAAa;AACb,GAAG;AACH,2EAAqB;AACrB;AACA,GAAG;AACH;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,yBAAyB;AACzB;AACA;AACA;;AAEA;AACA,8DAA8D;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sDAAsD;AAC9E,SAAS;AACT,2BAA2B;AAC3B;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B,YAAY,2BAA2B;AAC3F;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B,YAAY,2BAA2B;AAC3F;;AAEA;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,gEAAgE,uBAAuB,yCAAyC;AACzJ,KAAK;AACL;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,WAAW;AACX;AACA;AACA,qCAAqC;AACrC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,uBAAuB;AACvB,uBAAuB;AACvB;AACA;AACA;AACA;AACA,+BAA+B,iBAAiB;AAChD;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,aAAa,SAAS,uCAAuC,EAAE;AACtE;AACA;AACA;AACA,iCAAiC,cAAc;AAC/C,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,yBAAyB,sEAAsE,0BAA0B,yCAAyC;AAClK,KAAK;AACL;AACA;;AAEA;AACA,4BAA4B,mDAAmD,mBAAmB,KAAK,EAAE;;AAEzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,yCAAyC,8BAA8B;AACvE,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,gCAAgC,qBAAqB;AACrD,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,YAAY,yBAAyB,GAAG,IAAI,QAAQ,GAAG;AACvD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,yBAAyB,4EAA8B;AACvD,WAAW;AACX;AACA,uFAAiC;AACjC,WAAW;AACX,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,4EAA8B;AACvD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,4EAAsB,2DAA2D;AACjF,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;AC14BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;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,+CAA+C,EAAE;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yCAAyC,GAAG;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,YAAY,OAAO;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;ACnkBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP,WAAW;AACX,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;;AAEL;AACA;AACA;AACA,KAAK;AACL,wBAAwB,gCAAgC,yBAAyB,GAAG;AACpF;;AAEA;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD,cAAc;AACd,KAAK;;AAEL;AACA;AACA,uBAAuB,+DAA+D;AACtF,cAAc;AACd,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;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,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,G;;;;;;;;;ACzXA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wCAAwC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;AClHA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,4BAA4B,kBAAkB,UAAU,sBAAsB,EAAE,aAAa,eAAe;AACjI,GAAG;AACH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;;;;;;;;;;;;;ACxCA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;ACfA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACA;;AAEA;AACe;;AAEf;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,G;;;;;;;;;;;ACxGA;AAAA,gCAAgC,2CAA2C,gBAAgB,kBAAkB,OAAO,2BAA2B,wDAAwD,gCAAgC,uDAAuD,2DAA2D,EAAE,EAAE,yDAAyD,qEAAqE,6DAA6D,oBAAoB,GAAG,EAAE;;AAEjjB,iDAAiD,0CAA0C,0DAA0D,EAAE;;AAEvJ;AACA;AACA;;AAEiB;AACjB;AACA;AAC2J;;AAE3J;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAI;;AAEX;AACA;;AAEA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,wCAAwC,KAAK;AAC7C;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA,kDAAkD,QAAQ;AAC1D;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,0E;;;;;;;;;;AC9dA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACuB;AACvB;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,G;;;;;;;;;;ACpKA;AACqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0E;;;;;;;;;;;ACfA;AAAA,oGAAoG,mBAAmB,EAAE,mBAAmB,8HAA8H;;AAE1Q;AACA;AACuB;AACvB;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,G;;;;;;ACpKA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA,Y;;;;;;ACVA;AACA;;;AAGA;AACA,2PAA4P,eAAe,iBAAiB,iBAAiB,eAAe,cAAc,iBAAiB,iBAAiB,gBAAgB,eAAe,eAAe,aAAa,eAAe,oBAAoB,kBAAkB,oBAAoB,kBAAkB,eAAe,kBAAkB,iBAAiB,gBAAgB,eAAe,kBAAkB,sBAAsB,sBAAsB,sBAAsB,uBAAuB,+KA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","file":"scripts/bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","import Vue from 'vue';\r\nimport Main from './component/main.vue';\r\nimport BootstrapVue from \"bootstrap-vue\";\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\nimport \"bootstrap-vue/dist/bootstrap-vue.min.css\";\r\n\r\n// Configure vue setting\r\nVue.use(BootstrapVue);\r\n\r\n// Initiate vue app\r\nvar vue_app = new Vue({\r\n el: '#app',\r\n render: h => h(Main)\r\n});\r\n","/*!\n * Vue.js v2.5.16\n * (c) 2014-2018 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// these helpers produces better vm code in JS engines due to their\n// explicitness and function inlining\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value e.g. [object Object]\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : typeof val === 'object'\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert a input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if a attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether the object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it... e.g.\n * PhantomJS 1.x. Technically we don't need this anymore since native bind is\n * now more performant in most browsers, but removing it would be breaking for\n * code that was able to run in PhantomJS 1.x, so this must be kept for\n * backwards compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/)\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/**\n * Return same value\n */\nvar identity = function (_) { return _; };\n\n/**\n * Generate a static keys string from compiler modules.\n */\n\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured'\n];\n\n/* */\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n})\n\n/* */\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = /[^\\w.$]/;\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = (function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return '<Root>'\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {};\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"<Anonymous>\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// the current target watcher being evaluated.\n// this is globally unique because there could be only one\n// watcher being evaluated at any time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (_target) {\n if (Dep.target) { targetStack.push(Dep.target); }\n Dep.target = _target;\n}\n\nfunction popTarget () {\n Dep.target = targetStack.pop();\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n vnode.children,\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n var augment = hasProto\n ? protoAugment\n : copyAugment;\n augment(value, arrayMethods, arrayKeys);\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through each property and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment an target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src, keys) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment an target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n if (!getter && arguments.length === 2) {\n val = obj[key];\n }\n var setter = property && property.set;\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n var keys = Object.keys(from);\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (isPlainObject(toVal) && isPlainObject(fromVal)) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!/^[a-zA-Z][\\w-]*$/.test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'can only contain alphanumeric characters and the hyphen, ' +\n 'and must start with a letter.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def = dirs[key];\n if (typeof def === 'function') {\n dirs[key] = { bind: def, update: def };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n var extendsFrom = child.extends;\n if (extendsFrom) {\n parent = mergeOptions(parent, extendsFrom, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false && isObject(value) && ('@binding' in value))\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n if (!valid) {\n warn(\n \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', ')) +\n \", got \" + (toRawType(value)) + \".\",\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n logError(e, null, 'config.errorHandler');\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n/* globals MessageChannel */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using both microtasks and (macro) tasks.\n// In < 2.4 we used microtasks everywhere, but there are some scenarios where\n// microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690) or even between bubbling of the same\n// event (#6566). However, using (macro) tasks everywhere also has subtle problems\n// when state is changed right before repaint (e.g. #6813, out-in transitions).\n// Here we use microtask by default, but expose a way to force (macro) task when\n// needed (e.g. in event handlers attached by v-on).\nvar microTimerFunc;\nvar macroTimerFunc;\nvar useMacroTask = false;\n\n// Determine (macro) task defer implementation.\n// Technically setImmediate should be the ideal choice, but it's only available\n// in IE. The only polyfill that consistently queues the callback after all DOM\n// events triggered in the same loop is by using MessageChannel.\n/* istanbul ignore if */\nif (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n macroTimerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else if (typeof MessageChannel !== 'undefined' && (\n isNative(MessageChannel) ||\n // PhantomJS\n MessageChannel.toString() === '[object MessageChannelConstructor]'\n)) {\n var channel = new MessageChannel();\n var port = channel.port2;\n channel.port1.onmessage = flushCallbacks;\n macroTimerFunc = function () {\n port.postMessage(1);\n };\n} else {\n /* istanbul ignore next */\n macroTimerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\n// Determine microtask defer implementation.\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n microTimerFunc = function () {\n p.then(flushCallbacks);\n // in problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else {\n // fallback to macro\n microTimerFunc = macroTimerFunc;\n}\n\n/**\n * Wrap a function so that if any code inside triggers state change,\n * the changes are queued using a (macro) task instead of a microtask.\n */\nfunction withMacroTask (fn) {\n return fn._withTask || (fn._withTask = function () {\n useMacroTask = true;\n var res = fn.apply(null, arguments);\n useMacroTask = false;\n return res\n })\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n if (useMacroTask) {\n macroTimerFunc();\n } else {\n microTimerFunc();\n }\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) || key.charAt(0) === '_';\n if (!has && !isAllowed) {\n warnNonPresent(target, key);\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n warnNonPresent(target, key);\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n perf.clearMeasures(name);\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n cloned[i].apply(null, arguments$1);\n }\n } else {\n // return handler return value for single handlers\n return fns.apply(null, arguments)\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n vm\n) {\n var name, def, cur, old, event;\n for (name in on) {\n def = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n /* istanbul ignore if */\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur);\n }\n add(event.name, cur, event.once, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array<VNode>. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\n// with hand-written render functions / JSX. In such cases a full normalization\n// is needed to cater to all possible types of children values.\nfunction normalizeChildren (children) {\n return isPrimitive(children)\n ? [createTextVNode(children)]\n : Array.isArray(children)\n ? normalizeArrayChildren(children)\n : undefined\n}\n\nfunction isTextNode (node) {\n return isDef(node) && isDef(node.text) && isFalse(node.isComment)\n}\n\nfunction normalizeArrayChildren (children, nestedIndex) {\n var res = [];\n var i, c, lastIndex, last;\n for (i = 0; i < children.length; i++) {\n c = children[i];\n if (isUndef(c) || typeof c === 'boolean') { continue }\n lastIndex = res.length - 1;\n last = res[lastIndex];\n // nested\n if (Array.isArray(c)) {\n if (c.length > 0) {\n c = normalizeArrayChildren(c, ((nestedIndex || '') + \"_\" + i));\n // merge adjacent text nodes\n if (isTextNode(c[0]) && isTextNode(last)) {\n res[lastIndex] = createTextVNode(last.text + (c[0]).text);\n c.shift();\n }\n res.push.apply(res, c);\n }\n } else if (isPrimitive(c)) {\n if (isTextNode(last)) {\n // merge adjacent text nodes\n // this is necessary for SSR hydration because text nodes are\n // essentially merged when rendered to HTML strings\n res[lastIndex] = createTextVNode(last.text + c);\n } else if (c !== '') {\n // convert primitive to vnode\n res.push(createTextVNode(c));\n }\n } else {\n if (isTextNode(c) && isTextNode(last)) {\n // merge adjacent text nodes\n res[lastIndex] = createTextVNode(last.text + c.text);\n } else {\n // default key for nested array children (likely generated by v-for)\n if (isTrue(children._isVList) &&\n isDef(c.tag) &&\n isUndef(c.key) &&\n isDef(nestedIndex)) {\n c.key = \"__vlist\" + nestedIndex + \"_\" + i + \"__\";\n }\n res.push(c);\n }\n }\n }\n return res\n}\n\n/* */\n\nfunction ensureCtor (comp, base) {\n if (\n comp.__esModule ||\n (hasSymbol && comp[Symbol.toStringTag] === 'Module')\n ) {\n comp = comp.default;\n }\n return isObject(comp)\n ? base.extend(comp)\n : comp\n}\n\nfunction createAsyncPlaceholder (\n factory,\n data,\n context,\n children,\n tag\n) {\n var node = createEmptyVNode();\n node.asyncFactory = factory;\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\n return node\n}\n\nfunction resolveAsyncComponent (\n factory,\n baseCtor,\n context\n) {\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\n return factory.errorComp\n }\n\n if (isDef(factory.resolved)) {\n return factory.resolved\n }\n\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\n return factory.loadingComp\n }\n\n if (isDef(factory.contexts)) {\n // already pending\n factory.contexts.push(context);\n } else {\n var contexts = factory.contexts = [context];\n var sync = true;\n\n var forceRender = function () {\n for (var i = 0, l = contexts.length; i < l; i++) {\n contexts[i].$forceUpdate();\n }\n };\n\n var resolve = once(function (res) {\n // cache resolved\n factory.resolved = ensureCtor(res, baseCtor);\n // invoke callbacks only if this is not a synchronous resolve\n // (async resolves are shimmed as synchronous during SSR)\n if (!sync) {\n forceRender();\n }\n });\n\n var reject = once(function (reason) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed to resolve async component: \" + (String(factory)) +\n (reason ? (\"\\nReason: \" + reason) : '')\n );\n if (isDef(factory.errorComp)) {\n factory.error = true;\n forceRender();\n }\n });\n\n var res = factory(resolve, reject);\n\n if (isObject(res)) {\n if (typeof res.then === 'function') {\n // () => Promise\n if (isUndef(factory.resolved)) {\n res.then(resolve, reject);\n }\n } else if (isDef(res.component) && typeof res.component.then === 'function') {\n res.component.then(resolve, reject);\n\n if (isDef(res.error)) {\n factory.errorComp = ensureCtor(res.error, baseCtor);\n }\n\n if (isDef(res.loading)) {\n factory.loadingComp = ensureCtor(res.loading, baseCtor);\n if (res.delay === 0) {\n factory.loading = true;\n } else {\n setTimeout(function () {\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\n factory.loading = true;\n forceRender();\n }\n }, res.delay || 200);\n }\n }\n\n if (isDef(res.timeout)) {\n setTimeout(function () {\n if (isUndef(factory.resolved)) {\n reject(\n process.env.NODE_ENV !== 'production'\n ? (\"timeout (\" + (res.timeout) + \"ms)\")\n : null\n );\n }\n }, res.timeout);\n }\n }\n }\n\n sync = false;\n // return in case resolved synchronously\n return factory.loading\n ? factory.loadingComp\n : factory.resolved\n }\n}\n\n/* */\n\nfunction isAsyncPlaceholder (node) {\n return node.isComment && node.asyncFactory\n}\n\n/* */\n\nfunction getFirstComponentChild (children) {\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var c = children[i];\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\n return c\n }\n }\n }\n}\n\n/* */\n\n/* */\n\nfunction initEvents (vm) {\n vm._events = Object.create(null);\n vm._hasHookEvent = false;\n // init parent attached events\n var listeners = vm.$options._parentListeners;\n if (listeners) {\n updateComponentListeners(vm, listeners);\n }\n}\n\nvar target;\n\nfunction add (event, fn, once) {\n if (once) {\n target.$once(event, fn);\n } else {\n target.$on(event, fn);\n }\n}\n\nfunction remove$1 (event, fn) {\n target.$off(event, fn);\n}\n\nfunction updateComponentListeners (\n vm,\n listeners,\n oldListeners\n) {\n target = vm;\n updateListeners(listeners, oldListeners || {}, add, remove$1, vm);\n target = undefined;\n}\n\nfunction eventsMixin (Vue) {\n var hookRE = /^hook:/;\n Vue.prototype.$on = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$on(event[i], fn);\n }\n } else {\n (vm._events[event] || (vm._events[event] = [])).push(fn);\n // optimize hook:event cost by using a boolean flag marked at registration\n // instead of a hash lookup\n if (hookRE.test(event)) {\n vm._hasHookEvent = true;\n }\n }\n return vm\n };\n\n Vue.prototype.$once = function (event, fn) {\n var vm = this;\n function on () {\n vm.$off(event, on);\n fn.apply(vm, arguments);\n }\n on.fn = fn;\n vm.$on(event, on);\n return vm\n };\n\n Vue.prototype.$off = function (event, fn) {\n var this$1 = this;\n\n var vm = this;\n // all\n if (!arguments.length) {\n vm._events = Object.create(null);\n return vm\n }\n // array of events\n if (Array.isArray(event)) {\n for (var i = 0, l = event.length; i < l; i++) {\n this$1.$off(event[i], fn);\n }\n return vm\n }\n // specific event\n var cbs = vm._events[event];\n if (!cbs) {\n return vm\n }\n if (!fn) {\n vm._events[event] = null;\n return vm\n }\n if (fn) {\n // specific handler\n var cb;\n var i$1 = cbs.length;\n while (i$1--) {\n cb = cbs[i$1];\n if (cb === fn || cb.fn === fn) {\n cbs.splice(i$1, 1);\n break\n }\n }\n }\n return vm\n };\n\n Vue.prototype.$emit = function (event) {\n var vm = this;\n if (process.env.NODE_ENV !== 'production') {\n var lowerCaseEvent = event.toLowerCase();\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\n tip(\n \"Event \\\"\" + lowerCaseEvent + \"\\\" is emitted in component \" +\n (formatComponentName(vm)) + \" but the handler is registered for \\\"\" + event + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\n \"You should probably use \\\"\" + (hyphenate(event)) + \"\\\" instead of \\\"\" + event + \"\\\".\"\n );\n }\n }\n var cbs = vm._events[event];\n if (cbs) {\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\n var args = toArray(arguments, 1);\n for (var i = 0, l = cbs.length; i < l; i++) {\n try {\n cbs[i].apply(vm, args);\n } catch (e) {\n handleError(e, vm, (\"event handler for \\\"\" + event + \"\\\"\"));\n }\n }\n }\n return vm\n };\n}\n\n/* */\n\n\n\n/**\n * Runtime helper for resolving raw children VNodes into a slot object.\n */\nfunction resolveSlots (\n children,\n context\n) {\n var slots = {};\n if (!children) {\n return slots\n }\n for (var i = 0, l = children.length; i < l; i++) {\n var child = children[i];\n var data = child.data;\n // remove slot attribute if the node is resolved as a Vue slot node\n if (data && data.attrs && data.attrs.slot) {\n delete data.attrs.slot;\n }\n // named slots should only be respected if the vnode was rendered in the\n // same context.\n if ((child.context === context || child.fnContext === context) &&\n data && data.slot != null\n ) {\n var name = data.slot;\n var slot = (slots[name] || (slots[name] = []));\n if (child.tag === 'template') {\n slot.push.apply(slot, child.children || []);\n } else {\n slot.push(child);\n }\n } else {\n (slots.default || (slots.default = [])).push(child);\n }\n }\n // ignore slots that contains only whitespace\n for (var name$1 in slots) {\n if (slots[name$1].every(isWhitespace)) {\n delete slots[name$1];\n }\n }\n return slots\n}\n\nfunction isWhitespace (node) {\n return (node.isComment && !node.asyncFactory) || node.text === ' '\n}\n\nfunction resolveScopedSlots (\n fns, // see flow/vnode\n res\n) {\n res = res || {};\n for (var i = 0; i < fns.length; i++) {\n if (Array.isArray(fns[i])) {\n resolveScopedSlots(fns[i], res);\n } else {\n res[fns[i].key] = fns[i].fn;\n }\n }\n return res\n}\n\n/* */\n\nvar activeInstance = null;\nvar isUpdatingChildComponent = false;\n\nfunction initLifecycle (vm) {\n var options = vm.$options;\n\n // locate first non-abstract parent\n var parent = options.parent;\n if (parent && !options.abstract) {\n while (parent.$options.abstract && parent.$parent) {\n parent = parent.$parent;\n }\n parent.$children.push(vm);\n }\n\n vm.$parent = parent;\n vm.$root = parent ? parent.$root : vm;\n\n vm.$children = [];\n vm.$refs = {};\n\n vm._watcher = null;\n vm._inactive = null;\n vm._directInactive = false;\n vm._isMounted = false;\n vm._isDestroyed = false;\n vm._isBeingDestroyed = false;\n}\n\nfunction lifecycleMixin (Vue) {\n Vue.prototype._update = function (vnode, hydrating) {\n var vm = this;\n if (vm._isMounted) {\n callHook(vm, 'beforeUpdate');\n }\n var prevEl = vm.$el;\n var prevVnode = vm._vnode;\n var prevActiveInstance = activeInstance;\n activeInstance = vm;\n vm._vnode = vnode;\n // Vue.prototype.__patch__ is injected in entry points\n // based on the rendering backend used.\n if (!prevVnode) {\n // initial render\n vm.$el = vm.__patch__(\n vm.$el, vnode, hydrating, false /* removeOnly */,\n vm.$options._parentElm,\n vm.$options._refElm\n );\n // no need for the ref nodes after initial patch\n // this prevents keeping a detached DOM tree in memory (#5851)\n vm.$options._parentElm = vm.$options._refElm = null;\n } else {\n // updates\n vm.$el = vm.__patch__(prevVnode, vnode);\n }\n activeInstance = prevActiveInstance;\n // update __vue__ reference\n if (prevEl) {\n prevEl.__vue__ = null;\n }\n if (vm.$el) {\n vm.$el.__vue__ = vm;\n }\n // if parent is an HOC, update its $el as well\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\n vm.$parent.$el = vm.$el;\n }\n // updated hook is called by the scheduler to ensure that children are\n // updated in a parent's updated hook.\n };\n\n Vue.prototype.$forceUpdate = function () {\n var vm = this;\n if (vm._watcher) {\n vm._watcher.update();\n }\n };\n\n Vue.prototype.$destroy = function () {\n var vm = this;\n if (vm._isBeingDestroyed) {\n return\n }\n callHook(vm, 'beforeDestroy');\n vm._isBeingDestroyed = true;\n // remove self from parent\n var parent = vm.$parent;\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\n remove(parent.$children, vm);\n }\n // teardown watchers\n if (vm._watcher) {\n vm._watcher.teardown();\n }\n var i = vm._watchers.length;\n while (i--) {\n vm._watchers[i].teardown();\n }\n // remove reference from data ob\n // frozen object may not have observer.\n if (vm._data.__ob__) {\n vm._data.__ob__.vmCount--;\n }\n // call the last hook...\n vm._isDestroyed = true;\n // invoke destroy hooks on current rendered tree\n vm.__patch__(vm._vnode, null);\n // fire destroyed hook\n callHook(vm, 'destroyed');\n // turn off all instance listeners.\n vm.$off();\n // remove __vue__ reference\n if (vm.$el) {\n vm.$el.__vue__ = null;\n }\n // release circular reference (#6759)\n if (vm.$vnode) {\n vm.$vnode.parent = null;\n }\n };\n}\n\nfunction mountComponent (\n vm,\n el,\n hydrating\n) {\n vm.$el = el;\n if (!vm.$options.render) {\n vm.$options.render = createEmptyVNode;\n if (process.env.NODE_ENV !== 'production') {\n /* istanbul ignore if */\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\n vm.$options.el || el) {\n warn(\n 'You are using the runtime-only build of Vue where the template ' +\n 'compiler is not available. Either pre-compile the templates into ' +\n 'render functions, or use the compiler-included build.',\n vm\n );\n } else {\n warn(\n 'Failed to mount component: template or render function not defined.',\n vm\n );\n }\n }\n }\n callHook(vm, 'beforeMount');\n\n var updateComponent;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n updateComponent = function () {\n var name = vm._name;\n var id = vm._uid;\n var startTag = \"vue-perf-start:\" + id;\n var endTag = \"vue-perf-end:\" + id;\n\n mark(startTag);\n var vnode = vm._render();\n mark(endTag);\n measure((\"vue \" + name + \" render\"), startTag, endTag);\n\n mark(startTag);\n vm._update(vnode, hydrating);\n mark(endTag);\n measure((\"vue \" + name + \" patch\"), startTag, endTag);\n };\n } else {\n updateComponent = function () {\n vm._update(vm._render(), hydrating);\n };\n }\n\n // we set this to vm._watcher inside the watcher's constructor\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\n // component's mounted hook), which relies on vm._watcher being already defined\n new Watcher(vm, updateComponent, noop, null, true /* isRenderWatcher */);\n hydrating = false;\n\n // manually mounted instance, call mounted on self\n // mounted is called for render-created child components in its inserted hook\n if (vm.$vnode == null) {\n vm._isMounted = true;\n callHook(vm, 'mounted');\n }\n return vm\n}\n\nfunction updateChildComponent (\n vm,\n propsData,\n listeners,\n parentVnode,\n renderChildren\n) {\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = true;\n }\n\n // determine whether component has slot children\n // we need to do this before overwriting $options._renderChildren\n var hasChildren = !!(\n renderChildren || // has new static slots\n vm.$options._renderChildren || // has old static slots\n parentVnode.data.scopedSlots || // has new scoped slots\n vm.$scopedSlots !== emptyObject // has old scoped slots\n );\n\n vm.$options._parentVnode = parentVnode;\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\n\n if (vm._vnode) { // update child tree's parent\n vm._vnode.parent = parentVnode;\n }\n vm.$options._renderChildren = renderChildren;\n\n // update $attrs and $listeners hash\n // these are also reactive so they may trigger child update if the child\n // used them during render\n vm.$attrs = parentVnode.data.attrs || emptyObject;\n vm.$listeners = listeners || emptyObject;\n\n // update props\n if (propsData && vm.$options.props) {\n toggleObserving(false);\n var props = vm._props;\n var propKeys = vm.$options._propKeys || [];\n for (var i = 0; i < propKeys.length; i++) {\n var key = propKeys[i];\n var propOptions = vm.$options.props; // wtf flow?\n props[key] = validateProp(key, propOptions, propsData, vm);\n }\n toggleObserving(true);\n // keep a copy of raw propsData\n vm.$options.propsData = propsData;\n }\n\n // update listeners\n listeners = listeners || emptyObject;\n var oldListeners = vm.$options._parentListeners;\n vm.$options._parentListeners = listeners;\n updateComponentListeners(vm, listeners, oldListeners);\n\n // resolve slots + force update if has children\n if (hasChildren) {\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\n vm.$forceUpdate();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n isUpdatingChildComponent = false;\n }\n}\n\nfunction isInInactiveTree (vm) {\n while (vm && (vm = vm.$parent)) {\n if (vm._inactive) { return true }\n }\n return false\n}\n\nfunction activateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = false;\n if (isInInactiveTree(vm)) {\n return\n }\n } else if (vm._directInactive) {\n return\n }\n if (vm._inactive || vm._inactive === null) {\n vm._inactive = false;\n for (var i = 0; i < vm.$children.length; i++) {\n activateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'activated');\n }\n}\n\nfunction deactivateChildComponent (vm, direct) {\n if (direct) {\n vm._directInactive = true;\n if (isInInactiveTree(vm)) {\n return\n }\n }\n if (!vm._inactive) {\n vm._inactive = true;\n for (var i = 0; i < vm.$children.length; i++) {\n deactivateChildComponent(vm.$children[i]);\n }\n callHook(vm, 'deactivated');\n }\n}\n\nfunction callHook (vm, hook) {\n // #7573 disable dep collection when invoking lifecycle hooks\n pushTarget();\n var handlers = vm.$options[hook];\n if (handlers) {\n for (var i = 0, j = handlers.length; i < j; i++) {\n try {\n handlers[i].call(vm);\n } catch (e) {\n handleError(e, vm, (hook + \" hook\"));\n }\n }\n }\n if (vm._hasHookEvent) {\n vm.$emit('hook:' + hook);\n }\n popTarget();\n}\n\n/* */\n\n\nvar MAX_UPDATE_COUNT = 100;\n\nvar queue = [];\nvar activatedChildren = [];\nvar has = {};\nvar circular = {};\nvar waiting = false;\nvar flushing = false;\nvar index = 0;\n\n/**\n * Reset the scheduler's state.\n */\nfunction resetSchedulerState () {\n index = queue.length = activatedChildren.length = 0;\n has = {};\n if (process.env.NODE_ENV !== 'production') {\n circular = {};\n }\n waiting = flushing = false;\n}\n\n/**\n * Flush both queues and run the watchers.\n */\nfunction flushSchedulerQueue () {\n flushing = true;\n var watcher, id;\n\n // Sort queue before flush.\n // This ensures that:\n // 1. Components are updated from parent to child. (because parent is always\n // created before the child)\n // 2. A component's user watchers are run before its render watcher (because\n // user watchers are created before the render watcher)\n // 3. If a component is destroyed during a parent component's watcher run,\n // its watchers can be skipped.\n queue.sort(function (a, b) { return a.id - b.id; });\n\n // do not cache length because more watchers might be pushed\n // as we run existing watchers\n for (index = 0; index < queue.length; index++) {\n watcher = queue[index];\n id = watcher.id;\n has[id] = null;\n watcher.run();\n // in dev build, check and stop circular updates.\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\n circular[id] = (circular[id] || 0) + 1;\n if (circular[id] > MAX_UPDATE_COUNT) {\n warn(\n 'You may have an infinite update loop ' + (\n watcher.user\n ? (\"in watcher with expression \\\"\" + (watcher.expression) + \"\\\"\")\n : \"in a component render function.\"\n ),\n watcher.vm\n );\n break\n }\n }\n }\n\n // keep copies of post queues before resetting state\n var activatedQueue = activatedChildren.slice();\n var updatedQueue = queue.slice();\n\n resetSchedulerState();\n\n // call component updated and activated hooks\n callActivatedHooks(activatedQueue);\n callUpdatedHooks(updatedQueue);\n\n // devtool hook\n /* istanbul ignore if */\n if (devtools && config.devtools) {\n devtools.emit('flush');\n }\n}\n\nfunction callUpdatedHooks (queue) {\n var i = queue.length;\n while (i--) {\n var watcher = queue[i];\n var vm = watcher.vm;\n if (vm._watcher === watcher && vm._isMounted) {\n callHook(vm, 'updated');\n }\n }\n}\n\n/**\n * Queue a kept-alive component that was activated during patch.\n * The queue will be processed after the entire tree has been patched.\n */\nfunction queueActivatedComponent (vm) {\n // setting _inactive to false here so that a render function can\n // rely on checking whether it's in an inactive tree (e.g. router-view)\n vm._inactive = false;\n activatedChildren.push(vm);\n}\n\nfunction callActivatedHooks (queue) {\n for (var i = 0; i < queue.length; i++) {\n queue[i]._inactive = true;\n activateChildComponent(queue[i], true /* true */);\n }\n}\n\n/**\n * Push a watcher into the watcher queue.\n * Jobs with duplicate IDs will be skipped unless it's\n * pushed when the queue is being flushed.\n */\nfunction queueWatcher (watcher) {\n var id = watcher.id;\n if (has[id] == null) {\n has[id] = true;\n if (!flushing) {\n queue.push(watcher);\n } else {\n // if already flushing, splice the watcher based on its id\n // if already past its id, it will be run next immediately.\n var i = queue.length - 1;\n while (i > index && queue[i].id > watcher.id) {\n i--;\n }\n queue.splice(i + 1, 0, watcher);\n }\n // queue the flush\n if (!waiting) {\n waiting = true;\n nextTick(flushSchedulerQueue);\n }\n }\n}\n\n/* */\n\nvar uid$1 = 0;\n\n/**\n * A watcher parses an expression, collects dependencies,\n * and fires callback when the expression value changes.\n * This is used for both the $watch() api and directives.\n */\nvar Watcher = function Watcher (\n vm,\n expOrFn,\n cb,\n options,\n isRenderWatcher\n) {\n this.vm = vm;\n if (isRenderWatcher) {\n vm._watcher = this;\n }\n vm._watchers.push(this);\n // options\n if (options) {\n this.deep = !!options.deep;\n this.user = !!options.user;\n this.lazy = !!options.lazy;\n this.sync = !!options.sync;\n } else {\n this.deep = this.user = this.lazy = this.sync = false;\n }\n this.cb = cb;\n this.id = ++uid$1; // uid for batching\n this.active = true;\n this.dirty = this.lazy; // for lazy watchers\n this.deps = [];\n this.newDeps = [];\n this.depIds = new _Set();\n this.newDepIds = new _Set();\n this.expression = process.env.NODE_ENV !== 'production'\n ? expOrFn.toString()\n : '';\n // parse expression for getter\n if (typeof expOrFn === 'function') {\n this.getter = expOrFn;\n } else {\n this.getter = parsePath(expOrFn);\n if (!this.getter) {\n this.getter = function () {};\n process.env.NODE_ENV !== 'production' && warn(\n \"Failed watching path: \\\"\" + expOrFn + \"\\\" \" +\n 'Watcher only accepts simple dot-delimited paths. ' +\n 'For full control, use a function instead.',\n vm\n );\n }\n }\n this.value = this.lazy\n ? undefined\n : this.get();\n};\n\n/**\n * Evaluate the getter, and re-collect dependencies.\n */\nWatcher.prototype.get = function get () {\n pushTarget(this);\n var value;\n var vm = this.vm;\n try {\n value = this.getter.call(vm, vm);\n } catch (e) {\n if (this.user) {\n handleError(e, vm, (\"getter for watcher \\\"\" + (this.expression) + \"\\\"\"));\n } else {\n throw e\n }\n } finally {\n // \"touch\" every property so they are all tracked as\n // dependencies for deep watching\n if (this.deep) {\n traverse(value);\n }\n popTarget();\n this.cleanupDeps();\n }\n return value\n};\n\n/**\n * Add a dependency to this directive.\n */\nWatcher.prototype.addDep = function addDep (dep) {\n var id = dep.id;\n if (!this.newDepIds.has(id)) {\n this.newDepIds.add(id);\n this.newDeps.push(dep);\n if (!this.depIds.has(id)) {\n dep.addSub(this);\n }\n }\n};\n\n/**\n * Clean up for dependency collection.\n */\nWatcher.prototype.cleanupDeps = function cleanupDeps () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n var dep = this$1.deps[i];\n if (!this$1.newDepIds.has(dep.id)) {\n dep.removeSub(this$1);\n }\n }\n var tmp = this.depIds;\n this.depIds = this.newDepIds;\n this.newDepIds = tmp;\n this.newDepIds.clear();\n tmp = this.deps;\n this.deps = this.newDeps;\n this.newDeps = tmp;\n this.newDeps.length = 0;\n};\n\n/**\n * Subscriber interface.\n * Will be called when a dependency changes.\n */\nWatcher.prototype.update = function update () {\n /* istanbul ignore else */\n if (this.lazy) {\n this.dirty = true;\n } else if (this.sync) {\n this.run();\n } else {\n queueWatcher(this);\n }\n};\n\n/**\n * Scheduler job interface.\n * Will be called by the scheduler.\n */\nWatcher.prototype.run = function run () {\n if (this.active) {\n var value = this.get();\n if (\n value !== this.value ||\n // Deep watchers and watchers on Object/Arrays should fire even\n // when the value is the same, because the value may\n // have mutated.\n isObject(value) ||\n this.deep\n ) {\n // set new value\n var oldValue = this.value;\n this.value = value;\n if (this.user) {\n try {\n this.cb.call(this.vm, value, oldValue);\n } catch (e) {\n handleError(e, this.vm, (\"callback for watcher \\\"\" + (this.expression) + \"\\\"\"));\n }\n } else {\n this.cb.call(this.vm, value, oldValue);\n }\n }\n }\n};\n\n/**\n * Evaluate the value of the watcher.\n * This only gets called for lazy watchers.\n */\nWatcher.prototype.evaluate = function evaluate () {\n this.value = this.get();\n this.dirty = false;\n};\n\n/**\n * Depend on all deps collected by this watcher.\n */\nWatcher.prototype.depend = function depend () {\n var this$1 = this;\n\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].depend();\n }\n};\n\n/**\n * Remove self from all dependencies' subscriber list.\n */\nWatcher.prototype.teardown = function teardown () {\n var this$1 = this;\n\n if (this.active) {\n // remove self from vm's watcher list\n // this is a somewhat expensive operation so we skip it\n // if the vm is being destroyed.\n if (!this.vm._isBeingDestroyed) {\n remove(this.vm._watchers, this);\n }\n var i = this.deps.length;\n while (i--) {\n this$1.deps[i].removeSub(this$1);\n }\n this.active = false;\n }\n};\n\n/* */\n\nvar sharedPropertyDefinition = {\n enumerable: true,\n configurable: true,\n get: noop,\n set: noop\n};\n\nfunction proxy (target, sourceKey, key) {\n sharedPropertyDefinition.get = function proxyGetter () {\n return this[sourceKey][key]\n };\n sharedPropertyDefinition.set = function proxySetter (val) {\n this[sourceKey][key] = val;\n };\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction initState (vm) {\n vm._watchers = [];\n var opts = vm.$options;\n if (opts.props) { initProps(vm, opts.props); }\n if (opts.methods) { initMethods(vm, opts.methods); }\n if (opts.data) {\n initData(vm);\n } else {\n observe(vm._data = {}, true /* asRootData */);\n }\n if (opts.computed) { initComputed(vm, opts.computed); }\n if (opts.watch && opts.watch !== nativeWatch) {\n initWatch(vm, opts.watch);\n }\n}\n\nfunction initProps (vm, propsOptions) {\n var propsData = vm.$options.propsData || {};\n var props = vm._props = {};\n // cache prop keys so that future props updates can iterate using Array\n // instead of dynamic object key enumeration.\n var keys = vm.$options._propKeys = [];\n var isRoot = !vm.$parent;\n // root instance props should be converted\n if (!isRoot) {\n toggleObserving(false);\n }\n var loop = function ( key ) {\n keys.push(key);\n var value = validateProp(key, propsOptions, propsData, vm);\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n var hyphenatedKey = hyphenate(key);\n if (isReservedAttribute(hyphenatedKey) ||\n config.isReservedAttr(hyphenatedKey)) {\n warn(\n (\"\\\"\" + hyphenatedKey + \"\\\" is a reserved attribute and cannot be used as component prop.\"),\n vm\n );\n }\n defineReactive(props, key, value, function () {\n if (vm.$parent && !isUpdatingChildComponent) {\n warn(\n \"Avoid mutating a prop directly since the value will be \" +\n \"overwritten whenever the parent component re-renders. \" +\n \"Instead, use a data or computed property based on the prop's \" +\n \"value. Prop being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n }\n });\n } else {\n defineReactive(props, key, value);\n }\n // static props are already proxied on the component's prototype\n // during Vue.extend(). We only need to proxy props defined at\n // instantiation here.\n if (!(key in vm)) {\n proxy(vm, \"_props\", key);\n }\n };\n\n for (var key in propsOptions) loop( key );\n toggleObserving(true);\n}\n\nfunction initData (vm) {\n var data = vm.$options.data;\n data = vm._data = typeof data === 'function'\n ? getData(data, vm)\n : data || {};\n if (!isPlainObject(data)) {\n data = {};\n process.env.NODE_ENV !== 'production' && warn(\n 'data functions should return an object:\\n' +\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function',\n vm\n );\n }\n // proxy data on instance\n var keys = Object.keys(data);\n var props = vm.$options.props;\n var methods = vm.$options.methods;\n var i = keys.length;\n while (i--) {\n var key = keys[i];\n if (process.env.NODE_ENV !== 'production') {\n if (methods && hasOwn(methods, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a data property.\"),\n vm\n );\n }\n }\n if (props && hasOwn(props, key)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"The data property \\\"\" + key + \"\\\" is already declared as a prop. \" +\n \"Use prop default value instead.\",\n vm\n );\n } else if (!isReserved(key)) {\n proxy(vm, \"_data\", key);\n }\n }\n // observe data\n observe(data, true /* asRootData */);\n}\n\nfunction getData (data, vm) {\n // #7573 disable dep collection when invoking data getters\n pushTarget();\n try {\n return data.call(vm, vm)\n } catch (e) {\n handleError(e, vm, \"data()\");\n return {}\n } finally {\n popTarget();\n }\n}\n\nvar computedWatcherOptions = { lazy: true };\n\nfunction initComputed (vm, computed) {\n // $flow-disable-line\n var watchers = vm._computedWatchers = Object.create(null);\n // computed properties are just getters during SSR\n var isSSR = isServerRendering();\n\n for (var key in computed) {\n var userDef = computed[key];\n var getter = typeof userDef === 'function' ? userDef : userDef.get;\n if (process.env.NODE_ENV !== 'production' && getter == null) {\n warn(\n (\"Getter is missing for computed property \\\"\" + key + \"\\\".\"),\n vm\n );\n }\n\n if (!isSSR) {\n // create internal watcher for the computed property.\n watchers[key] = new Watcher(\n vm,\n getter || noop,\n noop,\n computedWatcherOptions\n );\n }\n\n // component-defined computed properties are already defined on the\n // component prototype. We only need to define computed properties defined\n // at instantiation here.\n if (!(key in vm)) {\n defineComputed(vm, key, userDef);\n } else if (process.env.NODE_ENV !== 'production') {\n if (key in vm.$data) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined in data.\"), vm);\n } else if (vm.$options.props && key in vm.$options.props) {\n warn((\"The computed property \\\"\" + key + \"\\\" is already defined as a prop.\"), vm);\n }\n }\n }\n}\n\nfunction defineComputed (\n target,\n key,\n userDef\n) {\n var shouldCache = !isServerRendering();\n if (typeof userDef === 'function') {\n sharedPropertyDefinition.get = shouldCache\n ? createComputedGetter(key)\n : userDef;\n sharedPropertyDefinition.set = noop;\n } else {\n sharedPropertyDefinition.get = userDef.get\n ? shouldCache && userDef.cache !== false\n ? createComputedGetter(key)\n : userDef.get\n : noop;\n sharedPropertyDefinition.set = userDef.set\n ? userDef.set\n : noop;\n }\n if (process.env.NODE_ENV !== 'production' &&\n sharedPropertyDefinition.set === noop) {\n sharedPropertyDefinition.set = function () {\n warn(\n (\"Computed property \\\"\" + key + \"\\\" was assigned to but it has no setter.\"),\n this\n );\n };\n }\n Object.defineProperty(target, key, sharedPropertyDefinition);\n}\n\nfunction createComputedGetter (key) {\n return function computedGetter () {\n var watcher = this._computedWatchers && this._computedWatchers[key];\n if (watcher) {\n if (watcher.dirty) {\n watcher.evaluate();\n }\n if (Dep.target) {\n watcher.depend();\n }\n return watcher.value\n }\n }\n}\n\nfunction initMethods (vm, methods) {\n var props = vm.$options.props;\n for (var key in methods) {\n if (process.env.NODE_ENV !== 'production') {\n if (methods[key] == null) {\n warn(\n \"Method \\\"\" + key + \"\\\" has an undefined value in the component definition. \" +\n \"Did you reference the function correctly?\",\n vm\n );\n }\n if (props && hasOwn(props, key)) {\n warn(\n (\"Method \\\"\" + key + \"\\\" has already been defined as a prop.\"),\n vm\n );\n }\n if ((key in vm) && isReserved(key)) {\n warn(\n \"Method \\\"\" + key + \"\\\" conflicts with an existing Vue instance method. \" +\n \"Avoid defining component methods that start with _ or $.\"\n );\n }\n }\n vm[key] = methods[key] == null ? noop : bind(methods[key], vm);\n }\n}\n\nfunction initWatch (vm, watch) {\n for (var key in watch) {\n var handler = watch[key];\n if (Array.isArray(handler)) {\n for (var i = 0; i < handler.length; i++) {\n createWatcher(vm, key, handler[i]);\n }\n } else {\n createWatcher(vm, key, handler);\n }\n }\n}\n\nfunction createWatcher (\n vm,\n expOrFn,\n handler,\n options\n) {\n if (isPlainObject(handler)) {\n options = handler;\n handler = handler.handler;\n }\n if (typeof handler === 'string') {\n handler = vm[handler];\n }\n return vm.$watch(expOrFn, handler, options)\n}\n\nfunction stateMixin (Vue) {\n // flow somehow has problems with directly declared definition object\n // when using Object.defineProperty, so we have to procedurally build up\n // the object here.\n var dataDef = {};\n dataDef.get = function () { return this._data };\n var propsDef = {};\n propsDef.get = function () { return this._props };\n if (process.env.NODE_ENV !== 'production') {\n dataDef.set = function (newData) {\n warn(\n 'Avoid replacing instance root $data. ' +\n 'Use nested data properties instead.',\n this\n );\n };\n propsDef.set = function () {\n warn(\"$props is readonly.\", this);\n };\n }\n Object.defineProperty(Vue.prototype, '$data', dataDef);\n Object.defineProperty(Vue.prototype, '$props', propsDef);\n\n Vue.prototype.$set = set;\n Vue.prototype.$delete = del;\n\n Vue.prototype.$watch = function (\n expOrFn,\n cb,\n options\n ) {\n var vm = this;\n if (isPlainObject(cb)) {\n return createWatcher(vm, expOrFn, cb, options)\n }\n options = options || {};\n options.user = true;\n var watcher = new Watcher(vm, expOrFn, cb, options);\n if (options.immediate) {\n cb.call(vm, watcher.value);\n }\n return function unwatchFn () {\n watcher.teardown();\n }\n };\n}\n\n/* */\n\nfunction initProvide (vm) {\n var provide = vm.$options.provide;\n if (provide) {\n vm._provided = typeof provide === 'function'\n ? provide.call(vm)\n : provide;\n }\n}\n\nfunction initInjections (vm) {\n var result = resolveInject(vm.$options.inject, vm);\n if (result) {\n toggleObserving(false);\n Object.keys(result).forEach(function (key) {\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive(vm, key, result[key], function () {\n warn(\n \"Avoid mutating an injected value directly since the changes will be \" +\n \"overwritten whenever the provided component re-renders. \" +\n \"injection being mutated: \\\"\" + key + \"\\\"\",\n vm\n );\n });\n } else {\n defineReactive(vm, key, result[key]);\n }\n });\n toggleObserving(true);\n }\n}\n\nfunction resolveInject (inject, vm) {\n if (inject) {\n // inject is :any because flow is not smart enough to figure out cached\n var result = Object.create(null);\n var keys = hasSymbol\n ? Reflect.ownKeys(inject).filter(function (key) {\n /* istanbul ignore next */\n return Object.getOwnPropertyDescriptor(inject, key).enumerable\n })\n : Object.keys(inject);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var provideKey = inject[key].from;\n var source = vm;\n while (source) {\n if (source._provided && hasOwn(source._provided, provideKey)) {\n result[key] = source._provided[provideKey];\n break\n }\n source = source.$parent;\n }\n if (!source) {\n if ('default' in inject[key]) {\n var provideDefault = inject[key].default;\n result[key] = typeof provideDefault === 'function'\n ? provideDefault.call(vm)\n : provideDefault;\n } else if (process.env.NODE_ENV !== 'production') {\n warn((\"Injection \\\"\" + key + \"\\\" not found\"), vm);\n }\n }\n }\n return result\n }\n}\n\n/* */\n\n/**\n * Runtime helper for rendering v-for lists.\n */\nfunction renderList (\n val,\n render\n) {\n var ret, i, l, keys, key;\n if (Array.isArray(val) || typeof val === 'string') {\n ret = new Array(val.length);\n for (i = 0, l = val.length; i < l; i++) {\n ret[i] = render(val[i], i);\n }\n } else if (typeof val === 'number') {\n ret = new Array(val);\n for (i = 0; i < val; i++) {\n ret[i] = render(i + 1, i);\n }\n } else if (isObject(val)) {\n keys = Object.keys(val);\n ret = new Array(keys.length);\n for (i = 0, l = keys.length; i < l; i++) {\n key = keys[i];\n ret[i] = render(val[key], key, i);\n }\n }\n if (isDef(ret)) {\n (ret)._isVList = true;\n }\n return ret\n}\n\n/* */\n\n/**\n * Runtime helper for rendering <slot>\n */\nfunction renderSlot (\n name,\n fallback,\n props,\n bindObject\n) {\n var scopedSlotFn = this.$scopedSlots[name];\n var nodes;\n if (scopedSlotFn) { // scoped slot\n props = props || {};\n if (bindObject) {\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\n warn(\n 'slot v-bind without argument expects an Object',\n this\n );\n }\n props = extend(extend({}, bindObject), props);\n }\n nodes = scopedSlotFn(props) || fallback;\n } else {\n var slotNodes = this.$slots[name];\n // warn duplicate slot usage\n if (slotNodes) {\n if (process.env.NODE_ENV !== 'production' && slotNodes._rendered) {\n warn(\n \"Duplicate presence of slot \\\"\" + name + \"\\\" found in the same render tree \" +\n \"- this will likely cause render errors.\",\n this\n );\n }\n slotNodes._rendered = true;\n }\n nodes = slotNodes || fallback;\n }\n\n var target = props && props.slot;\n if (target) {\n return this.$createElement('template', { slot: target }, nodes)\n } else {\n return nodes\n }\n}\n\n/* */\n\n/**\n * Runtime helper for resolving filters\n */\nfunction resolveFilter (id) {\n return resolveAsset(this.$options, 'filters', id, true) || identity\n}\n\n/* */\n\nfunction isKeyNotMatch (expect, actual) {\n if (Array.isArray(expect)) {\n return expect.indexOf(actual) === -1\n } else {\n return expect !== actual\n }\n}\n\n/**\n * Runtime helper for checking keyCodes from config.\n * exposed as Vue.prototype._k\n * passing in eventKeyName as last argument separately for backwards compat\n */\nfunction checkKeyCodes (\n eventKeyCode,\n key,\n builtInKeyCode,\n eventKeyName,\n builtInKeyName\n) {\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\n return isKeyNotMatch(builtInKeyName, eventKeyName)\n } else if (mappedKeyCode) {\n return isKeyNotMatch(mappedKeyCode, eventKeyCode)\n } else if (eventKeyName) {\n return hyphenate(eventKeyName) !== key\n }\n}\n\n/* */\n\n/**\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\n */\nfunction bindObjectProps (\n data,\n tag,\n value,\n asProp,\n isSync\n) {\n if (value) {\n if (!isObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-bind without argument expects an Object or Array value',\n this\n );\n } else {\n if (Array.isArray(value)) {\n value = toObject(value);\n }\n var hash;\n var loop = function ( key ) {\n if (\n key === 'class' ||\n key === 'style' ||\n isReservedAttribute(key)\n ) {\n hash = data;\n } else {\n var type = data.attrs && data.attrs.type;\n hash = asProp || config.mustUseProp(tag, type, key)\n ? data.domProps || (data.domProps = {})\n : data.attrs || (data.attrs = {});\n }\n if (!(key in hash)) {\n hash[key] = value[key];\n\n if (isSync) {\n var on = data.on || (data.on = {});\n on[(\"update:\" + key)] = function ($event) {\n value[key] = $event;\n };\n }\n }\n };\n\n for (var key in value) loop( key );\n }\n }\n return data\n}\n\n/* */\n\n/**\n * Runtime helper for rendering static trees.\n */\nfunction renderStatic (\n index,\n isInFor\n) {\n var cached = this._staticTrees || (this._staticTrees = []);\n var tree = cached[index];\n // if has already-rendered static tree and not inside v-for,\n // we can reuse the same tree.\n if (tree && !isInFor) {\n return tree\n }\n // otherwise, render a fresh tree.\n tree = cached[index] = this.$options.staticRenderFns[index].call(\n this._renderProxy,\n null,\n this // for render fns generated for functional component templates\n );\n markStatic(tree, (\"__static__\" + index), false);\n return tree\n}\n\n/**\n * Runtime helper for v-once.\n * Effectively it means marking the node as static with a unique key.\n */\nfunction markOnce (\n tree,\n index,\n key\n) {\n markStatic(tree, (\"__once__\" + index + (key ? (\"_\" + key) : \"\")), true);\n return tree\n}\n\nfunction markStatic (\n tree,\n key,\n isOnce\n) {\n if (Array.isArray(tree)) {\n for (var i = 0; i < tree.length; i++) {\n if (tree[i] && typeof tree[i] !== 'string') {\n markStaticNode(tree[i], (key + \"_\" + i), isOnce);\n }\n }\n } else {\n markStaticNode(tree, key, isOnce);\n }\n}\n\nfunction markStaticNode (node, key, isOnce) {\n node.isStatic = true;\n node.key = key;\n node.isOnce = isOnce;\n}\n\n/* */\n\nfunction bindObjectListeners (data, value) {\n if (value) {\n if (!isPlainObject(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'v-on without argument expects an Object value',\n this\n );\n } else {\n var on = data.on = data.on ? extend({}, data.on) : {};\n for (var key in value) {\n var existing = on[key];\n var ours = value[key];\n on[key] = existing ? [].concat(existing, ours) : ours;\n }\n }\n }\n return data\n}\n\n/* */\n\nfunction installRenderHelpers (target) {\n target._o = markOnce;\n target._n = toNumber;\n target._s = toString;\n target._l = renderList;\n target._t = renderSlot;\n target._q = looseEqual;\n target._i = looseIndexOf;\n target._m = renderStatic;\n target._f = resolveFilter;\n target._k = checkKeyCodes;\n target._b = bindObjectProps;\n target._v = createTextVNode;\n target._e = createEmptyVNode;\n target._u = resolveScopedSlots;\n target._g = bindObjectListeners;\n}\n\n/* */\n\nfunction FunctionalRenderContext (\n data,\n props,\n children,\n parent,\n Ctor\n) {\n var options = Ctor.options;\n // ensure the createElement function in functional components\n // gets a unique context - this is necessary for correct named slot check\n var contextVm;\n if (hasOwn(parent, '_uid')) {\n contextVm = Object.create(parent);\n // $flow-disable-line\n contextVm._original = parent;\n } else {\n // the context vm passed in is a functional context as well.\n // in this case we want to make sure we are able to get a hold to the\n // real context instance.\n contextVm = parent;\n // $flow-disable-line\n parent = parent._original;\n }\n var isCompiled = isTrue(options._compiled);\n var needNormalization = !isCompiled;\n\n this.data = data;\n this.props = props;\n this.children = children;\n this.parent = parent;\n this.listeners = data.on || emptyObject;\n this.injections = resolveInject(options.inject, parent);\n this.slots = function () { return resolveSlots(children, parent); };\n\n // support for compiled functional template\n if (isCompiled) {\n // exposing $options for renderStatic()\n this.$options = options;\n // pre-resolve slots for renderSlot()\n this.$slots = this.slots();\n this.$scopedSlots = data.scopedSlots || emptyObject;\n }\n\n if (options._scopeId) {\n this._c = function (a, b, c, d) {\n var vnode = createElement(contextVm, a, b, c, d, needNormalization);\n if (vnode && !Array.isArray(vnode)) {\n vnode.fnScopeId = options._scopeId;\n vnode.fnContext = parent;\n }\n return vnode\n };\n } else {\n this._c = function (a, b, c, d) { return createElement(contextVm, a, b, c, d, needNormalization); };\n }\n}\n\ninstallRenderHelpers(FunctionalRenderContext.prototype);\n\nfunction createFunctionalComponent (\n Ctor,\n propsData,\n data,\n contextVm,\n children\n) {\n var options = Ctor.options;\n var props = {};\n var propOptions = options.props;\n if (isDef(propOptions)) {\n for (var key in propOptions) {\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\n }\n } else {\n if (isDef(data.attrs)) { mergeProps(props, data.attrs); }\n if (isDef(data.props)) { mergeProps(props, data.props); }\n }\n\n var renderContext = new FunctionalRenderContext(\n data,\n props,\n children,\n contextVm,\n Ctor\n );\n\n var vnode = options.render.call(null, renderContext._c, renderContext);\n\n if (vnode instanceof VNode) {\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options)\n } else if (Array.isArray(vnode)) {\n var vnodes = normalizeChildren(vnode) || [];\n var res = new Array(vnodes.length);\n for (var i = 0; i < vnodes.length; i++) {\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options);\n }\n return res\n }\n}\n\nfunction cloneAndMarkFunctionalResult (vnode, data, contextVm, options) {\n // #7817 clone node before setting fnContext, otherwise if the node is reused\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\n // that should not be matched to match.\n var clone = cloneVNode(vnode);\n clone.fnContext = contextVm;\n clone.fnOptions = options;\n if (data.slot) {\n (clone.data || (clone.data = {})).slot = data.slot;\n }\n return clone\n}\n\nfunction mergeProps (to, from) {\n for (var key in from) {\n to[camelize(key)] = from[key];\n }\n}\n\n/* */\n\n\n\n\n// Register the component hook to weex native render engine.\n// The hook will be triggered by native, not javascript.\n\n\n// Updates the state of the component to weex native render engine.\n\n/* */\n\n// https://github.com/Hanks10100/weex-native-directive/tree/master/component\n\n// listening on native callback\n\n/* */\n\n/* */\n\n// inline hooks to be invoked on component VNodes during patch\nvar componentVNodeHooks = {\n init: function init (\n vnode,\n hydrating,\n parentElm,\n refElm\n ) {\n if (\n vnode.componentInstance &&\n !vnode.componentInstance._isDestroyed &&\n vnode.data.keepAlive\n ) {\n // kept-alive components, treat as a patch\n var mountedNode = vnode; // work around flow\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\n } else {\n var child = vnode.componentInstance = createComponentInstanceForVnode(\n vnode,\n activeInstance,\n parentElm,\n refElm\n );\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\n }\n },\n\n prepatch: function prepatch (oldVnode, vnode) {\n var options = vnode.componentOptions;\n var child = vnode.componentInstance = oldVnode.componentInstance;\n updateChildComponent(\n child,\n options.propsData, // updated props\n options.listeners, // updated listeners\n vnode, // new parent vnode\n options.children // new children\n );\n },\n\n insert: function insert (vnode) {\n var context = vnode.context;\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isMounted) {\n componentInstance._isMounted = true;\n callHook(componentInstance, 'mounted');\n }\n if (vnode.data.keepAlive) {\n if (context._isMounted) {\n // vue-router#1212\n // During updates, a kept-alive component's child components may\n // change, so directly walking the tree here may call activated hooks\n // on incorrect children. Instead we push them into a queue which will\n // be processed after the whole patch process ended.\n queueActivatedComponent(componentInstance);\n } else {\n activateChildComponent(componentInstance, true /* direct */);\n }\n }\n },\n\n destroy: function destroy (vnode) {\n var componentInstance = vnode.componentInstance;\n if (!componentInstance._isDestroyed) {\n if (!vnode.data.keepAlive) {\n componentInstance.$destroy();\n } else {\n deactivateChildComponent(componentInstance, true /* direct */);\n }\n }\n }\n};\n\nvar hooksToMerge = Object.keys(componentVNodeHooks);\n\nfunction createComponent (\n Ctor,\n data,\n context,\n children,\n tag\n) {\n if (isUndef(Ctor)) {\n return\n }\n\n var baseCtor = context.$options._base;\n\n // plain options object: turn it into a constructor\n if (isObject(Ctor)) {\n Ctor = baseCtor.extend(Ctor);\n }\n\n // if at this stage it's not a constructor or an async component factory,\n // reject.\n if (typeof Ctor !== 'function') {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Invalid Component definition: \" + (String(Ctor))), context);\n }\n return\n }\n\n // async component\n var asyncFactory;\n if (isUndef(Ctor.cid)) {\n asyncFactory = Ctor;\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor, context);\n if (Ctor === undefined) {\n // return a placeholder node for async component, which is rendered\n // as a comment node but preserves all the raw information for the node.\n // the information will be used for async server-rendering and hydration.\n return createAsyncPlaceholder(\n asyncFactory,\n data,\n context,\n children,\n tag\n )\n }\n }\n\n data = data || {};\n\n // resolve constructor options in case global mixins are applied after\n // component constructor creation\n resolveConstructorOptions(Ctor);\n\n // transform component v-model data into props & events\n if (isDef(data.model)) {\n transformModel(Ctor.options, data);\n }\n\n // extract props\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\n\n // functional component\n if (isTrue(Ctor.options.functional)) {\n return createFunctionalComponent(Ctor, propsData, data, context, children)\n }\n\n // extract listeners, since these needs to be treated as\n // child component listeners instead of DOM listeners\n var listeners = data.on;\n // replace with listeners with .native modifier\n // so it gets processed during parent component patch.\n data.on = data.nativeOn;\n\n if (isTrue(Ctor.options.abstract)) {\n // abstract components do not keep anything\n // other than props & listeners & slot\n\n // work around flow\n var slot = data.slot;\n data = {};\n if (slot) {\n data.slot = slot;\n }\n }\n\n // install component management hooks onto the placeholder node\n installComponentHooks(data);\n\n // return a placeholder vnode\n var name = Ctor.options.name || tag;\n var vnode = new VNode(\n (\"vue-component-\" + (Ctor.cid) + (name ? (\"-\" + name) : '')),\n data, undefined, undefined, undefined, context,\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children },\n asyncFactory\n );\n\n // Weex specific: invoke recycle-list optimized @render function for\n // extracting cell-slot template.\n // https://github.com/Hanks10100/weex-native-directive/tree/master/component\n /* istanbul ignore if */\n return vnode\n}\n\nfunction createComponentInstanceForVnode (\n vnode, // we know it's MountedComponentVNode but flow doesn't\n parent, // activeInstance in lifecycle state\n parentElm,\n refElm\n) {\n var options = {\n _isComponent: true,\n parent: parent,\n _parentVnode: vnode,\n _parentElm: parentElm || null,\n _refElm: refElm || null\n };\n // check inline-template render functions\n var inlineTemplate = vnode.data.inlineTemplate;\n if (isDef(inlineTemplate)) {\n options.render = inlineTemplate.render;\n options.staticRenderFns = inlineTemplate.staticRenderFns;\n }\n return new vnode.componentOptions.Ctor(options)\n}\n\nfunction installComponentHooks (data) {\n var hooks = data.hook || (data.hook = {});\n for (var i = 0; i < hooksToMerge.length; i++) {\n var key = hooksToMerge[i];\n hooks[key] = componentVNodeHooks[key];\n }\n}\n\n// transform component v-model info (value and callback) into\n// prop and event handler respectively.\nfunction transformModel (options, data) {\n var prop = (options.model && options.model.prop) || 'value';\n var event = (options.model && options.model.event) || 'input';(data.props || (data.props = {}))[prop] = data.model.value;\n var on = data.on || (data.on = {});\n if (isDef(on[event])) {\n on[event] = [data.model.callback].concat(on[event]);\n } else {\n on[event] = data.model.callback;\n }\n}\n\n/* */\n\nvar SIMPLE_NORMALIZE = 1;\nvar ALWAYS_NORMALIZE = 2;\n\n// wrapper function for providing a more flexible interface\n// without getting yelled at by flow\nfunction createElement (\n context,\n tag,\n data,\n children,\n normalizationType,\n alwaysNormalize\n) {\n if (Array.isArray(data) || isPrimitive(data)) {\n normalizationType = children;\n children = data;\n data = undefined;\n }\n if (isTrue(alwaysNormalize)) {\n normalizationType = ALWAYS_NORMALIZE;\n }\n return _createElement(context, tag, data, children, normalizationType)\n}\n\nfunction _createElement (\n context,\n tag,\n data,\n children,\n normalizationType\n) {\n if (isDef(data) && isDef((data).__ob__)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Avoid using observed data object as vnode data: \" + (JSON.stringify(data)) + \"\\n\" +\n 'Always create fresh vnode data objects in each render!',\n context\n );\n return createEmptyVNode()\n }\n // object syntax in v-bind\n if (isDef(data) && isDef(data.is)) {\n tag = data.is;\n }\n if (!tag) {\n // in case of component :is set to falsy value\n return createEmptyVNode()\n }\n // warn against non-primitive key\n if (process.env.NODE_ENV !== 'production' &&\n isDef(data) && isDef(data.key) && !isPrimitive(data.key)\n ) {\n {\n warn(\n 'Avoid using non-primitive value as key, ' +\n 'use string/number value instead.',\n context\n );\n }\n }\n // support single function children as default scoped slot\n if (Array.isArray(children) &&\n typeof children[0] === 'function'\n ) {\n data = data || {};\n data.scopedSlots = { default: children[0] };\n children.length = 0;\n }\n if (normalizationType === ALWAYS_NORMALIZE) {\n children = normalizeChildren(children);\n } else if (normalizationType === SIMPLE_NORMALIZE) {\n children = simpleNormalizeChildren(children);\n }\n var vnode, ns;\n if (typeof tag === 'string') {\n var Ctor;\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\n if (config.isReservedTag(tag)) {\n // platform built-in elements\n vnode = new VNode(\n config.parsePlatformTagName(tag), data, children,\n undefined, undefined, context\n );\n } else if (isDef(Ctor = resolveAsset(context.$options, 'components', tag))) {\n // component\n vnode = createComponent(Ctor, data, context, children, tag);\n } else {\n // unknown or unlisted namespaced elements\n // check at runtime because it may get assigned a namespace when its\n // parent normalizes children\n vnode = new VNode(\n tag, data, children,\n undefined, undefined, context\n );\n }\n } else {\n // direct component options / constructor\n vnode = createComponent(tag, data, context, children);\n }\n if (Array.isArray(vnode)) {\n return vnode\n } else if (isDef(vnode)) {\n if (isDef(ns)) { applyNS(vnode, ns); }\n if (isDef(data)) { registerDeepBindings(data); }\n return vnode\n } else {\n return createEmptyVNode()\n }\n}\n\nfunction applyNS (vnode, ns, force) {\n vnode.ns = ns;\n if (vnode.tag === 'foreignObject') {\n // use default namespace inside foreignObject\n ns = undefined;\n force = true;\n }\n if (isDef(vnode.children)) {\n for (var i = 0, l = vnode.children.length; i < l; i++) {\n var child = vnode.children[i];\n if (isDef(child.tag) && (\n isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\n applyNS(child, ns, force);\n }\n }\n }\n}\n\n// ref #5318\n// necessary to ensure parent re-render when deep bindings like :style and\n// :class are used on slot nodes\nfunction registerDeepBindings (data) {\n if (isObject(data.style)) {\n traverse(data.style);\n }\n if (isObject(data.class)) {\n traverse(data.class);\n }\n}\n\n/* */\n\nfunction initRender (vm) {\n vm._vnode = null; // the root of the child tree\n vm._staticTrees = null; // v-once cached trees\n var options = vm.$options;\n var parentVnode = vm.$vnode = options._parentVnode; // the placeholder node in parent tree\n var renderContext = parentVnode && parentVnode.context;\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\n vm.$scopedSlots = emptyObject;\n // bind the createElement fn to this instance\n // so that we get proper render context inside it.\n // args order: tag, data, children, normalizationType, alwaysNormalize\n // internal version is used by render functions compiled from templates\n vm._c = function (a, b, c, d) { return createElement(vm, a, b, c, d, false); };\n // normalization is always applied for the public version, used in\n // user-written render functions.\n vm.$createElement = function (a, b, c, d) { return createElement(vm, a, b, c, d, true); };\n\n // $attrs & $listeners are exposed for easier HOC creation.\n // they need to be reactive so that HOCs using them are always updated\n var parentData = parentVnode && parentVnode.data;\n\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\n }, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\n }, true);\n } else {\n defineReactive(vm, '$attrs', parentData && parentData.attrs || emptyObject, null, true);\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);\n }\n}\n\nfunction renderMixin (Vue) {\n // install runtime convenience helpers\n installRenderHelpers(Vue.prototype);\n\n Vue.prototype.$nextTick = function (fn) {\n return nextTick(fn, this)\n };\n\n Vue.prototype._render = function () {\n var vm = this;\n var ref = vm.$options;\n var render = ref.render;\n var _parentVnode = ref._parentVnode;\n\n // reset _rendered flag on slots for duplicate slot check\n if (process.env.NODE_ENV !== 'production') {\n for (var key in vm.$slots) {\n // $flow-disable-line\n vm.$slots[key]._rendered = false;\n }\n }\n\n if (_parentVnode) {\n vm.$scopedSlots = _parentVnode.data.scopedSlots || emptyObject;\n }\n\n // set parent vnode. this allows render functions to have access\n // to the data on the placeholder node.\n vm.$vnode = _parentVnode;\n // render self\n var vnode;\n try {\n vnode = render.call(vm._renderProxy, vm.$createElement);\n } catch (e) {\n handleError(e, vm, \"render\");\n // return error render result,\n // or previous vnode to prevent render error causing blank component\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n if (vm.$options.renderError) {\n try {\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\n } catch (e) {\n handleError(e, vm, \"renderError\");\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n } else {\n vnode = vm._vnode;\n }\n }\n // return empty vnode in case the render function errored out\n if (!(vnode instanceof VNode)) {\n if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {\n warn(\n 'Multiple root nodes returned from render function. Render function ' +\n 'should return a single root node.',\n vm\n );\n }\n vnode = createEmptyVNode();\n }\n // set parent\n vnode.parent = _parentVnode;\n return vnode\n };\n}\n\n/* */\n\nvar uid$3 = 0;\n\nfunction initMixin (Vue) {\n Vue.prototype._init = function (options) {\n var vm = this;\n // a uid\n vm._uid = uid$3++;\n\n var startTag, endTag;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n startTag = \"vue-perf-start:\" + (vm._uid);\n endTag = \"vue-perf-end:\" + (vm._uid);\n mark(startTag);\n }\n\n // a flag to avoid this being observed\n vm._isVue = true;\n // merge options\n if (options && options._isComponent) {\n // optimize internal component instantiation\n // since dynamic options merging is pretty slow, and none of the\n // internal component options needs special treatment.\n initInternalComponent(vm, options);\n } else {\n vm.$options = mergeOptions(\n resolveConstructorOptions(vm.constructor),\n options || {},\n vm\n );\n }\n /* istanbul ignore else */\n if (process.env.NODE_ENV !== 'production') {\n initProxy(vm);\n } else {\n vm._renderProxy = vm;\n }\n // expose real self\n vm._self = vm;\n initLifecycle(vm);\n initEvents(vm);\n initRender(vm);\n callHook(vm, 'beforeCreate');\n initInjections(vm); // resolve injections before data/props\n initState(vm);\n initProvide(vm); // resolve provide after data/props\n callHook(vm, 'created');\n\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\n vm._name = formatComponentName(vm, false);\n mark(endTag);\n measure((\"vue \" + (vm._name) + \" init\"), startTag, endTag);\n }\n\n if (vm.$options.el) {\n vm.$mount(vm.$options.el);\n }\n };\n}\n\nfunction initInternalComponent (vm, options) {\n var opts = vm.$options = Object.create(vm.constructor.options);\n // doing this because it's faster than dynamic enumeration.\n var parentVnode = options._parentVnode;\n opts.parent = options.parent;\n opts._parentVnode = parentVnode;\n opts._parentElm = options._parentElm;\n opts._refElm = options._refElm;\n\n var vnodeComponentOptions = parentVnode.componentOptions;\n opts.propsData = vnodeComponentOptions.propsData;\n opts._parentListeners = vnodeComponentOptions.listeners;\n opts._renderChildren = vnodeComponentOptions.children;\n opts._componentTag = vnodeComponentOptions.tag;\n\n if (options.render) {\n opts.render = options.render;\n opts.staticRenderFns = options.staticRenderFns;\n }\n}\n\nfunction resolveConstructorOptions (Ctor) {\n var options = Ctor.options;\n if (Ctor.super) {\n var superOptions = resolveConstructorOptions(Ctor.super);\n var cachedSuperOptions = Ctor.superOptions;\n if (superOptions !== cachedSuperOptions) {\n // super option changed,\n // need to resolve new options.\n Ctor.superOptions = superOptions;\n // check if there are any late-modified/attached options (#4976)\n var modifiedOptions = resolveModifiedOptions(Ctor);\n // update base extend options\n if (modifiedOptions) {\n extend(Ctor.extendOptions, modifiedOptions);\n }\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\n if (options.name) {\n options.components[options.name] = Ctor;\n }\n }\n }\n return options\n}\n\nfunction resolveModifiedOptions (Ctor) {\n var modified;\n var latest = Ctor.options;\n var extended = Ctor.extendOptions;\n var sealed = Ctor.sealedOptions;\n for (var key in latest) {\n if (latest[key] !== sealed[key]) {\n if (!modified) { modified = {}; }\n modified[key] = dedupe(latest[key], extended[key], sealed[key]);\n }\n }\n return modified\n}\n\nfunction dedupe (latest, extended, sealed) {\n // compare latest and sealed to ensure lifecycle hooks won't be duplicated\n // between merges\n if (Array.isArray(latest)) {\n var res = [];\n sealed = Array.isArray(sealed) ? sealed : [sealed];\n extended = Array.isArray(extended) ? extended : [extended];\n for (var i = 0; i < latest.length; i++) {\n // push original options and not sealed options to exclude duplicated options\n if (extended.indexOf(latest[i]) >= 0 || sealed.indexOf(latest[i]) < 0) {\n res.push(latest[i]);\n }\n }\n return res\n } else {\n return latest\n }\n}\n\nfunction Vue (options) {\n if (process.env.NODE_ENV !== 'production' &&\n !(this instanceof Vue)\n ) {\n warn('Vue is a constructor and should be called with the `new` keyword');\n }\n this._init(options);\n}\n\ninitMixin(Vue);\nstateMixin(Vue);\neventsMixin(Vue);\nlifecycleMixin(Vue);\nrenderMixin(Vue);\n\n/* */\n\nfunction initUse (Vue) {\n Vue.use = function (plugin) {\n var installedPlugins = (this._installedPlugins || (this._installedPlugins = []));\n if (installedPlugins.indexOf(plugin) > -1) {\n return this\n }\n\n // additional parameters\n var args = toArray(arguments, 1);\n args.unshift(this);\n if (typeof plugin.install === 'function') {\n plugin.install.apply(plugin, args);\n } else if (typeof plugin === 'function') {\n plugin.apply(null, args);\n }\n installedPlugins.push(plugin);\n return this\n };\n}\n\n/* */\n\nfunction initMixin$1 (Vue) {\n Vue.mixin = function (mixin) {\n this.options = mergeOptions(this.options, mixin);\n return this\n };\n}\n\n/* */\n\nfunction initExtend (Vue) {\n /**\n * Each instance constructor, including Vue, has a unique\n * cid. This enables us to create wrapped \"child\n * constructors\" for prototypal inheritance and cache them.\n */\n Vue.cid = 0;\n var cid = 1;\n\n /**\n * Class inheritance\n */\n Vue.extend = function (extendOptions) {\n extendOptions = extendOptions || {};\n var Super = this;\n var SuperId = Super.cid;\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\n if (cachedCtors[SuperId]) {\n return cachedCtors[SuperId]\n }\n\n var name = extendOptions.name || Super.options.name;\n if (process.env.NODE_ENV !== 'production' && name) {\n validateComponentName(name);\n }\n\n var Sub = function VueComponent (options) {\n this._init(options);\n };\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.cid = cid++;\n Sub.options = mergeOptions(\n Super.options,\n extendOptions\n );\n Sub['super'] = Super;\n\n // For props and computed properties, we define the proxy getters on\n // the Vue instances at extension time, on the extended prototype. This\n // avoids Object.defineProperty calls for each instance created.\n if (Sub.options.props) {\n initProps$1(Sub);\n }\n if (Sub.options.computed) {\n initComputed$1(Sub);\n }\n\n // allow further extension/mixin/plugin usage\n Sub.extend = Super.extend;\n Sub.mixin = Super.mixin;\n Sub.use = Super.use;\n\n // create asset registers, so extended classes\n // can have their private assets too.\n ASSET_TYPES.forEach(function (type) {\n Sub[type] = Super[type];\n });\n // enable recursive self-lookup\n if (name) {\n Sub.options.components[name] = Sub;\n }\n\n // keep a reference to the super options at extension time.\n // later at instantiation we can check if Super's options have\n // been updated.\n Sub.superOptions = Super.options;\n Sub.extendOptions = extendOptions;\n Sub.sealedOptions = extend({}, Sub.options);\n\n // cache constructor\n cachedCtors[SuperId] = Sub;\n return Sub\n };\n}\n\nfunction initProps$1 (Comp) {\n var props = Comp.options.props;\n for (var key in props) {\n proxy(Comp.prototype, \"_props\", key);\n }\n}\n\nfunction initComputed$1 (Comp) {\n var computed = Comp.options.computed;\n for (var key in computed) {\n defineComputed(Comp.prototype, key, computed[key]);\n }\n}\n\n/* */\n\nfunction initAssetRegisters (Vue) {\n /**\n * Create asset registration methods.\n */\n ASSET_TYPES.forEach(function (type) {\n Vue[type] = function (\n id,\n definition\n ) {\n if (!definition) {\n return this.options[type + 's'][id]\n } else {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\n validateComponentName(id);\n }\n if (type === 'component' && isPlainObject(definition)) {\n definition.name = definition.name || id;\n definition = this.options._base.extend(definition);\n }\n if (type === 'directive' && typeof definition === 'function') {\n definition = { bind: definition, update: definition };\n }\n this.options[type + 's'][id] = definition;\n return definition\n }\n };\n });\n}\n\n/* */\n\nfunction getComponentName (opts) {\n return opts && (opts.Ctor.options.name || opts.tag)\n}\n\nfunction matches (pattern, name) {\n if (Array.isArray(pattern)) {\n return pattern.indexOf(name) > -1\n } else if (typeof pattern === 'string') {\n return pattern.split(',').indexOf(name) > -1\n } else if (isRegExp(pattern)) {\n return pattern.test(name)\n }\n /* istanbul ignore next */\n return false\n}\n\nfunction pruneCache (keepAliveInstance, filter) {\n var cache = keepAliveInstance.cache;\n var keys = keepAliveInstance.keys;\n var _vnode = keepAliveInstance._vnode;\n for (var key in cache) {\n var cachedNode = cache[key];\n if (cachedNode) {\n var name = getComponentName(cachedNode.componentOptions);\n if (name && !filter(name)) {\n pruneCacheEntry(cache, key, keys, _vnode);\n }\n }\n }\n}\n\nfunction pruneCacheEntry (\n cache,\n key,\n keys,\n current\n) {\n var cached$$1 = cache[key];\n if (cached$$1 && (!current || cached$$1.tag !== current.tag)) {\n cached$$1.componentInstance.$destroy();\n }\n cache[key] = null;\n remove(keys, key);\n}\n\nvar patternTypes = [String, RegExp, Array];\n\nvar KeepAlive = {\n name: 'keep-alive',\n abstract: true,\n\n props: {\n include: patternTypes,\n exclude: patternTypes,\n max: [String, Number]\n },\n\n created: function created () {\n this.cache = Object.create(null);\n this.keys = [];\n },\n\n destroyed: function destroyed () {\n var this$1 = this;\n\n for (var key in this$1.cache) {\n pruneCacheEntry(this$1.cache, key, this$1.keys);\n }\n },\n\n mounted: function mounted () {\n var this$1 = this;\n\n this.$watch('include', function (val) {\n pruneCache(this$1, function (name) { return matches(val, name); });\n });\n this.$watch('exclude', function (val) {\n pruneCache(this$1, function (name) { return !matches(val, name); });\n });\n },\n\n render: function render () {\n var slot = this.$slots.default;\n var vnode = getFirstComponentChild(slot);\n var componentOptions = vnode && vnode.componentOptions;\n if (componentOptions) {\n // check pattern\n var name = getComponentName(componentOptions);\n var ref = this;\n var include = ref.include;\n var exclude = ref.exclude;\n if (\n // not included\n (include && (!name || !matches(include, name))) ||\n // excluded\n (exclude && name && matches(exclude, name))\n ) {\n return vnode\n }\n\n var ref$1 = this;\n var cache = ref$1.cache;\n var keys = ref$1.keys;\n var key = vnode.key == null\n // same constructor may get registered as different local components\n // so cid alone is not enough (#3269)\n ? componentOptions.Ctor.cid + (componentOptions.tag ? (\"::\" + (componentOptions.tag)) : '')\n : vnode.key;\n if (cache[key]) {\n vnode.componentInstance = cache[key].componentInstance;\n // make current key freshest\n remove(keys, key);\n keys.push(key);\n } else {\n cache[key] = vnode;\n keys.push(key);\n // prune oldest entry\n if (this.max && keys.length > parseInt(this.max)) {\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\n }\n }\n\n vnode.data.keepAlive = true;\n }\n return vnode || (slot && slot[0])\n }\n}\n\nvar builtInComponents = {\n KeepAlive: KeepAlive\n}\n\n/* */\n\nfunction initGlobalAPI (Vue) {\n // config\n var configDef = {};\n configDef.get = function () { return config; };\n if (process.env.NODE_ENV !== 'production') {\n configDef.set = function () {\n warn(\n 'Do not replace the Vue.config object, set individual fields instead.'\n );\n };\n }\n Object.defineProperty(Vue, 'config', configDef);\n\n // exposed util methods.\n // NOTE: these are not considered part of the public API - avoid relying on\n // them unless you are aware of the risk.\n Vue.util = {\n warn: warn,\n extend: extend,\n mergeOptions: mergeOptions,\n defineReactive: defineReactive\n };\n\n Vue.set = set;\n Vue.delete = del;\n Vue.nextTick = nextTick;\n\n Vue.options = Object.create(null);\n ASSET_TYPES.forEach(function (type) {\n Vue.options[type + 's'] = Object.create(null);\n });\n\n // this is used to identify the \"base\" constructor to extend all plain-object\n // components with in Weex's multi-instance scenarios.\n Vue.options._base = Vue;\n\n extend(Vue.options.components, builtInComponents);\n\n initUse(Vue);\n initMixin$1(Vue);\n initExtend(Vue);\n initAssetRegisters(Vue);\n}\n\ninitGlobalAPI(Vue);\n\nObject.defineProperty(Vue.prototype, '$isServer', {\n get: isServerRendering\n});\n\nObject.defineProperty(Vue.prototype, '$ssrContext', {\n get: function get () {\n /* istanbul ignore next */\n return this.$vnode && this.$vnode.ssrContext\n }\n});\n\n// expose FunctionalRenderContext for ssr runtime helper installation\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\n value: FunctionalRenderContext\n});\n\nVue.version = '2.5.16';\n\n/* */\n\n// these are reserved for web because they are directly compiled away\n// during template compilation\nvar isReservedAttr = makeMap('style,class');\n\n// attributes that should be using props for binding\nvar acceptValue = makeMap('input,textarea,option,select,progress');\nvar mustUseProp = function (tag, type, attr) {\n return (\n (attr === 'value' && acceptValue(tag)) && type !== 'button' ||\n (attr === 'selected' && tag === 'option') ||\n (attr === 'checked' && tag === 'input') ||\n (attr === 'muted' && tag === 'video')\n )\n};\n\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\n\nvar isBooleanAttr = makeMap(\n 'allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\n 'required,reversed,scoped,seamless,selected,sortable,translate,' +\n 'truespeed,typemustmatch,visible'\n);\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\n\nvar isXlink = function (name) {\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink'\n};\n\nvar getXlinkProp = function (name) {\n return isXlink(name) ? name.slice(6, name.length) : ''\n};\n\nvar isFalsyAttrValue = function (val) {\n return val == null || val === false\n};\n\n/* */\n\nfunction genClassForVnode (vnode) {\n var data = vnode.data;\n var parentNode = vnode;\n var childNode = vnode;\n while (isDef(childNode.componentInstance)) {\n childNode = childNode.componentInstance._vnode;\n if (childNode && childNode.data) {\n data = mergeClassData(childNode.data, data);\n }\n }\n while (isDef(parentNode = parentNode.parent)) {\n if (parentNode && parentNode.data) {\n data = mergeClassData(data, parentNode.data);\n }\n }\n return renderClass(data.staticClass, data.class)\n}\n\nfunction mergeClassData (child, parent) {\n return {\n staticClass: concat(child.staticClass, parent.staticClass),\n class: isDef(child.class)\n ? [child.class, parent.class]\n : parent.class\n }\n}\n\nfunction renderClass (\n staticClass,\n dynamicClass\n) {\n if (isDef(staticClass) || isDef(dynamicClass)) {\n return concat(staticClass, stringifyClass(dynamicClass))\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction concat (a, b) {\n return a ? b ? (a + ' ' + b) : a : (b || '')\n}\n\nfunction stringifyClass (value) {\n if (Array.isArray(value)) {\n return stringifyArray(value)\n }\n if (isObject(value)) {\n return stringifyObject(value)\n }\n if (typeof value === 'string') {\n return value\n }\n /* istanbul ignore next */\n return ''\n}\n\nfunction stringifyArray (value) {\n var res = '';\n var stringified;\n for (var i = 0, l = value.length; i < l; i++) {\n if (isDef(stringified = stringifyClass(value[i])) && stringified !== '') {\n if (res) { res += ' '; }\n res += stringified;\n }\n }\n return res\n}\n\nfunction stringifyObject (value) {\n var res = '';\n for (var key in value) {\n if (value[key]) {\n if (res) { res += ' '; }\n res += key;\n }\n }\n return res\n}\n\n/* */\n\nvar namespaceMap = {\n svg: 'http://www.w3.org/2000/svg',\n math: 'http://www.w3.org/1998/Math/MathML'\n};\n\nvar isHTMLTag = makeMap(\n 'html,body,base,head,link,meta,style,title,' +\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\n 'output,progress,select,textarea,' +\n 'details,dialog,menu,menuitem,summary,' +\n 'content,element,shadow,template,blockquote,iframe,tfoot'\n);\n\n// this map is intentionally selective, only covering SVG elements that may\n// contain child elements.\nvar isSVG = makeMap(\n 'svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\n 'foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view',\n true\n);\n\n\n\nvar isReservedTag = function (tag) {\n return isHTMLTag(tag) || isSVG(tag)\n};\n\nfunction getTagNamespace (tag) {\n if (isSVG(tag)) {\n return 'svg'\n }\n // basic support for MathML\n // note it doesn't support other MathML elements being component roots\n if (tag === 'math') {\n return 'math'\n }\n}\n\nvar unknownElementCache = Object.create(null);\nfunction isUnknownElement (tag) {\n /* istanbul ignore if */\n if (!inBrowser) {\n return true\n }\n if (isReservedTag(tag)) {\n return false\n }\n tag = tag.toLowerCase();\n /* istanbul ignore if */\n if (unknownElementCache[tag] != null) {\n return unknownElementCache[tag]\n }\n var el = document.createElement(tag);\n if (tag.indexOf('-') > -1) {\n // http://stackoverflow.com/a/28210364/1070244\n return (unknownElementCache[tag] = (\n el.constructor === window.HTMLUnknownElement ||\n el.constructor === window.HTMLElement\n ))\n } else {\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()))\n }\n}\n\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/* */\n\n/**\n * Query an element selector if it's not an element already.\n */\nfunction query (el) {\n if (typeof el === 'string') {\n var selected = document.querySelector(el);\n if (!selected) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Cannot find element: ' + el\n );\n return document.createElement('div')\n }\n return selected\n } else {\n return el\n }\n}\n\n/* */\n\nfunction createElement$1 (tagName, vnode) {\n var elm = document.createElement(tagName);\n if (tagName !== 'select') {\n return elm\n }\n // false or null will remove the attribute but undefined will not\n if (vnode.data && vnode.data.attrs && vnode.data.attrs.multiple !== undefined) {\n elm.setAttribute('multiple', 'multiple');\n }\n return elm\n}\n\nfunction createElementNS (namespace, tagName) {\n return document.createElementNS(namespaceMap[namespace], tagName)\n}\n\nfunction createTextNode (text) {\n return document.createTextNode(text)\n}\n\nfunction createComment (text) {\n return document.createComment(text)\n}\n\nfunction insertBefore (parentNode, newNode, referenceNode) {\n parentNode.insertBefore(newNode, referenceNode);\n}\n\nfunction removeChild (node, child) {\n node.removeChild(child);\n}\n\nfunction appendChild (node, child) {\n node.appendChild(child);\n}\n\nfunction parentNode (node) {\n return node.parentNode\n}\n\nfunction nextSibling (node) {\n return node.nextSibling\n}\n\nfunction tagName (node) {\n return node.tagName\n}\n\nfunction setTextContent (node, text) {\n node.textContent = text;\n}\n\nfunction setStyleScope (node, scopeId) {\n node.setAttribute(scopeId, '');\n}\n\n\nvar nodeOps = Object.freeze({\n\tcreateElement: createElement$1,\n\tcreateElementNS: createElementNS,\n\tcreateTextNode: createTextNode,\n\tcreateComment: createComment,\n\tinsertBefore: insertBefore,\n\tremoveChild: removeChild,\n\tappendChild: appendChild,\n\tparentNode: parentNode,\n\tnextSibling: nextSibling,\n\ttagName: tagName,\n\tsetTextContent: setTextContent,\n\tsetStyleScope: setStyleScope\n});\n\n/* */\n\nvar ref = {\n create: function create (_, vnode) {\n registerRef(vnode);\n },\n update: function update (oldVnode, vnode) {\n if (oldVnode.data.ref !== vnode.data.ref) {\n registerRef(oldVnode, true);\n registerRef(vnode);\n }\n },\n destroy: function destroy (vnode) {\n registerRef(vnode, true);\n }\n}\n\nfunction registerRef (vnode, isRemoval) {\n var key = vnode.data.ref;\n if (!isDef(key)) { return }\n\n var vm = vnode.context;\n var ref = vnode.componentInstance || vnode.elm;\n var refs = vm.$refs;\n if (isRemoval) {\n if (Array.isArray(refs[key])) {\n remove(refs[key], ref);\n } else if (refs[key] === ref) {\n refs[key] = undefined;\n }\n } else {\n if (vnode.data.refInFor) {\n if (!Array.isArray(refs[key])) {\n refs[key] = [ref];\n } else if (refs[key].indexOf(ref) < 0) {\n // $flow-disable-line\n refs[key].push(ref);\n }\n } else {\n refs[key] = ref;\n }\n }\n}\n\n/**\n * Virtual DOM patching algorithm based on Snabbdom by\n * Simon Friis Vindum (@paldepind)\n * Licensed under the MIT License\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\n *\n * modified by Evan You (@yyx990803)\n *\n * Not type-checking this because this file is perf-critical and the cost\n * of making flow understand it is not worth it.\n */\n\nvar emptyNode = new VNode('', {}, []);\n\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\n\nfunction sameVnode (a, b) {\n return (\n a.key === b.key && (\n (\n a.tag === b.tag &&\n a.isComment === b.isComment &&\n isDef(a.data) === isDef(b.data) &&\n sameInputType(a, b)\n ) || (\n isTrue(a.isAsyncPlaceholder) &&\n a.asyncFactory === b.asyncFactory &&\n isUndef(b.asyncFactory.error)\n )\n )\n )\n}\n\nfunction sameInputType (a, b) {\n if (a.tag !== 'input') { return true }\n var i;\n var typeA = isDef(i = a.data) && isDef(i = i.attrs) && i.type;\n var typeB = isDef(i = b.data) && isDef(i = i.attrs) && i.type;\n return typeA === typeB || isTextInputType(typeA) && isTextInputType(typeB)\n}\n\nfunction createKeyToOldIdx (children, beginIdx, endIdx) {\n var i, key;\n var map = {};\n for (i = beginIdx; i <= endIdx; ++i) {\n key = children[i].key;\n if (isDef(key)) { map[key] = i; }\n }\n return map\n}\n\nfunction createPatchFunction (backend) {\n var i, j;\n var cbs = {};\n\n var modules = backend.modules;\n var nodeOps = backend.nodeOps;\n\n for (i = 0; i < hooks.length; ++i) {\n cbs[hooks[i]] = [];\n for (j = 0; j < modules.length; ++j) {\n if (isDef(modules[j][hooks[i]])) {\n cbs[hooks[i]].push(modules[j][hooks[i]]);\n }\n }\n }\n\n function emptyNodeAt (elm) {\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm)\n }\n\n function createRmCb (childElm, listeners) {\n function remove () {\n if (--remove.listeners === 0) {\n removeNode(childElm);\n }\n }\n remove.listeners = listeners;\n return remove\n }\n\n function removeNode (el) {\n var parent = nodeOps.parentNode(el);\n // element may have already been removed due to v-html / v-text\n if (isDef(parent)) {\n nodeOps.removeChild(parent, el);\n }\n }\n\n function isUnknownElement$$1 (vnode, inVPre) {\n return (\n !inVPre &&\n !vnode.ns &&\n !(\n config.ignoredElements.length &&\n config.ignoredElements.some(function (ignore) {\n return isRegExp(ignore)\n ? ignore.test(vnode.tag)\n : ignore === vnode.tag\n })\n ) &&\n config.isUnknownElement(vnode.tag)\n )\n }\n\n var creatingElmInVPre = 0;\n\n function createElm (\n vnode,\n insertedVnodeQueue,\n parentElm,\n refElm,\n nested,\n ownerArray,\n index\n ) {\n if (isDef(vnode.elm) && isDef(ownerArray)) {\n // This vnode was used in a previous render!\n // now it's used as a new node, overwriting its elm would cause\n // potential patch errors down the road when it's used as an insertion\n // reference node. Instead, we clone the node on-demand before creating\n // associated DOM element for it.\n vnode = ownerArray[index] = cloneVNode(vnode);\n }\n\n vnode.isRootInsert = !nested; // for transition enter check\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\n return\n }\n\n var data = vnode.data;\n var children = vnode.children;\n var tag = vnode.tag;\n if (isDef(tag)) {\n if (process.env.NODE_ENV !== 'production') {\n if (data && data.pre) {\n creatingElmInVPre++;\n }\n if (isUnknownElement$$1(vnode, creatingElmInVPre)) {\n warn(\n 'Unknown custom element: <' + tag + '> - did you ' +\n 'register the component correctly? For recursive components, ' +\n 'make sure to provide the \"name\" option.',\n vnode.context\n );\n }\n }\n\n vnode.elm = vnode.ns\n ? nodeOps.createElementNS(vnode.ns, tag)\n : nodeOps.createElement(tag, vnode);\n setScope(vnode);\n\n /* istanbul ignore if */\n {\n createChildren(vnode, children, insertedVnodeQueue);\n if (isDef(data)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n }\n insert(parentElm, vnode.elm, refElm);\n }\n\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\n creatingElmInVPre--;\n }\n } else if (isTrue(vnode.isComment)) {\n vnode.elm = nodeOps.createComment(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n } else {\n vnode.elm = nodeOps.createTextNode(vnode.text);\n insert(parentElm, vnode.elm, refElm);\n }\n }\n\n function createComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i = vnode.data;\n if (isDef(i)) {\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\n if (isDef(i = i.hook) && isDef(i = i.init)) {\n i(vnode, false /* hydrating */, parentElm, refElm);\n }\n // after calling the init hook, if the vnode is a child component\n // it should've created a child instance and mounted it. the child\n // component also has set the placeholder vnode's elm.\n // in that case we can just return the element and be done.\n if (isDef(vnode.componentInstance)) {\n initComponent(vnode, insertedVnodeQueue);\n if (isTrue(isReactivated)) {\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\n }\n return true\n }\n }\n }\n\n function initComponent (vnode, insertedVnodeQueue) {\n if (isDef(vnode.data.pendingInsert)) {\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\n vnode.data.pendingInsert = null;\n }\n vnode.elm = vnode.componentInstance.$el;\n if (isPatchable(vnode)) {\n invokeCreateHooks(vnode, insertedVnodeQueue);\n setScope(vnode);\n } else {\n // empty component root.\n // skip all element-related modules except for ref (#3455)\n registerRef(vnode);\n // make sure to invoke the insert hook\n insertedVnodeQueue.push(vnode);\n }\n }\n\n function reactivateComponent (vnode, insertedVnodeQueue, parentElm, refElm) {\n var i;\n // hack for #4339: a reactivated component with inner transition\n // does not trigger because the inner node's created hooks are not called\n // again. It's not ideal to involve module-specific logic in here but\n // there doesn't seem to be a better way to do it.\n var innerNode = vnode;\n while (innerNode.componentInstance) {\n innerNode = innerNode.componentInstance._vnode;\n if (isDef(i = innerNode.data) && isDef(i = i.transition)) {\n for (i = 0; i < cbs.activate.length; ++i) {\n cbs.activate[i](emptyNode, innerNode);\n }\n insertedVnodeQueue.push(innerNode);\n break\n }\n }\n // unlike a newly created component,\n // a reactivated keep-alive component doesn't insert itself\n insert(parentElm, vnode.elm, refElm);\n }\n\n function insert (parent, elm, ref$$1) {\n if (isDef(parent)) {\n if (isDef(ref$$1)) {\n if (ref$$1.parentNode === parent) {\n nodeOps.insertBefore(parent, elm, ref$$1);\n }\n } else {\n nodeOps.appendChild(parent, elm);\n }\n }\n }\n\n function createChildren (vnode, children, insertedVnodeQueue) {\n if (Array.isArray(children)) {\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(children);\n }\n for (var i = 0; i < children.length; ++i) {\n createElm(children[i], insertedVnodeQueue, vnode.elm, null, true, children, i);\n }\n } else if (isPrimitive(vnode.text)) {\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\n }\n }\n\n function isPatchable (vnode) {\n while (vnode.componentInstance) {\n vnode = vnode.componentInstance._vnode;\n }\n return isDef(vnode.tag)\n }\n\n function invokeCreateHooks (vnode, insertedVnodeQueue) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, vnode);\n }\n i = vnode.data.hook; // Reuse variable\n if (isDef(i)) {\n if (isDef(i.create)) { i.create(emptyNode, vnode); }\n if (isDef(i.insert)) { insertedVnodeQueue.push(vnode); }\n }\n }\n\n // set scope id attribute for scoped CSS.\n // this is implemented as a special case to avoid the overhead\n // of going through the normal attribute patching process.\n function setScope (vnode) {\n var i;\n if (isDef(i = vnode.fnScopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n } else {\n var ancestor = vnode;\n while (ancestor) {\n if (isDef(i = ancestor.context) && isDef(i = i.$options._scopeId)) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n ancestor = ancestor.parent;\n }\n }\n // for slot content they should also get the scopeId from the host instance.\n if (isDef(i = activeInstance) &&\n i !== vnode.context &&\n i !== vnode.fnContext &&\n isDef(i = i.$options._scopeId)\n ) {\n nodeOps.setStyleScope(vnode.elm, i);\n }\n }\n\n function addVnodes (parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\n for (; startIdx <= endIdx; ++startIdx) {\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\n }\n }\n\n function invokeDestroyHook (vnode) {\n var i, j;\n var data = vnode.data;\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.destroy)) { i(vnode); }\n for (i = 0; i < cbs.destroy.length; ++i) { cbs.destroy[i](vnode); }\n }\n if (isDef(i = vnode.children)) {\n for (j = 0; j < vnode.children.length; ++j) {\n invokeDestroyHook(vnode.children[j]);\n }\n }\n }\n\n function removeVnodes (parentElm, vnodes, startIdx, endIdx) {\n for (; startIdx <= endIdx; ++startIdx) {\n var ch = vnodes[startIdx];\n if (isDef(ch)) {\n if (isDef(ch.tag)) {\n removeAndInvokeRemoveHook(ch);\n invokeDestroyHook(ch);\n } else { // Text node\n removeNode(ch.elm);\n }\n }\n }\n }\n\n function removeAndInvokeRemoveHook (vnode, rm) {\n if (isDef(rm) || isDef(vnode.data)) {\n var i;\n var listeners = cbs.remove.length + 1;\n if (isDef(rm)) {\n // we have a recursively passed down rm callback\n // increase the listeners count\n rm.listeners += listeners;\n } else {\n // directly removing\n rm = createRmCb(vnode.elm, listeners);\n }\n // recursively invoke hooks on child component root node\n if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {\n removeAndInvokeRemoveHook(i, rm);\n }\n for (i = 0; i < cbs.remove.length; ++i) {\n cbs.remove[i](vnode, rm);\n }\n if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {\n i(vnode, rm);\n } else {\n rm();\n }\n } else {\n removeNode(vnode.elm);\n }\n }\n\n function updateChildren (parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\n var oldStartIdx = 0;\n var newStartIdx = 0;\n var oldEndIdx = oldCh.length - 1;\n var oldStartVnode = oldCh[0];\n var oldEndVnode = oldCh[oldEndIdx];\n var newEndIdx = newCh.length - 1;\n var newStartVnode = newCh[0];\n var newEndVnode = newCh[newEndIdx];\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\n\n // removeOnly is a special flag used only by <transition-group>\n // to ensure removed elements stay in correct relative positions\n // during leaving transitions\n var canMove = !removeOnly;\n\n if (process.env.NODE_ENV !== 'production') {\n checkDuplicateKeys(newCh);\n }\n\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (isUndef(oldStartVnode)) {\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\n } else if (isUndef(oldEndVnode)) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (sameVnode(oldStartVnode, newStartVnode)) {\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (sameVnode(oldEndVnode, newEndVnode)) {\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldStartVnode, newEndVnode)) { // Vnode moved right\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (sameVnode(oldEndVnode, newStartVnode)) { // Vnode moved left\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue);\n canMove && nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n if (isUndef(oldKeyToIdx)) { oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); }\n idxInOld = isDef(newStartVnode.key)\n ? oldKeyToIdx[newStartVnode.key]\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\n if (isUndef(idxInOld)) { // New element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n } else {\n vnodeToMove = oldCh[idxInOld];\n if (sameVnode(vnodeToMove, newStartVnode)) {\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue);\n oldCh[idxInOld] = undefined;\n canMove && nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\n } else {\n // same key but different element. treat as new element\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\n }\n }\n newStartVnode = newCh[++newStartIdx];\n }\n }\n if (oldStartIdx > oldEndIdx) {\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);\n }\n }\n\n function checkDuplicateKeys (children) {\n var seenKeys = {};\n for (var i = 0; i < children.length; i++) {\n var vnode = children[i];\n var key = vnode.key;\n if (isDef(key)) {\n if (seenKeys[key]) {\n warn(\n (\"Duplicate keys detected: '\" + key + \"'. This may cause an update error.\"),\n vnode.context\n );\n } else {\n seenKeys[key] = true;\n }\n }\n }\n }\n\n function findIdxInOld (node, oldCh, start, end) {\n for (var i = start; i < end; i++) {\n var c = oldCh[i];\n if (isDef(c) && sameVnode(node, c)) { return i }\n }\n }\n\n function patchVnode (oldVnode, vnode, insertedVnodeQueue, removeOnly) {\n if (oldVnode === vnode) {\n return\n }\n\n var elm = vnode.elm = oldVnode.elm;\n\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\n if (isDef(vnode.asyncFactory.resolved)) {\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\n } else {\n vnode.isAsyncPlaceholder = true;\n }\n return\n }\n\n // reuse element for static trees.\n // note we only do this if the vnode is cloned -\n // if the new node is not cloned it means the render functions have been\n // reset by the hot-reload-api and we need to do a proper re-render.\n if (isTrue(vnode.isStatic) &&\n isTrue(oldVnode.isStatic) &&\n vnode.key === oldVnode.key &&\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))\n ) {\n vnode.componentInstance = oldVnode.componentInstance;\n return\n }\n\n var i;\n var data = vnode.data;\n if (isDef(data) && isDef(i = data.hook) && isDef(i = i.prepatch)) {\n i(oldVnode, vnode);\n }\n\n var oldCh = oldVnode.children;\n var ch = vnode.children;\n if (isDef(data) && isPatchable(vnode)) {\n for (i = 0; i < cbs.update.length; ++i) { cbs.update[i](oldVnode, vnode); }\n if (isDef(i = data.hook) && isDef(i = i.update)) { i(oldVnode, vnode); }\n }\n if (isUndef(vnode.text)) {\n if (isDef(oldCh) && isDef(ch)) {\n if (oldCh !== ch) { updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly); }\n } else if (isDef(ch)) {\n if (isDef(oldVnode.text)) { nodeOps.setTextContent(elm, ''); }\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\n } else if (isDef(oldCh)) {\n removeVnodes(elm, oldCh, 0, oldCh.length - 1);\n } else if (isDef(oldVnode.text)) {\n nodeOps.setTextContent(elm, '');\n }\n } else if (oldVnode.text !== vnode.text) {\n nodeOps.setTextContent(elm, vnode.text);\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.postpatch)) { i(oldVnode, vnode); }\n }\n }\n\n function invokeInsertHook (vnode, queue, initial) {\n // delay insert hooks for component root nodes, invoke them after the\n // element is really inserted\n if (isTrue(initial) && isDef(vnode.parent)) {\n vnode.parent.data.pendingInsert = queue;\n } else {\n for (var i = 0; i < queue.length; ++i) {\n queue[i].data.hook.insert(queue[i]);\n }\n }\n }\n\n var hydrationBailed = false;\n // list of modules that can skip create hook during hydration because they\n // are already rendered on the client or has no need for initialization\n // Note: style is excluded because it relies on initial clone for future\n // deep updates (#7063).\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\n\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\n function hydrate (elm, vnode, insertedVnodeQueue, inVPre) {\n var i;\n var tag = vnode.tag;\n var data = vnode.data;\n var children = vnode.children;\n inVPre = inVPre || (data && data.pre);\n vnode.elm = elm;\n\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\n vnode.isAsyncPlaceholder = true;\n return true\n }\n // assert node match\n if (process.env.NODE_ENV !== 'production') {\n if (!assertNodeMatch(elm, vnode, inVPre)) {\n return false\n }\n }\n if (isDef(data)) {\n if (isDef(i = data.hook) && isDef(i = i.init)) { i(vnode, true /* hydrating */); }\n if (isDef(i = vnode.componentInstance)) {\n // child component. it should have hydrated its own tree.\n initComponent(vnode, insertedVnodeQueue);\n return true\n }\n }\n if (isDef(tag)) {\n if (isDef(children)) {\n // empty element, allow client to pick up and populate children\n if (!elm.hasChildNodes()) {\n createChildren(vnode, children, insertedVnodeQueue);\n } else {\n // v-html and domProps: innerHTML\n if (isDef(i = data) && isDef(i = i.domProps) && isDef(i = i.innerHTML)) {\n if (i !== elm.innerHTML) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('server innerHTML: ', i);\n console.warn('client innerHTML: ', elm.innerHTML);\n }\n return false\n }\n } else {\n // iterate and compare children lists\n var childrenMatch = true;\n var childNode = elm.firstChild;\n for (var i$1 = 0; i$1 < children.length; i$1++) {\n if (!childNode || !hydrate(childNode, children[i$1], insertedVnodeQueue, inVPre)) {\n childrenMatch = false;\n break\n }\n childNode = childNode.nextSibling;\n }\n // if childNode is not null, it means the actual childNodes list is\n // longer than the virtual children list.\n if (!childrenMatch || childNode) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' &&\n typeof console !== 'undefined' &&\n !hydrationBailed\n ) {\n hydrationBailed = true;\n console.warn('Parent: ', elm);\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\n }\n return false\n }\n }\n }\n }\n if (isDef(data)) {\n var fullInvoke = false;\n for (var key in data) {\n if (!isRenderedModule(key)) {\n fullInvoke = true;\n invokeCreateHooks(vnode, insertedVnodeQueue);\n break\n }\n }\n if (!fullInvoke && data['class']) {\n // ensure collecting deps for deep class bindings for future updates\n traverse(data['class']);\n }\n }\n } else if (elm.data !== vnode.text) {\n elm.data = vnode.text;\n }\n return true\n }\n\n function assertNodeMatch (node, vnode, inVPre) {\n if (isDef(vnode.tag)) {\n return vnode.tag.indexOf('vue-component') === 0 || (\n !isUnknownElement$$1(vnode, inVPre) &&\n vnode.tag.toLowerCase() === (node.tagName && node.tagName.toLowerCase())\n )\n } else {\n return node.nodeType === (vnode.isComment ? 8 : 3)\n }\n }\n\n return function patch (oldVnode, vnode, hydrating, removeOnly, parentElm, refElm) {\n if (isUndef(vnode)) {\n if (isDef(oldVnode)) { invokeDestroyHook(oldVnode); }\n return\n }\n\n var isInitialPatch = false;\n var insertedVnodeQueue = [];\n\n if (isUndef(oldVnode)) {\n // empty mount (likely as component), create new root element\n isInitialPatch = true;\n createElm(vnode, insertedVnodeQueue, parentElm, refElm);\n } else {\n var isRealElement = isDef(oldVnode.nodeType);\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\n // patch existing root node\n patchVnode(oldVnode, vnode, insertedVnodeQueue, removeOnly);\n } else {\n if (isRealElement) {\n // mounting to a real element\n // check if this is server-rendered content and if we can perform\n // a successful hydration.\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\n oldVnode.removeAttribute(SSR_ATTR);\n hydrating = true;\n }\n if (isTrue(hydrating)) {\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\n invokeInsertHook(vnode, insertedVnodeQueue, true);\n return oldVnode\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n 'The client-side rendered virtual DOM tree is not matching ' +\n 'server-rendered content. This is likely caused by incorrect ' +\n 'HTML markup, for example nesting block-level elements inside ' +\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\n 'full client-side render.'\n );\n }\n }\n // either not server-rendered, or hydration failed.\n // create an empty node and replace it\n oldVnode = emptyNodeAt(oldVnode);\n }\n\n // replacing existing element\n var oldElm = oldVnode.elm;\n var parentElm$1 = nodeOps.parentNode(oldElm);\n\n // create new node\n createElm(\n vnode,\n insertedVnodeQueue,\n // extremely rare edge case: do not insert if old element is in a\n // leaving transition. Only happens when combining transition +\n // keep-alive + HOCs. (#4590)\n oldElm._leaveCb ? null : parentElm$1,\n nodeOps.nextSibling(oldElm)\n );\n\n // update parent placeholder node element, recursively\n if (isDef(vnode.parent)) {\n var ancestor = vnode.parent;\n var patchable = isPatchable(vnode);\n while (ancestor) {\n for (var i = 0; i < cbs.destroy.length; ++i) {\n cbs.destroy[i](ancestor);\n }\n ancestor.elm = vnode.elm;\n if (patchable) {\n for (var i$1 = 0; i$1 < cbs.create.length; ++i$1) {\n cbs.create[i$1](emptyNode, ancestor);\n }\n // #6513\n // invoke insert hooks that may have been merged by create hooks.\n // e.g. for directives that uses the \"inserted\" hook.\n var insert = ancestor.data.hook.insert;\n if (insert.merged) {\n // start at index 1 to avoid re-invoking component mounted hook\n for (var i$2 = 1; i$2 < insert.fns.length; i$2++) {\n insert.fns[i$2]();\n }\n }\n } else {\n registerRef(ancestor);\n }\n ancestor = ancestor.parent;\n }\n }\n\n // destroy old node\n if (isDef(parentElm$1)) {\n removeVnodes(parentElm$1, [oldVnode], 0, 0);\n } else if (isDef(oldVnode.tag)) {\n invokeDestroyHook(oldVnode);\n }\n }\n }\n\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\n return vnode.elm\n }\n}\n\n/* */\n\nvar directives = {\n create: updateDirectives,\n update: updateDirectives,\n destroy: function unbindDirectives (vnode) {\n updateDirectives(vnode, emptyNode);\n }\n}\n\nfunction updateDirectives (oldVnode, vnode) {\n if (oldVnode.data.directives || vnode.data.directives) {\n _update(oldVnode, vnode);\n }\n}\n\nfunction _update (oldVnode, vnode) {\n var isCreate = oldVnode === emptyNode;\n var isDestroy = vnode === emptyNode;\n var oldDirs = normalizeDirectives$1(oldVnode.data.directives, oldVnode.context);\n var newDirs = normalizeDirectives$1(vnode.data.directives, vnode.context);\n\n var dirsWithInsert = [];\n var dirsWithPostpatch = [];\n\n var key, oldDir, dir;\n for (key in newDirs) {\n oldDir = oldDirs[key];\n dir = newDirs[key];\n if (!oldDir) {\n // new directive, bind\n callHook$1(dir, 'bind', vnode, oldVnode);\n if (dir.def && dir.def.inserted) {\n dirsWithInsert.push(dir);\n }\n } else {\n // existing directive, update\n dir.oldValue = oldDir.value;\n callHook$1(dir, 'update', vnode, oldVnode);\n if (dir.def && dir.def.componentUpdated) {\n dirsWithPostpatch.push(dir);\n }\n }\n }\n\n if (dirsWithInsert.length) {\n var callInsert = function () {\n for (var i = 0; i < dirsWithInsert.length; i++) {\n callHook$1(dirsWithInsert[i], 'inserted', vnode, oldVnode);\n }\n };\n if (isCreate) {\n mergeVNodeHook(vnode, 'insert', callInsert);\n } else {\n callInsert();\n }\n }\n\n if (dirsWithPostpatch.length) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\n callHook$1(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\n }\n });\n }\n\n if (!isCreate) {\n for (key in oldDirs) {\n if (!newDirs[key]) {\n // no longer present, unbind\n callHook$1(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\n }\n }\n }\n}\n\nvar emptyModifiers = Object.create(null);\n\nfunction normalizeDirectives$1 (\n dirs,\n vm\n) {\n var res = Object.create(null);\n if (!dirs) {\n // $flow-disable-line\n return res\n }\n var i, dir;\n for (i = 0; i < dirs.length; i++) {\n dir = dirs[i];\n if (!dir.modifiers) {\n // $flow-disable-line\n dir.modifiers = emptyModifiers;\n }\n res[getRawDirName(dir)] = dir;\n dir.def = resolveAsset(vm.$options, 'directives', dir.name, true);\n }\n // $flow-disable-line\n return res\n}\n\nfunction getRawDirName (dir) {\n return dir.rawName || ((dir.name) + \".\" + (Object.keys(dir.modifiers || {}).join('.')))\n}\n\nfunction callHook$1 (dir, hook, vnode, oldVnode, isDestroy) {\n var fn = dir.def && dir.def[hook];\n if (fn) {\n try {\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\n } catch (e) {\n handleError(e, vnode.context, (\"directive \" + (dir.name) + \" \" + hook + \" hook\"));\n }\n }\n}\n\nvar baseModules = [\n ref,\n directives\n]\n\n/* */\n\nfunction updateAttrs (oldVnode, vnode) {\n var opts = vnode.componentOptions;\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\n return\n }\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\n return\n }\n var key, cur, old;\n var elm = vnode.elm;\n var oldAttrs = oldVnode.data.attrs || {};\n var attrs = vnode.data.attrs || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(attrs.__ob__)) {\n attrs = vnode.data.attrs = extend({}, attrs);\n }\n\n for (key in attrs) {\n cur = attrs[key];\n old = oldAttrs[key];\n if (old !== cur) {\n setAttr(elm, key, cur);\n }\n }\n // #4391: in IE9, setting type can reset value for input[type=radio]\n // #6666: IE/Edge forces progress value down to 1 before setting a max\n /* istanbul ignore if */\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\n setAttr(elm, 'value', attrs.value);\n }\n for (key in oldAttrs) {\n if (isUndef(attrs[key])) {\n if (isXlink(key)) {\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else if (!isEnumeratedAttr(key)) {\n elm.removeAttribute(key);\n }\n }\n }\n}\n\nfunction setAttr (el, key, value) {\n if (el.tagName.indexOf('-') > -1) {\n baseSetAttr(el, key, value);\n } else if (isBooleanAttr(key)) {\n // set attribute for blank value\n // e.g. <option disabled>Select one</option>\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // technically allowfullscreen is a boolean attribute for <iframe>,\n // but Flash expects a value of \"true\" when used on <embed> tag\n value = key === 'allowfullscreen' && el.tagName === 'EMBED'\n ? 'true'\n : key;\n el.setAttribute(key, value);\n }\n } else if (isEnumeratedAttr(key)) {\n el.setAttribute(key, isFalsyAttrValue(value) || value === 'false' ? 'false' : 'true');\n } else if (isXlink(key)) {\n if (isFalsyAttrValue(value)) {\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\n } else {\n el.setAttributeNS(xlinkNS, key, value);\n }\n } else {\n baseSetAttr(el, key, value);\n }\n}\n\nfunction baseSetAttr (el, key, value) {\n if (isFalsyAttrValue(value)) {\n el.removeAttribute(key);\n } else {\n // #7138: IE10 & 11 fires input event when setting placeholder on\n // <textarea>... block the first input event and remove the blocker\n // immediately.\n /* istanbul ignore if */\n if (\n isIE && !isIE9 &&\n el.tagName === 'TEXTAREA' &&\n key === 'placeholder' && !el.__ieph\n ) {\n var blocker = function (e) {\n e.stopImmediatePropagation();\n el.removeEventListener('input', blocker);\n };\n el.addEventListener('input', blocker);\n // $flow-disable-line\n el.__ieph = true; /* IE placeholder patched */\n }\n el.setAttribute(key, value);\n }\n}\n\nvar attrs = {\n create: updateAttrs,\n update: updateAttrs\n}\n\n/* */\n\nfunction updateClass (oldVnode, vnode) {\n var el = vnode.elm;\n var data = vnode.data;\n var oldData = oldVnode.data;\n if (\n isUndef(data.staticClass) &&\n isUndef(data.class) && (\n isUndef(oldData) || (\n isUndef(oldData.staticClass) &&\n isUndef(oldData.class)\n )\n )\n ) {\n return\n }\n\n var cls = genClassForVnode(vnode);\n\n // handle transition classes\n var transitionClass = el._transitionClasses;\n if (isDef(transitionClass)) {\n cls = concat(cls, stringifyClass(transitionClass));\n }\n\n // set the class\n if (cls !== el._prevClass) {\n el.setAttribute('class', cls);\n el._prevClass = cls;\n }\n}\n\nvar klass = {\n create: updateClass,\n update: updateClass\n}\n\n/* */\n\n/* */\n\n\n\n\n\n\n\n\n\n// add a raw attr (use this in preTransforms)\n\n\n\n\n\n\n\n\n// note: this only removes the attr from the Array (attrsList) so that it\n// doesn't get processed by processAttrs.\n// By default it does NOT remove it from the map (attrsMap) because the map is\n// needed during codegen.\n\n/* */\n\n/**\n * Cross-platform code generation for component v-model\n */\n\n\n/**\n * Cross-platform codegen helper for generating v-model value assignment code.\n */\n\n/* */\n\n// in some cases, the event used has to be determined at runtime\n// so we used some reserved tokens during compile.\nvar RANGE_TOKEN = '__r';\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n/* */\n\n// normalize v-model event tokens that can only be determined at runtime.\n// it's important to place the event as the first in the array because\n// the whole point is ensuring the v-model callback gets called before\n// user-attached handlers.\nfunction normalizeEvents (on) {\n /* istanbul ignore if */\n if (isDef(on[RANGE_TOKEN])) {\n // IE input[type=range] only supports `change` event\n var event = isIE ? 'change' : 'input';\n on[event] = [].concat(on[RANGE_TOKEN], on[event] || []);\n delete on[RANGE_TOKEN];\n }\n // This was originally intended to fix #4521 but no longer necessary\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\n /* istanbul ignore if */\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\n delete on[CHECKBOX_RADIO_TOKEN];\n }\n}\n\nvar target$1;\n\nfunction createOnceHandler (handler, event, capture) {\n var _target = target$1; // save current target element in closure\n return function onceHandler () {\n var res = handler.apply(null, arguments);\n if (res !== null) {\n remove$2(event, onceHandler, capture, _target);\n }\n }\n}\n\nfunction add$1 (\n event,\n handler,\n once$$1,\n capture,\n passive\n) {\n handler = withMacroTask(handler);\n if (once$$1) { handler = createOnceHandler(handler, event, capture); }\n target$1.addEventListener(\n event,\n handler,\n supportsPassive\n ? { capture: capture, passive: passive }\n : capture\n );\n}\n\nfunction remove$2 (\n event,\n handler,\n capture,\n _target\n) {\n (_target || target$1).removeEventListener(\n event,\n handler._withTask || handler,\n capture\n );\n}\n\nfunction updateDOMListeners (oldVnode, vnode) {\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\n return\n }\n var on = vnode.data.on || {};\n var oldOn = oldVnode.data.on || {};\n target$1 = vnode.elm;\n normalizeEvents(on);\n updateListeners(on, oldOn, add$1, remove$2, vnode.context);\n target$1 = undefined;\n}\n\nvar events = {\n create: updateDOMListeners,\n update: updateDOMListeners\n}\n\n/* */\n\nfunction updateDOMProps (oldVnode, vnode) {\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\n return\n }\n var key, cur;\n var elm = vnode.elm;\n var oldProps = oldVnode.data.domProps || {};\n var props = vnode.data.domProps || {};\n // clone observed objects, as the user probably wants to mutate it\n if (isDef(props.__ob__)) {\n props = vnode.data.domProps = extend({}, props);\n }\n\n for (key in oldProps) {\n if (isUndef(props[key])) {\n elm[key] = '';\n }\n }\n for (key in props) {\n cur = props[key];\n // ignore children if the node has textContent or innerHTML,\n // as these will throw away existing DOM nodes and cause removal errors\n // on subsequent patches (#3360)\n if (key === 'textContent' || key === 'innerHTML') {\n if (vnode.children) { vnode.children.length = 0; }\n if (cur === oldProps[key]) { continue }\n // #6601 work around Chrome version <= 55 bug where single textNode\n // replaced by innerHTML/textContent retains its parentNode property\n if (elm.childNodes.length === 1) {\n elm.removeChild(elm.childNodes[0]);\n }\n }\n\n if (key === 'value') {\n // store value as _value as well since\n // non-string values will be stringified\n elm._value = cur;\n // avoid resetting cursor position when value is the same\n var strCur = isUndef(cur) ? '' : String(cur);\n if (shouldUpdateValue(elm, strCur)) {\n elm.value = strCur;\n }\n } else {\n elm[key] = cur;\n }\n }\n}\n\n// check platforms/web/util/attrs.js acceptValue\n\n\nfunction shouldUpdateValue (elm, checkVal) {\n return (!elm.composing && (\n elm.tagName === 'OPTION' ||\n isNotInFocusAndDirty(elm, checkVal) ||\n isDirtyWithModifiers(elm, checkVal)\n ))\n}\n\nfunction isNotInFocusAndDirty (elm, checkVal) {\n // return true when textbox (.number and .trim) loses focus and its value is\n // not equal to the updated value\n var notInFocus = true;\n // #6157\n // work around IE bug when accessing document.activeElement in an iframe\n try { notInFocus = document.activeElement !== elm; } catch (e) {}\n return notInFocus && elm.value !== checkVal\n}\n\nfunction isDirtyWithModifiers (elm, newVal) {\n var value = elm.value;\n var modifiers = elm._vModifiers; // injected by v-model runtime\n if (isDef(modifiers)) {\n if (modifiers.lazy) {\n // inputs with lazy should only be updated when not in focus\n return false\n }\n if (modifiers.number) {\n return toNumber(value) !== toNumber(newVal)\n }\n if (modifiers.trim) {\n return value.trim() !== newVal.trim()\n }\n }\n return value !== newVal\n}\n\nvar domProps = {\n create: updateDOMProps,\n update: updateDOMProps\n}\n\n/* */\n\nvar parseStyleText = cached(function (cssText) {\n var res = {};\n var listDelimiter = /;(?![^(]*\\))/g;\n var propertyDelimiter = /:(.+)/;\n cssText.split(listDelimiter).forEach(function (item) {\n if (item) {\n var tmp = item.split(propertyDelimiter);\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\n }\n });\n return res\n});\n\n// merge static and dynamic style data on the same vnode\nfunction normalizeStyleData (data) {\n var style = normalizeStyleBinding(data.style);\n // static style is pre-processed into an object during compilation\n // and is always a fresh object, so it's safe to merge into it\n return data.staticStyle\n ? extend(data.staticStyle, style)\n : style\n}\n\n// normalize possible array / string values into Object\nfunction normalizeStyleBinding (bindingStyle) {\n if (Array.isArray(bindingStyle)) {\n return toObject(bindingStyle)\n }\n if (typeof bindingStyle === 'string') {\n return parseStyleText(bindingStyle)\n }\n return bindingStyle\n}\n\n/**\n * parent component style should be after child's\n * so that parent component's style could override it\n */\nfunction getStyle (vnode, checkChild) {\n var res = {};\n var styleData;\n\n if (checkChild) {\n var childNode = vnode;\n while (childNode.componentInstance) {\n childNode = childNode.componentInstance._vnode;\n if (\n childNode && childNode.data &&\n (styleData = normalizeStyleData(childNode.data))\n ) {\n extend(res, styleData);\n }\n }\n }\n\n if ((styleData = normalizeStyleData(vnode.data))) {\n extend(res, styleData);\n }\n\n var parentNode = vnode;\n while ((parentNode = parentNode.parent)) {\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\n extend(res, styleData);\n }\n }\n return res\n}\n\n/* */\n\nvar cssVarRE = /^--/;\nvar importantRE = /\\s*!important$/;\nvar setProp = function (el, name, val) {\n /* istanbul ignore if */\n if (cssVarRE.test(name)) {\n el.style.setProperty(name, val);\n } else if (importantRE.test(val)) {\n el.style.setProperty(name, val.replace(importantRE, ''), 'important');\n } else {\n var normalizedName = normalize(name);\n if (Array.isArray(val)) {\n // Support values array created by autoprefixer, e.g.\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\n // Set them one by one, and the browser will only set those it can recognize\n for (var i = 0, len = val.length; i < len; i++) {\n el.style[normalizedName] = val[i];\n }\n } else {\n el.style[normalizedName] = val;\n }\n }\n};\n\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\n\nvar emptyStyle;\nvar normalize = cached(function (prop) {\n emptyStyle = emptyStyle || document.createElement('div').style;\n prop = camelize(prop);\n if (prop !== 'filter' && (prop in emptyStyle)) {\n return prop\n }\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\n for (var i = 0; i < vendorNames.length; i++) {\n var name = vendorNames[i] + capName;\n if (name in emptyStyle) {\n return name\n }\n }\n});\n\nfunction updateStyle (oldVnode, vnode) {\n var data = vnode.data;\n var oldData = oldVnode.data;\n\n if (isUndef(data.staticStyle) && isUndef(data.style) &&\n isUndef(oldData.staticStyle) && isUndef(oldData.style)\n ) {\n return\n }\n\n var cur, name;\n var el = vnode.elm;\n var oldStaticStyle = oldData.staticStyle;\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\n\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\n var oldStyle = oldStaticStyle || oldStyleBinding;\n\n var style = normalizeStyleBinding(vnode.data.style) || {};\n\n // store normalized style under a different key for next diff\n // make sure to clone it if it's reactive, since the user likely wants\n // to mutate it.\n vnode.data.normalizedStyle = isDef(style.__ob__)\n ? extend({}, style)\n : style;\n\n var newStyle = getStyle(vnode, true);\n\n for (name in oldStyle) {\n if (isUndef(newStyle[name])) {\n setProp(el, name, '');\n }\n }\n for (name in newStyle) {\n cur = newStyle[name];\n if (cur !== oldStyle[name]) {\n // ie9 setting to null has no effect, must use empty string\n setProp(el, name, cur == null ? '' : cur);\n }\n }\n}\n\nvar style = {\n create: updateStyle,\n update: updateStyle\n}\n\n/* */\n\n/**\n * Add class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction addClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.add(c); });\n } else {\n el.classList.add(cls);\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n if (cur.indexOf(' ' + cls + ' ') < 0) {\n el.setAttribute('class', (cur + cls).trim());\n }\n }\n}\n\n/**\n * Remove class with compatibility for SVG since classList is not supported on\n * SVG elements in IE\n */\nfunction removeClass (el, cls) {\n /* istanbul ignore if */\n if (!cls || !(cls = cls.trim())) {\n return\n }\n\n /* istanbul ignore else */\n if (el.classList) {\n if (cls.indexOf(' ') > -1) {\n cls.split(/\\s+/).forEach(function (c) { return el.classList.remove(c); });\n } else {\n el.classList.remove(cls);\n }\n if (!el.classList.length) {\n el.removeAttribute('class');\n }\n } else {\n var cur = \" \" + (el.getAttribute('class') || '') + \" \";\n var tar = ' ' + cls + ' ';\n while (cur.indexOf(tar) >= 0) {\n cur = cur.replace(tar, ' ');\n }\n cur = cur.trim();\n if (cur) {\n el.setAttribute('class', cur);\n } else {\n el.removeAttribute('class');\n }\n }\n}\n\n/* */\n\nfunction resolveTransition (def) {\n if (!def) {\n return\n }\n /* istanbul ignore else */\n if (typeof def === 'object') {\n var res = {};\n if (def.css !== false) {\n extend(res, autoCssTransition(def.name || 'v'));\n }\n extend(res, def);\n return res\n } else if (typeof def === 'string') {\n return autoCssTransition(def)\n }\n}\n\nvar autoCssTransition = cached(function (name) {\n return {\n enterClass: (name + \"-enter\"),\n enterToClass: (name + \"-enter-to\"),\n enterActiveClass: (name + \"-enter-active\"),\n leaveClass: (name + \"-leave\"),\n leaveToClass: (name + \"-leave-to\"),\n leaveActiveClass: (name + \"-leave-active\")\n }\n});\n\nvar hasTransition = inBrowser && !isIE9;\nvar TRANSITION = 'transition';\nvar ANIMATION = 'animation';\n\n// Transition property/event sniffing\nvar transitionProp = 'transition';\nvar transitionEndEvent = 'transitionend';\nvar animationProp = 'animation';\nvar animationEndEvent = 'animationend';\nif (hasTransition) {\n /* istanbul ignore if */\n if (window.ontransitionend === undefined &&\n window.onwebkittransitionend !== undefined\n ) {\n transitionProp = 'WebkitTransition';\n transitionEndEvent = 'webkitTransitionEnd';\n }\n if (window.onanimationend === undefined &&\n window.onwebkitanimationend !== undefined\n ) {\n animationProp = 'WebkitAnimation';\n animationEndEvent = 'webkitAnimationEnd';\n }\n}\n\n// binding to window is necessary to make hot reload work in IE in strict mode\nvar raf = inBrowser\n ? window.requestAnimationFrame\n ? window.requestAnimationFrame.bind(window)\n : setTimeout\n : /* istanbul ignore next */ function (fn) { return fn(); };\n\nfunction nextFrame (fn) {\n raf(function () {\n raf(fn);\n });\n}\n\nfunction addTransitionClass (el, cls) {\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\n if (transitionClasses.indexOf(cls) < 0) {\n transitionClasses.push(cls);\n addClass(el, cls);\n }\n}\n\nfunction removeTransitionClass (el, cls) {\n if (el._transitionClasses) {\n remove(el._transitionClasses, cls);\n }\n removeClass(el, cls);\n}\n\nfunction whenTransitionEnds (\n el,\n expectedType,\n cb\n) {\n var ref = getTransitionInfo(el, expectedType);\n var type = ref.type;\n var timeout = ref.timeout;\n var propCount = ref.propCount;\n if (!type) { return cb() }\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\n var ended = 0;\n var end = function () {\n el.removeEventListener(event, onEnd);\n cb();\n };\n var onEnd = function (e) {\n if (e.target === el) {\n if (++ended >= propCount) {\n end();\n }\n }\n };\n setTimeout(function () {\n if (ended < propCount) {\n end();\n }\n }, timeout + 1);\n el.addEventListener(event, onEnd);\n}\n\nvar transformRE = /\\b(transform|all)(,|$)/;\n\nfunction getTransitionInfo (el, expectedType) {\n var styles = window.getComputedStyle(el);\n var transitionDelays = styles[transitionProp + 'Delay'].split(', ');\n var transitionDurations = styles[transitionProp + 'Duration'].split(', ');\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\n var animationDelays = styles[animationProp + 'Delay'].split(', ');\n var animationDurations = styles[animationProp + 'Duration'].split(', ');\n var animationTimeout = getTimeout(animationDelays, animationDurations);\n\n var type;\n var timeout = 0;\n var propCount = 0;\n /* istanbul ignore if */\n if (expectedType === TRANSITION) {\n if (transitionTimeout > 0) {\n type = TRANSITION;\n timeout = transitionTimeout;\n propCount = transitionDurations.length;\n }\n } else if (expectedType === ANIMATION) {\n if (animationTimeout > 0) {\n type = ANIMATION;\n timeout = animationTimeout;\n propCount = animationDurations.length;\n }\n } else {\n timeout = Math.max(transitionTimeout, animationTimeout);\n type = timeout > 0\n ? transitionTimeout > animationTimeout\n ? TRANSITION\n : ANIMATION\n : null;\n propCount = type\n ? type === TRANSITION\n ? transitionDurations.length\n : animationDurations.length\n : 0;\n }\n var hasTransform =\n type === TRANSITION &&\n transformRE.test(styles[transitionProp + 'Property']);\n return {\n type: type,\n timeout: timeout,\n propCount: propCount,\n hasTransform: hasTransform\n }\n}\n\nfunction getTimeout (delays, durations) {\n /* istanbul ignore next */\n while (delays.length < durations.length) {\n delays = delays.concat(delays);\n }\n\n return Math.max.apply(null, durations.map(function (d, i) {\n return toMs(d) + toMs(delays[i])\n }))\n}\n\nfunction toMs (s) {\n return Number(s.slice(0, -1)) * 1000\n}\n\n/* */\n\nfunction enter (vnode, toggleDisplay) {\n var el = vnode.elm;\n\n // call leave callback now\n if (isDef(el._leaveCb)) {\n el._leaveCb.cancelled = true;\n el._leaveCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data)) {\n return\n }\n\n /* istanbul ignore if */\n if (isDef(el._enterCb) || el.nodeType !== 1) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var enterClass = data.enterClass;\n var enterToClass = data.enterToClass;\n var enterActiveClass = data.enterActiveClass;\n var appearClass = data.appearClass;\n var appearToClass = data.appearToClass;\n var appearActiveClass = data.appearActiveClass;\n var beforeEnter = data.beforeEnter;\n var enter = data.enter;\n var afterEnter = data.afterEnter;\n var enterCancelled = data.enterCancelled;\n var beforeAppear = data.beforeAppear;\n var appear = data.appear;\n var afterAppear = data.afterAppear;\n var appearCancelled = data.appearCancelled;\n var duration = data.duration;\n\n // activeInstance will always be the <transition> component managing this\n // transition. One edge case to check is when the <transition> is placed\n // as the root node of a child component. In that case we need to check\n // <transition>'s parent for appear check.\n var context = activeInstance;\n var transitionNode = activeInstance.$vnode;\n while (transitionNode && transitionNode.parent) {\n transitionNode = transitionNode.parent;\n context = transitionNode.context;\n }\n\n var isAppear = !context._isMounted || !vnode.isRootInsert;\n\n if (isAppear && !appear && appear !== '') {\n return\n }\n\n var startClass = isAppear && appearClass\n ? appearClass\n : enterClass;\n var activeClass = isAppear && appearActiveClass\n ? appearActiveClass\n : enterActiveClass;\n var toClass = isAppear && appearToClass\n ? appearToClass\n : enterToClass;\n\n var beforeEnterHook = isAppear\n ? (beforeAppear || beforeEnter)\n : beforeEnter;\n var enterHook = isAppear\n ? (typeof appear === 'function' ? appear : enter)\n : enter;\n var afterEnterHook = isAppear\n ? (afterAppear || afterEnter)\n : afterEnter;\n var enterCancelledHook = isAppear\n ? (appearCancelled || enterCancelled)\n : enterCancelled;\n\n var explicitEnterDuration = toNumber(\n isObject(duration)\n ? duration.enter\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\n checkDuration(explicitEnterDuration, 'enter', vnode);\n }\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(enterHook);\n\n var cb = el._enterCb = once(function () {\n if (expectsCSS) {\n removeTransitionClass(el, toClass);\n removeTransitionClass(el, activeClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, startClass);\n }\n enterCancelledHook && enterCancelledHook(el);\n } else {\n afterEnterHook && afterEnterHook(el);\n }\n el._enterCb = null;\n });\n\n if (!vnode.data.show) {\n // remove pending leave element on enter by injecting an insert hook\n mergeVNodeHook(vnode, 'insert', function () {\n var parent = el.parentNode;\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\n if (pendingNode &&\n pendingNode.tag === vnode.tag &&\n pendingNode.elm._leaveCb\n ) {\n pendingNode.elm._leaveCb();\n }\n enterHook && enterHook(el, cb);\n });\n }\n\n // start enter transition\n beforeEnterHook && beforeEnterHook(el);\n if (expectsCSS) {\n addTransitionClass(el, startClass);\n addTransitionClass(el, activeClass);\n nextFrame(function () {\n removeTransitionClass(el, startClass);\n if (!cb.cancelled) {\n addTransitionClass(el, toClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitEnterDuration)) {\n setTimeout(cb, explicitEnterDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n\n if (vnode.data.show) {\n toggleDisplay && toggleDisplay();\n enterHook && enterHook(el, cb);\n }\n\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n}\n\nfunction leave (vnode, rm) {\n var el = vnode.elm;\n\n // call enter callback now\n if (isDef(el._enterCb)) {\n el._enterCb.cancelled = true;\n el._enterCb();\n }\n\n var data = resolveTransition(vnode.data.transition);\n if (isUndef(data) || el.nodeType !== 1) {\n return rm()\n }\n\n /* istanbul ignore if */\n if (isDef(el._leaveCb)) {\n return\n }\n\n var css = data.css;\n var type = data.type;\n var leaveClass = data.leaveClass;\n var leaveToClass = data.leaveToClass;\n var leaveActiveClass = data.leaveActiveClass;\n var beforeLeave = data.beforeLeave;\n var leave = data.leave;\n var afterLeave = data.afterLeave;\n var leaveCancelled = data.leaveCancelled;\n var delayLeave = data.delayLeave;\n var duration = data.duration;\n\n var expectsCSS = css !== false && !isIE9;\n var userWantsControl = getHookArgumentsLength(leave);\n\n var explicitLeaveDuration = toNumber(\n isObject(duration)\n ? duration.leave\n : duration\n );\n\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\n checkDuration(explicitLeaveDuration, 'leave', vnode);\n }\n\n var cb = el._leaveCb = once(function () {\n if (el.parentNode && el.parentNode._pending) {\n el.parentNode._pending[vnode.key] = null;\n }\n if (expectsCSS) {\n removeTransitionClass(el, leaveToClass);\n removeTransitionClass(el, leaveActiveClass);\n }\n if (cb.cancelled) {\n if (expectsCSS) {\n removeTransitionClass(el, leaveClass);\n }\n leaveCancelled && leaveCancelled(el);\n } else {\n rm();\n afterLeave && afterLeave(el);\n }\n el._leaveCb = null;\n });\n\n if (delayLeave) {\n delayLeave(performLeave);\n } else {\n performLeave();\n }\n\n function performLeave () {\n // the delayed leave may have already been cancelled\n if (cb.cancelled) {\n return\n }\n // record leaving element\n if (!vnode.data.show) {\n (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;\n }\n beforeLeave && beforeLeave(el);\n if (expectsCSS) {\n addTransitionClass(el, leaveClass);\n addTransitionClass(el, leaveActiveClass);\n nextFrame(function () {\n removeTransitionClass(el, leaveClass);\n if (!cb.cancelled) {\n addTransitionClass(el, leaveToClass);\n if (!userWantsControl) {\n if (isValidDuration(explicitLeaveDuration)) {\n setTimeout(cb, explicitLeaveDuration);\n } else {\n whenTransitionEnds(el, type, cb);\n }\n }\n }\n });\n }\n leave && leave(el, cb);\n if (!expectsCSS && !userWantsControl) {\n cb();\n }\n }\n}\n\n// only used in dev mode\nfunction checkDuration (val, name, vnode) {\n if (typeof val !== 'number') {\n warn(\n \"<transition> explicit \" + name + \" duration is not a valid number - \" +\n \"got \" + (JSON.stringify(val)) + \".\",\n vnode.context\n );\n } else if (isNaN(val)) {\n warn(\n \"<transition> explicit \" + name + \" duration is NaN - \" +\n 'the duration expression might be incorrect.',\n vnode.context\n );\n }\n}\n\nfunction isValidDuration (val) {\n return typeof val === 'number' && !isNaN(val)\n}\n\n/**\n * Normalize a transition hook's argument length. The hook may be:\n * - a merged hook (invoker) with the original in .fns\n * - a wrapped component method (check ._length)\n * - a plain function (.length)\n */\nfunction getHookArgumentsLength (fn) {\n if (isUndef(fn)) {\n return false\n }\n var invokerFns = fn.fns;\n if (isDef(invokerFns)) {\n // invoker\n return getHookArgumentsLength(\n Array.isArray(invokerFns)\n ? invokerFns[0]\n : invokerFns\n )\n } else {\n return (fn._length || fn.length) > 1\n }\n}\n\nfunction _enter (_, vnode) {\n if (vnode.data.show !== true) {\n enter(vnode);\n }\n}\n\nvar transition = inBrowser ? {\n create: _enter,\n activate: _enter,\n remove: function remove$$1 (vnode, rm) {\n /* istanbul ignore else */\n if (vnode.data.show !== true) {\n leave(vnode, rm);\n } else {\n rm();\n }\n }\n} : {}\n\nvar platformModules = [\n attrs,\n klass,\n events,\n domProps,\n style,\n transition\n]\n\n/* */\n\n// the directive module should be applied last, after all\n// built-in modules have been applied.\nvar modules = platformModules.concat(baseModules);\n\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\n * Not type checking this file because flow doesn't like attaching\n * properties to Elements.\n */\n\n/* istanbul ignore if */\nif (isIE9) {\n // http://www.matts411.com/post/internet-explorer-9-oninput/\n document.addEventListener('selectionchange', function () {\n var el = document.activeElement;\n if (el && el.vmodel) {\n trigger(el, 'input');\n }\n });\n}\n\nvar directive = {\n inserted: function inserted (el, binding, vnode, oldVnode) {\n if (vnode.tag === 'select') {\n // #6903\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\n mergeVNodeHook(vnode, 'postpatch', function () {\n directive.componentUpdated(el, binding, vnode);\n });\n } else {\n setSelected(el, binding, vnode.context);\n }\n el._vOptions = [].map.call(el.options, getValue);\n } else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\n el._vModifiers = binding.modifiers;\n if (!binding.modifiers.lazy) {\n el.addEventListener('compositionstart', onCompositionStart);\n el.addEventListener('compositionend', onCompositionEnd);\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n el.addEventListener('change', onCompositionEnd);\n /* istanbul ignore if */\n if (isIE9) {\n el.vmodel = true;\n }\n }\n }\n },\n\n componentUpdated: function componentUpdated (el, binding, vnode) {\n if (vnode.tag === 'select') {\n setSelected(el, binding, vnode.context);\n // in case the options rendered by v-for have changed,\n // it's possible that the value is out-of-sync with the rendered options.\n // detect such cases and filter out values that no longer has a matching\n // option in the DOM.\n var prevOptions = el._vOptions;\n var curOptions = el._vOptions = [].map.call(el.options, getValue);\n if (curOptions.some(function (o, i) { return !looseEqual(o, prevOptions[i]); })) {\n // trigger change event if\n // no matching option found for at least one value\n var needReset = el.multiple\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions); })\n : binding.value !== binding.oldValue && hasNoMatchingOption(binding.value, curOptions);\n if (needReset) {\n trigger(el, 'change');\n }\n }\n }\n }\n};\n\nfunction setSelected (el, binding, vm) {\n actuallySetSelected(el, binding, vm);\n /* istanbul ignore if */\n if (isIE || isEdge) {\n setTimeout(function () {\n actuallySetSelected(el, binding, vm);\n }, 0);\n }\n}\n\nfunction actuallySetSelected (el, binding, vm) {\n var value = binding.value;\n var isMultiple = el.multiple;\n if (isMultiple && !Array.isArray(value)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"<select multiple v-model=\\\"\" + (binding.expression) + \"\\\"> \" +\n \"expects an Array value for its binding, but got \" + (Object.prototype.toString.call(value).slice(8, -1)),\n vm\n );\n return\n }\n var selected, option;\n for (var i = 0, l = el.options.length; i < l; i++) {\n option = el.options[i];\n if (isMultiple) {\n selected = looseIndexOf(value, getValue(option)) > -1;\n if (option.selected !== selected) {\n option.selected = selected;\n }\n } else {\n if (looseEqual(getValue(option), value)) {\n if (el.selectedIndex !== i) {\n el.selectedIndex = i;\n }\n return\n }\n }\n }\n if (!isMultiple) {\n el.selectedIndex = -1;\n }\n}\n\nfunction hasNoMatchingOption (value, options) {\n return options.every(function (o) { return !looseEqual(o, value); })\n}\n\nfunction getValue (option) {\n return '_value' in option\n ? option._value\n : option.value\n}\n\nfunction onCompositionStart (e) {\n e.target.composing = true;\n}\n\nfunction onCompositionEnd (e) {\n // prevent triggering an input event for no reason\n if (!e.target.composing) { return }\n e.target.composing = false;\n trigger(e.target, 'input');\n}\n\nfunction trigger (el, type) {\n var e = document.createEvent('HTMLEvents');\n e.initEvent(type, true, true);\n el.dispatchEvent(e);\n}\n\n/* */\n\n// recursively search for possible transition defined inside the component root\nfunction locateNode (vnode) {\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\n ? locateNode(vnode.componentInstance._vnode)\n : vnode\n}\n\nvar show = {\n bind: function bind (el, ref, vnode) {\n var value = ref.value;\n\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n var originalDisplay = el.__vOriginalDisplay =\n el.style.display === 'none' ? '' : el.style.display;\n if (value && transition$$1) {\n vnode.data.show = true;\n enter(vnode, function () {\n el.style.display = originalDisplay;\n });\n } else {\n el.style.display = value ? originalDisplay : 'none';\n }\n },\n\n update: function update (el, ref, vnode) {\n var value = ref.value;\n var oldValue = ref.oldValue;\n\n /* istanbul ignore if */\n if (!value === !oldValue) { return }\n vnode = locateNode(vnode);\n var transition$$1 = vnode.data && vnode.data.transition;\n if (transition$$1) {\n vnode.data.show = true;\n if (value) {\n enter(vnode, function () {\n el.style.display = el.__vOriginalDisplay;\n });\n } else {\n leave(vnode, function () {\n el.style.display = 'none';\n });\n }\n } else {\n el.style.display = value ? el.__vOriginalDisplay : 'none';\n }\n },\n\n unbind: function unbind (\n el,\n binding,\n vnode,\n oldVnode,\n isDestroy\n ) {\n if (!isDestroy) {\n el.style.display = el.__vOriginalDisplay;\n }\n }\n}\n\nvar platformDirectives = {\n model: directive,\n show: show\n}\n\n/* */\n\n// Provides transition support for a single element/component.\n// supports transition mode (out-in / in-out)\n\nvar transitionProps = {\n name: String,\n appear: Boolean,\n css: Boolean,\n mode: String,\n type: String,\n enterClass: String,\n leaveClass: String,\n enterToClass: String,\n leaveToClass: String,\n enterActiveClass: String,\n leaveActiveClass: String,\n appearClass: String,\n appearActiveClass: String,\n appearToClass: String,\n duration: [Number, String, Object]\n};\n\n// in case the child is also an abstract component, e.g. <keep-alive>\n// we want to recursively retrieve the real component to be rendered\nfunction getRealChild (vnode) {\n var compOptions = vnode && vnode.componentOptions;\n if (compOptions && compOptions.Ctor.options.abstract) {\n return getRealChild(getFirstComponentChild(compOptions.children))\n } else {\n return vnode\n }\n}\n\nfunction extractTransitionData (comp) {\n var data = {};\n var options = comp.$options;\n // props\n for (var key in options.propsData) {\n data[key] = comp[key];\n }\n // events.\n // extract listeners and pass them directly to the transition methods\n var listeners = options._parentListeners;\n for (var key$1 in listeners) {\n data[camelize(key$1)] = listeners[key$1];\n }\n return data\n}\n\nfunction placeholder (h, rawChild) {\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\n return h('keep-alive', {\n props: rawChild.componentOptions.propsData\n })\n }\n}\n\nfunction hasParentTransition (vnode) {\n while ((vnode = vnode.parent)) {\n if (vnode.data.transition) {\n return true\n }\n }\n}\n\nfunction isSameChild (child, oldChild) {\n return oldChild.key === child.key && oldChild.tag === child.tag\n}\n\nvar Transition = {\n name: 'transition',\n props: transitionProps,\n abstract: true,\n\n render: function render (h) {\n var this$1 = this;\n\n var children = this.$slots.default;\n if (!children) {\n return\n }\n\n // filter out text nodes (possible whitespaces)\n children = children.filter(function (c) { return c.tag || isAsyncPlaceholder(c); });\n /* istanbul ignore if */\n if (!children.length) {\n return\n }\n\n // warn multiple elements\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\n warn(\n '<transition> can only be used on a single element. Use ' +\n '<transition-group> for lists.',\n this.$parent\n );\n }\n\n var mode = this.mode;\n\n // warn invalid mode\n if (process.env.NODE_ENV !== 'production' &&\n mode && mode !== 'in-out' && mode !== 'out-in'\n ) {\n warn(\n 'invalid <transition> mode: ' + mode,\n this.$parent\n );\n }\n\n var rawChild = children[0];\n\n // if this is a component root node and the component's\n // parent container node also has transition, skip.\n if (hasParentTransition(this.$vnode)) {\n return rawChild\n }\n\n // apply transition data to child\n // use getRealChild() to ignore abstract components e.g. keep-alive\n var child = getRealChild(rawChild);\n /* istanbul ignore if */\n if (!child) {\n return rawChild\n }\n\n if (this._leaving) {\n return placeholder(h, rawChild)\n }\n\n // ensure a key that is unique to the vnode type and to this transition\n // component instance. This key will be used to remove pending leaving nodes\n // during entering.\n var id = \"__transition-\" + (this._uid) + \"-\";\n child.key = child.key == null\n ? child.isComment\n ? id + 'comment'\n : id + child.tag\n : isPrimitive(child.key)\n ? (String(child.key).indexOf(id) === 0 ? child.key : id + child.key)\n : child.key;\n\n var data = (child.data || (child.data = {})).transition = extractTransitionData(this);\n var oldRawChild = this._vnode;\n var oldChild = getRealChild(oldRawChild);\n\n // mark v-show\n // so that the transition module can hand over the control to the directive\n if (child.data.directives && child.data.directives.some(function (d) { return d.name === 'show'; })) {\n child.data.show = true;\n }\n\n if (\n oldChild &&\n oldChild.data &&\n !isSameChild(child, oldChild) &&\n !isAsyncPlaceholder(oldChild) &&\n // #6687 component root is a comment node\n !(oldChild.componentInstance && oldChild.componentInstance._vnode.isComment)\n ) {\n // replace old child transition data with fresh one\n // important for dynamic transitions!\n var oldData = oldChild.data.transition = extend({}, data);\n // handle transition mode\n if (mode === 'out-in') {\n // return placeholder node and queue update when leave finishes\n this._leaving = true;\n mergeVNodeHook(oldData, 'afterLeave', function () {\n this$1._leaving = false;\n this$1.$forceUpdate();\n });\n return placeholder(h, rawChild)\n } else if (mode === 'in-out') {\n if (isAsyncPlaceholder(child)) {\n return oldRawChild\n }\n var delayedLeave;\n var performLeave = function () { delayedLeave(); };\n mergeVNodeHook(data, 'afterEnter', performLeave);\n mergeVNodeHook(data, 'enterCancelled', performLeave);\n mergeVNodeHook(oldData, 'delayLeave', function (leave) { delayedLeave = leave; });\n }\n }\n\n return rawChild\n }\n}\n\n/* */\n\n// Provides transition support for list items.\n// supports move transitions using the FLIP technique.\n\n// Because the vdom's children update algorithm is \"unstable\" - i.e.\n// it doesn't guarantee the relative positioning of removed elements,\n// we force transition-group to update its children into two passes:\n// in the first pass, we remove all nodes that need to be removed,\n// triggering their leaving transition; in the second pass, we insert/move\n// into the final desired state. This way in the second pass removed\n// nodes will remain where they should be.\n\nvar props = extend({\n tag: String,\n moveClass: String\n}, transitionProps);\n\ndelete props.mode;\n\nvar TransitionGroup = {\n props: props,\n\n render: function render (h) {\n var tag = this.tag || this.$vnode.data.tag || 'span';\n var map = Object.create(null);\n var prevChildren = this.prevChildren = this.children;\n var rawChildren = this.$slots.default || [];\n var children = this.children = [];\n var transitionData = extractTransitionData(this);\n\n for (var i = 0; i < rawChildren.length; i++) {\n var c = rawChildren[i];\n if (c.tag) {\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\n children.push(c);\n map[c.key] = c\n ;(c.data || (c.data = {})).transition = transitionData;\n } else if (process.env.NODE_ENV !== 'production') {\n var opts = c.componentOptions;\n var name = opts ? (opts.Ctor.options.name || opts.tag || '') : c.tag;\n warn((\"<transition-group> children must be keyed: <\" + name + \">\"));\n }\n }\n }\n\n if (prevChildren) {\n var kept = [];\n var removed = [];\n for (var i$1 = 0; i$1 < prevChildren.length; i$1++) {\n var c$1 = prevChildren[i$1];\n c$1.data.transition = transitionData;\n c$1.data.pos = c$1.elm.getBoundingClientRect();\n if (map[c$1.key]) {\n kept.push(c$1);\n } else {\n removed.push(c$1);\n }\n }\n this.kept = h(tag, null, kept);\n this.removed = removed;\n }\n\n return h(tag, null, children)\n },\n\n beforeUpdate: function beforeUpdate () {\n // force removing pass\n this.__patch__(\n this._vnode,\n this.kept,\n false, // hydrating\n true // removeOnly (!important, avoids unnecessary moves)\n );\n this._vnode = this.kept;\n },\n\n updated: function updated () {\n var children = this.prevChildren;\n var moveClass = this.moveClass || ((this.name || 'v') + '-move');\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\n return\n }\n\n // we divide the work into three loops to avoid mixing DOM reads and writes\n // in each iteration - which helps prevent layout thrashing.\n children.forEach(callPendingCbs);\n children.forEach(recordPosition);\n children.forEach(applyTranslation);\n\n // force reflow to put everything in position\n // assign to this to avoid being removed in tree-shaking\n // $flow-disable-line\n this._reflow = document.body.offsetHeight;\n\n children.forEach(function (c) {\n if (c.data.moved) {\n var el = c.elm;\n var s = el.style;\n addTransitionClass(el, moveClass);\n s.transform = s.WebkitTransform = s.transitionDuration = '';\n el.addEventListener(transitionEndEvent, el._moveCb = function cb (e) {\n if (!e || /transform$/.test(e.propertyName)) {\n el.removeEventListener(transitionEndEvent, cb);\n el._moveCb = null;\n removeTransitionClass(el, moveClass);\n }\n });\n }\n });\n },\n\n methods: {\n hasMove: function hasMove (el, moveClass) {\n /* istanbul ignore if */\n if (!hasTransition) {\n return false\n }\n /* istanbul ignore if */\n if (this._hasMove) {\n return this._hasMove\n }\n // Detect whether an element with the move class applied has\n // CSS transitions. Since the element may be inside an entering\n // transition at this very moment, we make a clone of it and remove\n // all other transition classes applied to ensure only the move class\n // is applied.\n var clone = el.cloneNode();\n if (el._transitionClasses) {\n el._transitionClasses.forEach(function (cls) { removeClass(clone, cls); });\n }\n addClass(clone, moveClass);\n clone.style.display = 'none';\n this.$el.appendChild(clone);\n var info = getTransitionInfo(clone);\n this.$el.removeChild(clone);\n return (this._hasMove = info.hasTransform)\n }\n }\n}\n\nfunction callPendingCbs (c) {\n /* istanbul ignore if */\n if (c.elm._moveCb) {\n c.elm._moveCb();\n }\n /* istanbul ignore if */\n if (c.elm._enterCb) {\n c.elm._enterCb();\n }\n}\n\nfunction recordPosition (c) {\n c.data.newPos = c.elm.getBoundingClientRect();\n}\n\nfunction applyTranslation (c) {\n var oldPos = c.data.pos;\n var newPos = c.data.newPos;\n var dx = oldPos.left - newPos.left;\n var dy = oldPos.top - newPos.top;\n if (dx || dy) {\n c.data.moved = true;\n var s = c.elm.style;\n s.transform = s.WebkitTransform = \"translate(\" + dx + \"px,\" + dy + \"px)\";\n s.transitionDuration = '0s';\n }\n}\n\nvar platformComponents = {\n Transition: Transition,\n TransitionGroup: TransitionGroup\n}\n\n/* */\n\n// install platform specific utils\nVue.config.mustUseProp = mustUseProp;\nVue.config.isReservedTag = isReservedTag;\nVue.config.isReservedAttr = isReservedAttr;\nVue.config.getTagNamespace = getTagNamespace;\nVue.config.isUnknownElement = isUnknownElement;\n\n// install platform runtime directives & components\nextend(Vue.options.directives, platformDirectives);\nextend(Vue.options.components, platformComponents);\n\n// install platform patch function\nVue.prototype.__patch__ = inBrowser ? patch : noop;\n\n// public mount method\nVue.prototype.$mount = function (\n el,\n hydrating\n) {\n el = el && inBrowser ? query(el) : undefined;\n return mountComponent(this, el, hydrating)\n};\n\n// devtools global hook\n/* istanbul ignore next */\nif (inBrowser) {\n setTimeout(function () {\n if (config.devtools) {\n if (devtools) {\n devtools.emit('init', Vue);\n } else if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n isChrome\n ) {\n console[console.info ? 'info' : 'log'](\n 'Download the Vue Devtools extension for a better development experience:\\n' +\n 'https://github.com/vuejs/vue-devtools'\n );\n }\n }\n if (process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n config.productionTip !== false &&\n typeof console !== 'undefined'\n ) {\n console[console.info ? 'info' : 'log'](\n \"You are running Vue in development mode.\\n\" +\n \"Make sure to turn on production mode when deploying for production.\\n\" +\n \"See more tips at https://vuejs.org/guide/deployment.html\"\n );\n }\n }, 0);\n}\n\n/* */\n\nexport default Vue;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var scope = (typeof global !== \"undefined\" && global) ||\n (typeof self !== \"undefined\" && self) ||\n window;\nvar apply = Function.prototype.apply;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(scope, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// setimmediate attaches itself to the global object\nrequire(\"setimmediate\");\n// On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\nexports.setImmediate = (typeof self !== \"undefined\" && self.setImmediate) ||\n (typeof global !== \"undefined\" && global.setImmediate) ||\n (this && this.setImmediate);\nexports.clearImmediate = (typeof self !== \"undefined\" && self.clearImmediate) ||\n (typeof global !== \"undefined\" && global.clearImmediate) ||\n (this && this.clearImmediate);\n","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n }\n // Copy function arguments\n var args = new Array(arguments.length - 1);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n }\n // Store and register the task\n var task = { callback: callback, args: args };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n switch (args.length) {\n case 0:\n callback();\n break;\n case 1:\n callback(args[0]);\n break;\n case 2:\n callback(args[0], args[1]);\n break;\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n if (task) {\n currentlyRunningATask = true;\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function(handle) {\n process.nextTick(function () { runIfPresent(handle); });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n global.onmessage = function() {\n postMessageIsAsynchronous = false;\n };\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n var onGlobalMessage = function(event) {\n if (event.source === global &&\n typeof event.data === \"string\" &&\n event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n channel.port1.onmessage = function(event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n registerImmediate = function(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n }\n\n // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global;\n\n // Don't get fooled by e.g. browserify environments.\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n}(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self));\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import { render, staticRenderFns } from \"./main.vue?vue&type=template&id=54306671\"\nimport script from \"./main.vue?vue&type=script&lang=ts\"\nexport * from \"./main.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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('54306671', component.options)\n } else {\n api.reload('54306671', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\main.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n !_vm.isPageLoaded ? _c(\"Start\") : _vm._e(),\n _vm._v(\" \"),\n _c(\"div\", { staticClass: \"container-fluid\" }, [\n _vm.isPageLoaded\n ? _c(\n \"div\",\n { staticClass: \"row\", attrs: { id: \"divMain\" } },\n [\n _c(\"Menu\"),\n _vm._v(\" \"),\n _c(\"div\", {\n staticStyle: {\n \"border-top\": \"5px solid #777adb\",\n width: \"100%\"\n }\n }),\n _vm._v(\" \"),\n _c(\n \"div\",\n { staticClass: \"col-sm-3\" },\n [_c(\"DbInfo\", { attrs: { selectedDb: _vm.selectedDb } })],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"col\",\n attrs: { id: \"divQueryExecutorContainer\" }\n },\n [_c(\"QueryExecutor\")],\n 1\n )\n ],\n 1\n )\n : _vm._e()\n ])\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('54306671', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./main.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./main.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport DbList from \"./db_list.vue\";\r\nimport Menu from \"./menu.vue\";\r\nimport DbInfo from \"./db_info.vue\";\r\nimport QueryExecutor from \"./query_executor.vue\";\r\nimport Start from \"./start.vue\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport \"../css/common.css\";\r\nimport { Util } from \"../util\";\r\nimport { Config } from \"jsstore\";\r\n\r\ndeclare var ace;\r\nace.config.set(\"workerPath\", \"assets/scripts\");\r\nace.config.set(\"themePath\", \"assets/scripts\");\r\n\r\n@Component({\r\n components: {\r\n Menu,\r\n DbInfo,\r\n QueryExecutor,\r\n Start\r\n }\r\n})\r\nexport default class Main extends Vue {\r\n isPageLoaded = false;\r\n selectedDb;\r\n constructor() {\r\n super();\r\n this.catchEvent();\r\n this.setLogFromUrl();\r\n }\r\n\r\n setLogFromUrl() {\r\n var log = Util.getParameterByName(\"log\");\r\n if (!Util.isNull(log)) {\r\n Config.isLogEnabled = log == \"1\" ? true : false;\r\n }\r\n }\r\n\r\n togglePageLoadedStatus() {\r\n this.isPageLoaded = !this.isPageLoaded;\r\n }\r\n\r\n private catchEvent() {\r\n vueEvent.$on(\"on_error\", errMessage => {\r\n alert(errMessage);\r\n });\r\n\r\n vueEvent.$on(\"page_loaded\", dbName => {\r\n this.selectedDb = dbName;\r\n this.togglePageLoadedStatus();\r\n });\r\n }\r\n}\r\n","(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('vue'), require('vue-class-component'), require('reflect-metadata')) :\n\ttypeof define === 'function' && define.amd ? define(['exports', 'vue', 'vue-class-component', 'reflect-metadata'], factory) :\n\t(factory((global.VuePropertyDecorator = {}),global.Vue,global.VueClassComponent));\n}(this, (function (exports,vue,vueClassComponent) { 'use strict';\n\nvue = vue && vue.hasOwnProperty('default') ? vue['default'] : vue;\nvar vueClassComponent__default = 'default' in vueClassComponent ? vueClassComponent['default'] : vueClassComponent;\n\n/** vue-property-decorator verson 6.0.0 MIT LICENSE copyright 2017 kaorun343 */\n'use strict';\n/**\n * decorator of an inject\n * @param key key\n * @return PropertyDecorator\n */\nfunction Inject(key) {\n return vueClassComponent.createDecorator(function (componentOptions, k) {\n if (typeof componentOptions.inject === 'undefined') {\n componentOptions.inject = {};\n }\n if (!Array.isArray(componentOptions.inject)) {\n componentOptions.inject[k] = key || k;\n }\n });\n}\n/**\n * decorator of a provide\n * @param key key\n * @return PropertyDecorator | void\n */\nfunction Provide(key) {\n return vueClassComponent.createDecorator(function (componentOptions, k) {\n var provide = componentOptions.provide;\n if (typeof provide !== 'function' || !provide.managed) {\n var original_1 = componentOptions.provide;\n provide = componentOptions.provide = function () {\n var rv = Object.create((typeof original_1 === 'function' ? original_1.call(this) : original_1) || null);\n for (var i in provide.managed)\n rv[provide.managed[i]] = this[i];\n return rv;\n };\n provide.managed = {};\n }\n provide.managed[k] = key || k;\n });\n}\n/**\n * decorator of model\n * @param event event name\n * @return PropertyDecorator\n */\nfunction Model(event, options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n if (!Array.isArray(options) && typeof options.type === 'undefined') {\n options.type = Reflect.getMetadata('design:type', target, key);\n }\n vueClassComponent.createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n componentOptions.model = { prop: k, event: event || k };\n })(target, key);\n };\n}\n/**\n * decorator of a prop\n * @param options the options for the prop\n * @return PropertyDecorator | void\n */\nfunction Prop(options) {\n if (options === void 0) { options = {}; }\n return function (target, key) {\n if (!Array.isArray(options) && typeof options.type === 'undefined') {\n options.type = Reflect.getMetadata('design:type', target, key);\n }\n vueClassComponent.createDecorator(function (componentOptions, k) {\n (componentOptions.props || (componentOptions.props = {}))[k] = options;\n })(target, key);\n };\n}\n/**\n * decorator of a watch function\n * @param path the path or the expression to observe\n * @param WatchOption\n * @return MethodDecorator\n */\nfunction Watch(path, options) {\n if (options === void 0) { options = {}; }\n var _a = options.deep, deep = _a === void 0 ? false : _a, _b = options.immediate, immediate = _b === void 0 ? false : _b;\n return vueClassComponent.createDecorator(function (componentOptions, handler) {\n if (typeof componentOptions.watch !== 'object') {\n componentOptions.watch = Object.create(null);\n }\n componentOptions.watch[path] = { handler: handler, deep: deep, immediate: immediate };\n });\n}\n// Code copied from Vue/src/shared/util.js\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = function (str) { return str.replace(hyphenateRE, '-$1').toLowerCase(); };\n/**\n * decorator of an event-emitter function\n * @param event The name of the event\n * @return MethodDecorator\n */\nfunction Emit(event) {\n return function (target, key, descriptor) {\n key = hyphenate(key);\n var original = descriptor.value;\n descriptor.value = function emitter() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (original.apply(this, args) !== false)\n this.$emit.apply(this, [event || key].concat(args));\n };\n };\n}\n\nexports.Component = vueClassComponent__default;\nexports.Vue = vue;\nexports.Inject = Inject;\nexports.Provide = Provide;\nexports.Model = Model;\nexports.Prop = Prop;\nexports.Watch = Watch;\nexports.Emit = Emit;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","/**\n * vue-class-component v6.2.0\n * (c) 2015-present Evan You\n * @license MIT\n */\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar Vue = _interopDefault(require('vue'));\n\nvar hasProto = { __proto__: [] } instanceof Array;\nfunction createDecorator(factory) {\n return function (target, key, index) {\n var Ctor = typeof target === 'function'\n ? target\n : target.constructor;\n if (!Ctor.__decorators__) {\n Ctor.__decorators__ = [];\n }\n if (typeof index !== 'number') {\n index = undefined;\n }\n Ctor.__decorators__.push(function (options) { return factory(options, key, index); });\n };\n}\nfunction mixins() {\n var Ctors = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n Ctors[_i] = arguments[_i];\n }\n return Vue.extend({ mixins: Ctors });\n}\nfunction isPrimitive(value) {\n var type = typeof value;\n return value == null || (type !== \"object\" && type !== \"function\");\n}\nfunction warn(message) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-class-component] ' + message);\n }\n}\n\nfunction collectDataFromConstructor(vm, Component) {\n // override _init to prevent to init as Vue instance\n var originalInit = Component.prototype._init;\n Component.prototype._init = function () {\n var _this = this;\n // proxy to actual vm\n var keys = Object.getOwnPropertyNames(vm);\n // 2.2.0 compat (props are no longer exposed as self properties)\n if (vm.$options.props) {\n for (var key in vm.$options.props) {\n if (!vm.hasOwnProperty(key)) {\n keys.push(key);\n }\n }\n }\n keys.forEach(function (key) {\n if (key.charAt(0) !== '_') {\n Object.defineProperty(_this, key, {\n get: function () { return vm[key]; },\n set: function (value) { return vm[key] = value; },\n configurable: true\n });\n }\n });\n };\n // should be acquired class property values\n var data = new Component();\n // restore original _init to avoid memory leak (#209)\n Component.prototype._init = originalInit;\n // create plain data object\n var plainData = {};\n Object.keys(data).forEach(function (key) {\n if (data[key] !== undefined) {\n plainData[key] = data[key];\n }\n });\n if (process.env.NODE_ENV !== 'production') {\n if (!(Component.prototype instanceof Vue) && Object.keys(plainData).length > 0) {\n warn('Component class must inherit Vue or its descendant class ' +\n 'when class property is used.');\n }\n }\n return plainData;\n}\n\nvar $internalHooks = [\n 'data',\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeDestroy',\n 'destroyed',\n 'beforeUpdate',\n 'updated',\n 'activated',\n 'deactivated',\n 'render',\n 'errorCaptured' // 2.5\n];\nfunction componentFactory(Component, options) {\n if (options === void 0) { options = {}; }\n options.name = options.name || Component._componentTag || Component.name;\n // prototype props.\n var proto = Component.prototype;\n Object.getOwnPropertyNames(proto).forEach(function (key) {\n if (key === 'constructor') {\n return;\n }\n // hooks\n if ($internalHooks.indexOf(key) > -1) {\n options[key] = proto[key];\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(proto, key);\n if (typeof descriptor.value === 'function') {\n // methods\n (options.methods || (options.methods = {}))[key] = descriptor.value;\n }\n else if (descriptor.get || descriptor.set) {\n // computed properties\n (options.computed || (options.computed = {}))[key] = {\n get: descriptor.get,\n set: descriptor.set\n };\n }\n });\n (options.mixins || (options.mixins = [])).push({\n data: function () {\n return collectDataFromConstructor(this, Component);\n }\n });\n // decorate options\n var decorators = Component.__decorators__;\n if (decorators) {\n decorators.forEach(function (fn) { return fn(options); });\n delete Component.__decorators__;\n }\n // find super\n var superProto = Object.getPrototypeOf(Component.prototype);\n var Super = superProto instanceof Vue\n ? superProto.constructor\n : Vue;\n var Extended = Super.extend(options);\n forwardStaticMembers(Extended, Component, Super);\n return Extended;\n}\nvar reservedPropertyNames = [\n // Unique id\n 'cid',\n // Super Vue constructor\n 'super',\n // Component options that will be used by the component\n 'options',\n 'superOptions',\n 'extendOptions',\n 'sealedOptions',\n // Private assets\n 'component',\n 'directive',\n 'filter'\n];\nfunction forwardStaticMembers(Extended, Original, Super) {\n // We have to use getOwnPropertyNames since Babel registers methods as non-enumerable\n Object.getOwnPropertyNames(Original).forEach(function (key) {\n // `prototype` should not be overwritten\n if (key === 'prototype') {\n return;\n }\n // Some browsers does not allow reconfigure built-in properties\n var extendedDescriptor = Object.getOwnPropertyDescriptor(Extended, key);\n if (extendedDescriptor && !extendedDescriptor.configurable) {\n return;\n }\n var descriptor = Object.getOwnPropertyDescriptor(Original, key);\n // If the user agent does not support `__proto__` or its family (IE <= 10),\n // the sub class properties may be inherited properties from the super class in TypeScript.\n // We need to exclude such properties to prevent to overwrite\n // the component options object which stored on the extended constructor (See #192).\n // If the value is a referenced value (object or function),\n // we can check equality of them and exclude it if they have the same reference.\n // If it is a primitive value, it will be forwarded for safety.\n if (!hasProto) {\n // Only `cid` is explicitly exluded from property forwarding\n // because we cannot detect whether it is a inherited property or not\n // on the no `__proto__` environment even though the property is reserved.\n if (key === 'cid') {\n return;\n }\n var superDescriptor = Object.getOwnPropertyDescriptor(Super, key);\n if (!isPrimitive(descriptor.value)\n && superDescriptor\n && superDescriptor.value === descriptor.value) {\n return;\n }\n }\n // Warn if the users manually declare reserved properties\n if (process.env.NODE_ENV !== 'production'\n && reservedPropertyNames.indexOf(key) >= 0) {\n warn(\"Static property name '\" + key + \"' declared on class '\" + Original.name + \"' \" +\n 'conflicts with reserved property name of Vue internal. ' +\n 'It may cause unexpected behavior of the component. Consider renaming the property.');\n }\n Object.defineProperty(Extended, key, descriptor);\n });\n}\n\nfunction Component(options) {\n if (typeof options === 'function') {\n return componentFactory(options);\n }\n return function (Component) {\n return componentFactory(Component, options);\n };\n}\n(function (Component) {\n function registerHooks(keys) {\n $internalHooks.push.apply($internalHooks, keys);\n }\n Component.registerHooks = registerHooks;\n})(Component || (Component = {}));\nvar Component$1 = Component;\n\nexports.default = Component$1;\nexports.createDecorator = createDecorator;\nexports.mixins = mixins;\n","/*! *****************************************************************************\r\nCopyright (C) Microsoft. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\nvar Reflect;\r\n(function (Reflect) {\r\n // Metadata Proposal\r\n // https://rbuckton.github.io/reflect-metadata/\r\n (function (factory) {\r\n var root = typeof global === \"object\" ? global :\r\n typeof self === \"object\" ? self :\r\n typeof this === \"object\" ? this :\r\n Function(\"return this;\")();\r\n var exporter = makeExporter(Reflect);\r\n if (typeof root.Reflect === \"undefined\") {\r\n root.Reflect = Reflect;\r\n }\r\n else {\r\n exporter = makeExporter(root.Reflect, exporter);\r\n }\r\n factory(exporter);\r\n function makeExporter(target, previous) {\r\n return function (key, value) {\r\n if (typeof target[key] !== \"function\") {\r\n Object.defineProperty(target, key, { configurable: true, writable: true, value: value });\r\n }\r\n if (previous)\r\n previous(key, value);\r\n };\r\n }\r\n })(function (exporter) {\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n // feature test for Symbol support\r\n var supportsSymbol = typeof Symbol === \"function\";\r\n var toPrimitiveSymbol = supportsSymbol && typeof Symbol.toPrimitive !== \"undefined\" ? Symbol.toPrimitive : \"@@toPrimitive\";\r\n var iteratorSymbol = supportsSymbol && typeof Symbol.iterator !== \"undefined\" ? Symbol.iterator : \"@@iterator\";\r\n var supportsCreate = typeof Object.create === \"function\"; // feature test for Object.create support\r\n var supportsProto = { __proto__: [] } instanceof Array; // feature test for __proto__ support\r\n var downLevel = !supportsCreate && !supportsProto;\r\n var HashMap = {\r\n // create an object in dictionary mode (a.k.a. \"slow\" mode in v8)\r\n create: supportsCreate\r\n ? function () { return MakeDictionary(Object.create(null)); }\r\n : supportsProto\r\n ? function () { return MakeDictionary({ __proto__: null }); }\r\n : function () { return MakeDictionary({}); },\r\n has: downLevel\r\n ? function (map, key) { return hasOwn.call(map, key); }\r\n : function (map, key) { return key in map; },\r\n get: downLevel\r\n ? function (map, key) { return hasOwn.call(map, key) ? map[key] : undefined; }\r\n : function (map, key) { return map[key]; },\r\n };\r\n // Load global or shim versions of Map, Set, and WeakMap\r\n var functionPrototype = Object.getPrototypeOf(Function);\r\n var usePolyfill = typeof process === \"object\" && process.env && process.env[\"REFLECT_METADATA_USE_MAP_POLYFILL\"] === \"true\";\r\n var _Map = !usePolyfill && typeof Map === \"function\" && typeof Map.prototype.entries === \"function\" ? Map : CreateMapPolyfill();\r\n var _Set = !usePolyfill && typeof Set === \"function\" && typeof Set.prototype.entries === \"function\" ? Set : CreateSetPolyfill();\r\n var _WeakMap = !usePolyfill && typeof WeakMap === \"function\" ? WeakMap : CreateWeakMapPolyfill();\r\n // [[Metadata]] internal slot\r\n // https://rbuckton.github.io/reflect-metadata/#ordinary-object-internal-methods-and-internal-slots\r\n var Metadata = new _WeakMap();\r\n /**\r\n * Applies a set of decorators to a property of a target object.\r\n * @param decorators An array of decorators.\r\n * @param target The target object.\r\n * @param propertyKey (Optional) The property key to decorate.\r\n * @param attributes (Optional) The property descriptor for the target key.\r\n * @remarks Decorators are applied in reverse order.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * Example = Reflect.decorate(decoratorsArray, Example);\r\n *\r\n * // property (on constructor)\r\n * Reflect.decorate(decoratorsArray, Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * Reflect.decorate(decoratorsArray, Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * Object.defineProperty(Example, \"staticMethod\",\r\n * Reflect.decorate(decoratorsArray, Example, \"staticMethod\",\r\n * Object.getOwnPropertyDescriptor(Example, \"staticMethod\")));\r\n *\r\n * // method (on prototype)\r\n * Object.defineProperty(Example.prototype, \"method\",\r\n * Reflect.decorate(decoratorsArray, Example.prototype, \"method\",\r\n * Object.getOwnPropertyDescriptor(Example.prototype, \"method\")));\r\n *\r\n */\r\n function decorate(decorators, target, propertyKey, attributes) {\r\n if (!IsUndefined(propertyKey)) {\r\n if (!IsArray(decorators))\r\n throw new TypeError();\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsObject(attributes) && !IsUndefined(attributes) && !IsNull(attributes))\r\n throw new TypeError();\r\n if (IsNull(attributes))\r\n attributes = undefined;\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return DecorateProperty(decorators, target, propertyKey, attributes);\r\n }\r\n else {\r\n if (!IsArray(decorators))\r\n throw new TypeError();\r\n if (!IsConstructor(target))\r\n throw new TypeError();\r\n return DecorateConstructor(decorators, target);\r\n }\r\n }\r\n exporter(\"decorate\", decorate);\r\n // 4.1.2 Reflect.metadata(metadataKey, metadataValue)\r\n // https://rbuckton.github.io/reflect-metadata/#reflect.metadata\r\n /**\r\n * A default metadata decorator factory that can be used on a class, class member, or parameter.\r\n * @param metadataKey The key for the metadata entry.\r\n * @param metadataValue The value for the metadata entry.\r\n * @returns A decorator function.\r\n * @remarks\r\n * If `metadataKey` is already defined for the target and target key, the\r\n * metadataValue for that key will be overwritten.\r\n * @example\r\n *\r\n * // constructor\r\n * @Reflect.metadata(key, value)\r\n * class Example {\r\n * }\r\n *\r\n * // property (on constructor, TypeScript only)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * static staticProperty;\r\n * }\r\n *\r\n * // property (on prototype, TypeScript only)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * property;\r\n * }\r\n *\r\n * // method (on constructor)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * static staticMethod() { }\r\n * }\r\n *\r\n * // method (on prototype)\r\n * class Example {\r\n * @Reflect.metadata(key, value)\r\n * method() { }\r\n * }\r\n *\r\n */\r\n function metadata(metadataKey, metadataValue) {\r\n function decorator(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey) && !IsPropertyKey(propertyKey))\r\n throw new TypeError();\r\n OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\r\n }\r\n return decorator;\r\n }\r\n exporter(\"metadata\", metadata);\r\n /**\r\n * Define a unique metadata entry on the target.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param metadataValue A value that contains attached metadata.\r\n * @param target The target object on which to define metadata.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example);\r\n *\r\n * // property (on constructor)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * Reflect.defineMetadata(\"custom:annotation\", options, Example.prototype, \"method\");\r\n *\r\n * // decorator factory as metadata-producing annotation.\r\n * function MyAnnotation(options): Decorator {\r\n * return (target, key?) => Reflect.defineMetadata(\"custom:annotation\", options, target, key);\r\n * }\r\n *\r\n */\r\n function defineMetadata(metadataKey, metadataValue, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryDefineOwnMetadata(metadataKey, metadataValue, target, propertyKey);\r\n }\r\n exporter(\"defineMetadata\", defineMetadata);\r\n /**\r\n * Gets a value indicating whether the target object or its prototype chain has the provided metadata key defined.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata key was defined on the target object or its prototype chain; otherwise, `false`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.hasMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function hasMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryHasMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"hasMetadata\", hasMetadata);\r\n /**\r\n * Gets a value indicating whether the target object has the provided metadata key defined.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata key was defined on the target object; otherwise, `false`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.hasOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function hasOwnMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryHasOwnMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"hasOwnMetadata\", hasOwnMetadata);\r\n /**\r\n * Gets the metadata value for the provided metadata key on the target object or its prototype chain.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function getMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryGetMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"getMetadata\", getMetadata);\r\n /**\r\n * Gets the metadata value for the provided metadata key on the target object.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns The metadata value for the metadata key if found; otherwise, `undefined`.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getOwnMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function getOwnMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryGetOwnMetadata(metadataKey, target, propertyKey);\r\n }\r\n exporter(\"getOwnMetadata\", getOwnMetadata);\r\n /**\r\n * Gets the metadata keys defined on the target object or its prototype chain.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns An array of unique metadata keys.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getMetadataKeys(Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getMetadataKeys(Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getMetadataKeys(Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getMetadataKeys(Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getMetadataKeys(Example.prototype, \"method\");\r\n *\r\n */\r\n function getMetadataKeys(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryMetadataKeys(target, propertyKey);\r\n }\r\n exporter(\"getMetadataKeys\", getMetadataKeys);\r\n /**\r\n * Gets the unique metadata keys defined on the target object.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns An array of unique metadata keys.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.getOwnMetadataKeys(Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.getOwnMetadataKeys(Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.getOwnMetadataKeys(Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.getOwnMetadataKeys(Example.prototype, \"method\");\r\n *\r\n */\r\n function getOwnMetadataKeys(target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n return OrdinaryOwnMetadataKeys(target, propertyKey);\r\n }\r\n exporter(\"getOwnMetadataKeys\", getOwnMetadataKeys);\r\n /**\r\n * Deletes the metadata entry from the target object with the provided key.\r\n * @param metadataKey A key used to store and retrieve metadata.\r\n * @param target The target object on which the metadata is defined.\r\n * @param propertyKey (Optional) The property key for the target.\r\n * @returns `true` if the metadata entry was found and deleted; otherwise, false.\r\n * @example\r\n *\r\n * class Example {\r\n * // property declarations are not part of ES6, though they are valid in TypeScript:\r\n * // static staticProperty;\r\n * // property;\r\n *\r\n * constructor(p) { }\r\n * static staticMethod(p) { }\r\n * method(p) { }\r\n * }\r\n *\r\n * // constructor\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example);\r\n *\r\n * // property (on constructor)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticProperty\");\r\n *\r\n * // property (on prototype)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"property\");\r\n *\r\n * // method (on constructor)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example, \"staticMethod\");\r\n *\r\n * // method (on prototype)\r\n * result = Reflect.deleteMetadata(\"custom:annotation\", Example.prototype, \"method\");\r\n *\r\n */\r\n function deleteMetadata(metadataKey, target, propertyKey) {\r\n if (!IsObject(target))\r\n throw new TypeError();\r\n if (!IsUndefined(propertyKey))\r\n propertyKey = ToPropertyKey(propertyKey);\r\n var metadataMap = GetOrCreateMetadataMap(target, propertyKey, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return false;\r\n if (!metadataMap.delete(metadataKey))\r\n return false;\r\n if (metadataMap.size > 0)\r\n return true;\r\n var targetMetadata = Metadata.get(target);\r\n targetMetadata.delete(propertyKey);\r\n if (targetMetadata.size > 0)\r\n return true;\r\n Metadata.delete(target);\r\n return true;\r\n }\r\n exporter(\"deleteMetadata\", deleteMetadata);\r\n function DecorateConstructor(decorators, target) {\r\n for (var i = decorators.length - 1; i >= 0; --i) {\r\n var decorator = decorators[i];\r\n var decorated = decorator(target);\r\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n if (!IsConstructor(decorated))\r\n throw new TypeError();\r\n target = decorated;\r\n }\r\n }\r\n return target;\r\n }\r\n function DecorateProperty(decorators, target, propertyKey, descriptor) {\r\n for (var i = decorators.length - 1; i >= 0; --i) {\r\n var decorator = decorators[i];\r\n var decorated = decorator(target, propertyKey, descriptor);\r\n if (!IsUndefined(decorated) && !IsNull(decorated)) {\r\n if (!IsObject(decorated))\r\n throw new TypeError();\r\n descriptor = decorated;\r\n }\r\n }\r\n return descriptor;\r\n }\r\n function GetOrCreateMetadataMap(O, P, Create) {\r\n var targetMetadata = Metadata.get(O);\r\n if (IsUndefined(targetMetadata)) {\r\n if (!Create)\r\n return undefined;\r\n targetMetadata = new _Map();\r\n Metadata.set(O, targetMetadata);\r\n }\r\n var metadataMap = targetMetadata.get(P);\r\n if (IsUndefined(metadataMap)) {\r\n if (!Create)\r\n return undefined;\r\n metadataMap = new _Map();\r\n targetMetadata.set(P, metadataMap);\r\n }\r\n return metadataMap;\r\n }\r\n // 3.1.1.1 OrdinaryHasMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasmetadata\r\n function OrdinaryHasMetadata(MetadataKey, O, P) {\r\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n if (hasOwn)\r\n return true;\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (!IsNull(parent))\r\n return OrdinaryHasMetadata(MetadataKey, parent, P);\r\n return false;\r\n }\r\n // 3.1.2.1 OrdinaryHasOwnMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryhasownmetadata\r\n function OrdinaryHasOwnMetadata(MetadataKey, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return false;\r\n return ToBoolean(metadataMap.has(MetadataKey));\r\n }\r\n // 3.1.3.1 OrdinaryGetMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetmetadata\r\n function OrdinaryGetMetadata(MetadataKey, O, P) {\r\n var hasOwn = OrdinaryHasOwnMetadata(MetadataKey, O, P);\r\n if (hasOwn)\r\n return OrdinaryGetOwnMetadata(MetadataKey, O, P);\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (!IsNull(parent))\r\n return OrdinaryGetMetadata(MetadataKey, parent, P);\r\n return undefined;\r\n }\r\n // 3.1.4.1 OrdinaryGetOwnMetadata(MetadataKey, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarygetownmetadata\r\n function OrdinaryGetOwnMetadata(MetadataKey, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return undefined;\r\n return metadataMap.get(MetadataKey);\r\n }\r\n // 3.1.5.1 OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarydefineownmetadata\r\n function OrdinaryDefineOwnMetadata(MetadataKey, MetadataValue, O, P) {\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ true);\r\n metadataMap.set(MetadataKey, MetadataValue);\r\n }\r\n // 3.1.6.1 OrdinaryMetadataKeys(O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinarymetadatakeys\r\n function OrdinaryMetadataKeys(O, P) {\r\n var ownKeys = OrdinaryOwnMetadataKeys(O, P);\r\n var parent = OrdinaryGetPrototypeOf(O);\r\n if (parent === null)\r\n return ownKeys;\r\n var parentKeys = OrdinaryMetadataKeys(parent, P);\r\n if (parentKeys.length <= 0)\r\n return ownKeys;\r\n if (ownKeys.length <= 0)\r\n return parentKeys;\r\n var set = new _Set();\r\n var keys = [];\r\n for (var _i = 0, ownKeys_1 = ownKeys; _i < ownKeys_1.length; _i++) {\r\n var key = ownKeys_1[_i];\r\n var hasKey = set.has(key);\r\n if (!hasKey) {\r\n set.add(key);\r\n keys.push(key);\r\n }\r\n }\r\n for (var _a = 0, parentKeys_1 = parentKeys; _a < parentKeys_1.length; _a++) {\r\n var key = parentKeys_1[_a];\r\n var hasKey = set.has(key);\r\n if (!hasKey) {\r\n set.add(key);\r\n keys.push(key);\r\n }\r\n }\r\n return keys;\r\n }\r\n // 3.1.7.1 OrdinaryOwnMetadataKeys(O, P)\r\n // https://rbuckton.github.io/reflect-metadata/#ordinaryownmetadatakeys\r\n function OrdinaryOwnMetadataKeys(O, P) {\r\n var keys = [];\r\n var metadataMap = GetOrCreateMetadataMap(O, P, /*Create*/ false);\r\n if (IsUndefined(metadataMap))\r\n return keys;\r\n var keysObj = metadataMap.keys();\r\n var iterator = GetIterator(keysObj);\r\n var k = 0;\r\n while (true) {\r\n var next = IteratorStep(iterator);\r\n if (!next) {\r\n keys.length = k;\r\n return keys;\r\n }\r\n var nextValue = IteratorValue(next);\r\n try {\r\n keys[k] = nextValue;\r\n }\r\n catch (e) {\r\n try {\r\n IteratorClose(iterator);\r\n }\r\n finally {\r\n throw e;\r\n }\r\n }\r\n k++;\r\n }\r\n }\r\n // 6 ECMAScript Data Typ0es and Values\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-data-types-and-values\r\n function Type(x) {\r\n if (x === null)\r\n return 1 /* Null */;\r\n switch (typeof x) {\r\n case \"undefined\": return 0 /* Undefined */;\r\n case \"boolean\": return 2 /* Boolean */;\r\n case \"string\": return 3 /* String */;\r\n case \"symbol\": return 4 /* Symbol */;\r\n case \"number\": return 5 /* Number */;\r\n case \"object\": return x === null ? 1 /* Null */ : 6 /* Object */;\r\n default: return 6 /* Object */;\r\n }\r\n }\r\n // 6.1.1 The Undefined Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-undefined-type\r\n function IsUndefined(x) {\r\n return x === undefined;\r\n }\r\n // 6.1.2 The Null Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-null-type\r\n function IsNull(x) {\r\n return x === null;\r\n }\r\n // 6.1.5 The Symbol Type\r\n // https://tc39.github.io/ecma262/#sec-ecmascript-language-types-symbol-type\r\n function IsSymbol(x) {\r\n return typeof x === \"symbol\";\r\n }\r\n // 6.1.7 The Object Type\r\n // https://tc39.github.io/ecma262/#sec-object-type\r\n function IsObject(x) {\r\n return typeof x === \"object\" ? x !== null : typeof x === \"function\";\r\n }\r\n // 7.1 Type Conversion\r\n // https://tc39.github.io/ecma262/#sec-type-conversion\r\n // 7.1.1 ToPrimitive(input [, PreferredType])\r\n // https://tc39.github.io/ecma262/#sec-toprimitive\r\n function ToPrimitive(input, PreferredType) {\r\n switch (Type(input)) {\r\n case 0 /* Undefined */: return input;\r\n case 1 /* Null */: return input;\r\n case 2 /* Boolean */: return input;\r\n case 3 /* String */: return input;\r\n case 4 /* Symbol */: return input;\r\n case 5 /* Number */: return input;\r\n }\r\n var hint = PreferredType === 3 /* String */ ? \"string\" : PreferredType === 5 /* Number */ ? \"number\" : \"default\";\r\n var exoticToPrim = GetMethod(input, toPrimitiveSymbol);\r\n if (exoticToPrim !== undefined) {\r\n var result = exoticToPrim.call(input, hint);\r\n if (IsObject(result))\r\n throw new TypeError();\r\n return result;\r\n }\r\n return OrdinaryToPrimitive(input, hint === \"default\" ? \"number\" : hint);\r\n }\r\n // 7.1.1.1 OrdinaryToPrimitive(O, hint)\r\n // https://tc39.github.io/ecma262/#sec-ordinarytoprimitive\r\n function OrdinaryToPrimitive(O, hint) {\r\n if (hint === \"string\") {\r\n var toString_1 = O.toString;\r\n if (IsCallable(toString_1)) {\r\n var result = toString_1.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n var valueOf = O.valueOf;\r\n if (IsCallable(valueOf)) {\r\n var result = valueOf.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n }\r\n else {\r\n var valueOf = O.valueOf;\r\n if (IsCallable(valueOf)) {\r\n var result = valueOf.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n var toString_2 = O.toString;\r\n if (IsCallable(toString_2)) {\r\n var result = toString_2.call(O);\r\n if (!IsObject(result))\r\n return result;\r\n }\r\n }\r\n throw new TypeError();\r\n }\r\n // 7.1.2 ToBoolean(argument)\r\n // https://tc39.github.io/ecma262/2016/#sec-toboolean\r\n function ToBoolean(argument) {\r\n return !!argument;\r\n }\r\n // 7.1.12 ToString(argument)\r\n // https://tc39.github.io/ecma262/#sec-tostring\r\n function ToString(argument) {\r\n return \"\" + argument;\r\n }\r\n // 7.1.14 ToPropertyKey(argument)\r\n // https://tc39.github.io/ecma262/#sec-topropertykey\r\n function ToPropertyKey(argument) {\r\n var key = ToPrimitive(argument, 3 /* String */);\r\n if (IsSymbol(key))\r\n return key;\r\n return ToString(key);\r\n }\r\n // 7.2 Testing and Comparison Operations\r\n // https://tc39.github.io/ecma262/#sec-testing-and-comparison-operations\r\n // 7.2.2 IsArray(argument)\r\n // https://tc39.github.io/ecma262/#sec-isarray\r\n function IsArray(argument) {\r\n return Array.isArray\r\n ? Array.isArray(argument)\r\n : argument instanceof Object\r\n ? argument instanceof Array\r\n : Object.prototype.toString.call(argument) === \"[object Array]\";\r\n }\r\n // 7.2.3 IsCallable(argument)\r\n // https://tc39.github.io/ecma262/#sec-iscallable\r\n function IsCallable(argument) {\r\n // NOTE: This is an approximation as we cannot check for [[Call]] internal method.\r\n return typeof argument === \"function\";\r\n }\r\n // 7.2.4 IsConstructor(argument)\r\n // https://tc39.github.io/ecma262/#sec-isconstructor\r\n function IsConstructor(argument) {\r\n // NOTE: This is an approximation as we cannot check for [[Construct]] internal method.\r\n return typeof argument === \"function\";\r\n }\r\n // 7.2.7 IsPropertyKey(argument)\r\n // https://tc39.github.io/ecma262/#sec-ispropertykey\r\n function IsPropertyKey(argument) {\r\n switch (Type(argument)) {\r\n case 3 /* String */: return true;\r\n case 4 /* Symbol */: return true;\r\n default: return false;\r\n }\r\n }\r\n // 7.3 Operations on Objects\r\n // https://tc39.github.io/ecma262/#sec-operations-on-objects\r\n // 7.3.9 GetMethod(V, P)\r\n // https://tc39.github.io/ecma262/#sec-getmethod\r\n function GetMethod(V, P) {\r\n var func = V[P];\r\n if (func === undefined || func === null)\r\n return undefined;\r\n if (!IsCallable(func))\r\n throw new TypeError();\r\n return func;\r\n }\r\n // 7.4 Operations on Iterator Objects\r\n // https://tc39.github.io/ecma262/#sec-operations-on-iterator-objects\r\n function GetIterator(obj) {\r\n var method = GetMethod(obj, iteratorSymbol);\r\n if (!IsCallable(method))\r\n throw new TypeError(); // from Call\r\n var iterator = method.call(obj);\r\n if (!IsObject(iterator))\r\n throw new TypeError();\r\n return iterator;\r\n }\r\n // 7.4.4 IteratorValue(iterResult)\r\n // https://tc39.github.io/ecma262/2016/#sec-iteratorvalue\r\n function IteratorValue(iterResult) {\r\n return iterResult.value;\r\n }\r\n // 7.4.5 IteratorStep(iterator)\r\n // https://tc39.github.io/ecma262/#sec-iteratorstep\r\n function IteratorStep(iterator) {\r\n var result = iterator.next();\r\n return result.done ? false : result;\r\n }\r\n // 7.4.6 IteratorClose(iterator, completion)\r\n // https://tc39.github.io/ecma262/#sec-iteratorclose\r\n function IteratorClose(iterator) {\r\n var f = iterator[\"return\"];\r\n if (f)\r\n f.call(iterator);\r\n }\r\n // 9.1 Ordinary Object Internal Methods and Internal Slots\r\n // https://tc39.github.io/ecma262/#sec-ordinary-object-internal-methods-and-internal-slots\r\n // 9.1.1.1 OrdinaryGetPrototypeOf(O)\r\n // https://tc39.github.io/ecma262/#sec-ordinarygetprototypeof\r\n function OrdinaryGetPrototypeOf(O) {\r\n var proto = Object.getPrototypeOf(O);\r\n if (typeof O !== \"function\" || O === functionPrototype)\r\n return proto;\r\n // TypeScript doesn't set __proto__ in ES5, as it's non-standard.\r\n // Try to determine the superclass constructor. Compatible implementations\r\n // must either set __proto__ on a subclass constructor to the superclass constructor,\r\n // or ensure each class has a valid `constructor` property on its prototype that\r\n // points back to the constructor.\r\n // If this is not the same as Function.[[Prototype]], then this is definately inherited.\r\n // This is the case when in ES6 or when using __proto__ in a compatible browser.\r\n if (proto !== functionPrototype)\r\n return proto;\r\n // If the super prototype is Object.prototype, null, or undefined, then we cannot determine the heritage.\r\n var prototype = O.prototype;\r\n var prototypeProto = prototype && Object.getPrototypeOf(prototype);\r\n if (prototypeProto == null || prototypeProto === Object.prototype)\r\n return proto;\r\n // If the constructor was not a function, then we cannot determine the heritage.\r\n var constructor = prototypeProto.constructor;\r\n if (typeof constructor !== \"function\")\r\n return proto;\r\n // If we have some kind of self-reference, then we cannot determine the heritage.\r\n if (constructor === O)\r\n return proto;\r\n // we have a pretty good guess at the heritage.\r\n return constructor;\r\n }\r\n // naive Map shim\r\n function CreateMapPolyfill() {\r\n var cacheSentinel = {};\r\n var arraySentinel = [];\r\n var MapIterator = (function () {\r\n function MapIterator(keys, values, selector) {\r\n this._index = 0;\r\n this._keys = keys;\r\n this._values = values;\r\n this._selector = selector;\r\n }\r\n MapIterator.prototype[\"@@iterator\"] = function () { return this; };\r\n MapIterator.prototype[iteratorSymbol] = function () { return this; };\r\n MapIterator.prototype.next = function () {\r\n var index = this._index;\r\n if (index >= 0 && index < this._keys.length) {\r\n var result = this._selector(this._keys[index], this._values[index]);\r\n if (index + 1 >= this._keys.length) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n else {\r\n this._index++;\r\n }\r\n return { value: result, done: false };\r\n }\r\n return { value: undefined, done: true };\r\n };\r\n MapIterator.prototype.throw = function (error) {\r\n if (this._index >= 0) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n throw error;\r\n };\r\n MapIterator.prototype.return = function (value) {\r\n if (this._index >= 0) {\r\n this._index = -1;\r\n this._keys = arraySentinel;\r\n this._values = arraySentinel;\r\n }\r\n return { value: value, done: true };\r\n };\r\n return MapIterator;\r\n }());\r\n return (function () {\r\n function Map() {\r\n this._keys = [];\r\n this._values = [];\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n }\r\n Object.defineProperty(Map.prototype, \"size\", {\r\n get: function () { return this._keys.length; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Map.prototype.has = function (key) { return this._find(key, /*insert*/ false) >= 0; };\r\n Map.prototype.get = function (key) {\r\n var index = this._find(key, /*insert*/ false);\r\n return index >= 0 ? this._values[index] : undefined;\r\n };\r\n Map.prototype.set = function (key, value) {\r\n var index = this._find(key, /*insert*/ true);\r\n this._values[index] = value;\r\n return this;\r\n };\r\n Map.prototype.delete = function (key) {\r\n var index = this._find(key, /*insert*/ false);\r\n if (index >= 0) {\r\n var size = this._keys.length;\r\n for (var i = index + 1; i < size; i++) {\r\n this._keys[i - 1] = this._keys[i];\r\n this._values[i - 1] = this._values[i];\r\n }\r\n this._keys.length--;\r\n this._values.length--;\r\n if (key === this._cacheKey) {\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n }\r\n return true;\r\n }\r\n return false;\r\n };\r\n Map.prototype.clear = function () {\r\n this._keys.length = 0;\r\n this._values.length = 0;\r\n this._cacheKey = cacheSentinel;\r\n this._cacheIndex = -2;\r\n };\r\n Map.prototype.keys = function () { return new MapIterator(this._keys, this._values, getKey); };\r\n Map.prototype.values = function () { return new MapIterator(this._keys, this._values, getValue); };\r\n Map.prototype.entries = function () { return new MapIterator(this._keys, this._values, getEntry); };\r\n Map.prototype[\"@@iterator\"] = function () { return this.entries(); };\r\n Map.prototype[iteratorSymbol] = function () { return this.entries(); };\r\n Map.prototype._find = function (key, insert) {\r\n if (this._cacheKey !== key) {\r\n this._cacheIndex = this._keys.indexOf(this._cacheKey = key);\r\n }\r\n if (this._cacheIndex < 0 && insert) {\r\n this._cacheIndex = this._keys.length;\r\n this._keys.push(key);\r\n this._values.push(undefined);\r\n }\r\n return this._cacheIndex;\r\n };\r\n return Map;\r\n }());\r\n function getKey(key, _) {\r\n return key;\r\n }\r\n function getValue(_, value) {\r\n return value;\r\n }\r\n function getEntry(key, value) {\r\n return [key, value];\r\n }\r\n }\r\n // naive Set shim\r\n function CreateSetPolyfill() {\r\n return (function () {\r\n function Set() {\r\n this._map = new _Map();\r\n }\r\n Object.defineProperty(Set.prototype, \"size\", {\r\n get: function () { return this._map.size; },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n Set.prototype.has = function (value) { return this._map.has(value); };\r\n Set.prototype.add = function (value) { return this._map.set(value, value), this; };\r\n Set.prototype.delete = function (value) { return this._map.delete(value); };\r\n Set.prototype.clear = function () { this._map.clear(); };\r\n Set.prototype.keys = function () { return this._map.keys(); };\r\n Set.prototype.values = function () { return this._map.values(); };\r\n Set.prototype.entries = function () { return this._map.entries(); };\r\n Set.prototype[\"@@iterator\"] = function () { return this.keys(); };\r\n Set.prototype[iteratorSymbol] = function () { return this.keys(); };\r\n return Set;\r\n }());\r\n }\r\n // naive WeakMap shim\r\n function CreateWeakMapPolyfill() {\r\n var UUID_SIZE = 16;\r\n var keys = HashMap.create();\r\n var rootKey = CreateUniqueKey();\r\n return (function () {\r\n function WeakMap() {\r\n this._key = CreateUniqueKey();\r\n }\r\n WeakMap.prototype.has = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? HashMap.has(table, this._key) : false;\r\n };\r\n WeakMap.prototype.get = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? HashMap.get(table, this._key) : undefined;\r\n };\r\n WeakMap.prototype.set = function (target, value) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ true);\r\n table[this._key] = value;\r\n return this;\r\n };\r\n WeakMap.prototype.delete = function (target) {\r\n var table = GetOrCreateWeakMapTable(target, /*create*/ false);\r\n return table !== undefined ? delete table[this._key] : false;\r\n };\r\n WeakMap.prototype.clear = function () {\r\n // NOTE: not a real clear, just makes the previous data unreachable\r\n this._key = CreateUniqueKey();\r\n };\r\n return WeakMap;\r\n }());\r\n function CreateUniqueKey() {\r\n var key;\r\n do\r\n key = \"@@WeakMap@@\" + CreateUUID();\r\n while (HashMap.has(keys, key));\r\n keys[key] = true;\r\n return key;\r\n }\r\n function GetOrCreateWeakMapTable(target, create) {\r\n if (!hasOwn.call(target, rootKey)) {\r\n if (!create)\r\n return undefined;\r\n Object.defineProperty(target, rootKey, { value: HashMap.create() });\r\n }\r\n return target[rootKey];\r\n }\r\n function FillRandomBytes(buffer, size) {\r\n for (var i = 0; i < size; ++i)\r\n buffer[i] = Math.random() * 0xff | 0;\r\n return buffer;\r\n }\r\n function GenRandomBytes(size) {\r\n if (typeof Uint8Array === \"function\") {\r\n if (typeof crypto !== \"undefined\")\r\n return crypto.getRandomValues(new Uint8Array(size));\r\n if (typeof msCrypto !== \"undefined\")\r\n return msCrypto.getRandomValues(new Uint8Array(size));\r\n return FillRandomBytes(new Uint8Array(size), size);\r\n }\r\n return FillRandomBytes(new Array(size), size);\r\n }\r\n function CreateUUID() {\r\n var data = GenRandomBytes(UUID_SIZE);\r\n // mark as random - RFC 4122 § 4.4\r\n data[6] = data[6] & 0x4f | 0x40;\r\n data[8] = data[8] & 0xbf | 0x80;\r\n var result = \"\";\r\n for (var offset = 0; offset < UUID_SIZE; ++offset) {\r\n var byte = data[offset];\r\n if (offset === 4 || offset === 6 || offset === 8)\r\n result += \"-\";\r\n if (byte < 16)\r\n result += \"0\";\r\n result += byte.toString(16).toLowerCase();\r\n }\r\n return result;\r\n }\r\n }\r\n // uses a heuristic used by v8 and chakra to force an object into dictionary mode.\r\n function MakeDictionary(obj) {\r\n obj.__ = undefined;\r\n delete obj.__;\r\n return obj;\r\n }\r\n });\r\n})(Reflect || (Reflect = {}));\r\n//# sourceMappingURL=Reflect.js.map","import { render, staticRenderFns } from \"./menu.vue?vue&type=template&id=30b43317&scoped=true\"\nimport script from \"./menu.vue?vue&type=script&lang=ts\"\nexport * from \"./menu.vue?vue&type=script&lang=ts\"\nimport style0 from \"./menu.vue?vue&type=style&index=0&id=30b43317&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 \"30b43317\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('30b43317', component.options)\n } else {\n api.reload('30b43317', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\menu.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { attrs: { id: \"divMenu\" } }, [\n _c(\"span\", { staticClass: \"title\" }, [_vm._v(\" IDBStudio \")]),\n _vm._v(\" \"),\n _c(\"ul\", { staticClass: \"right-menu\" }, [\n _vm._m(0),\n _vm._v(\" \"),\n _c(\"li\", { staticClass: \"seperator\" }, [_vm._v(\"|\")]),\n _vm._v(\" \"),\n _c(\"li\", [\n _c(\n \"a\",\n {\n attrs: {\n title: \"fork on github\",\n target: \"_blank\",\n href: \"https://github.com/ujjwalguptaofficial/idbstudio/fork\"\n }\n },\n [\n _c(\n \"svg\",\n {\n staticClass: \"octicon octicon-repo-forked\",\n staticStyle: { fill: \"white\", \"vertical-align\": \"sub\" },\n attrs: {\n version: \"1.1\",\n width: \"10\",\n height: \"18\",\n viewBox: \"0 0 10 16\",\n \"aria-hidden\": \"true\"\n }\n },\n [\n _c(\"path\", {\n attrs: {\n \"fill-rule\": \"evenodd\",\n d:\n \"M8 1a1.993 1.993 0 0 0-1 3.72V6L5 8 3 6V4.72A1.993 1.993 0 0 0 2 1a1.993 1.993 0 0 0-1 3.72V6.5l3 3v1.78A1.993 1.993 0 0 0 5 15a1.993 1.993 0 0 0 1-3.72V9.5l3-3V4.72A1.993 1.993 0 0 0 8 1zM2 4.2C1.34 4.2.8 3.65.8 3c0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3 10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2zm3-10c-.66 0-1.2-.55-1.2-1.2 0-.65.55-1.2 1.2-1.2.65 0 1.2.55 1.2 1.2 0 .65-.55 1.2-1.2 1.2z\"\n }\n })\n ]\n ),\n _vm._v(\" Fork\")\n ]\n )\n ])\n ])\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"li\", [\n _c(\n \"a\",\n {\n attrs: {\n target: \"_blank\",\n href: \"https://github.com/ujjwalguptaofficial/idbstudio\"\n }\n },\n [_c(\"i\", { staticClass: \"fas fa-star\" }), _vm._v(\" Star\")]\n )\n ])\n }\n]\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('30b43317', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\n\r\n@Component\r\nexport default class Menu extends Vue {\r\n dbName: string = \"\";\r\n createNewQry() {\r\n vueEvent.$emit(\"open_editor\");\r\n }\r\n\r\n setDbName(dbName: string) {\r\n this.dbName = dbName;\r\n }\r\n\r\n catchEvent() {\r\n vueEvent.$on(\"db_selected\", (dbName: string) => {\r\n console.log(dbName);\r\n this.setDbName(dbName);\r\n });\r\n }\r\n\r\n executeQry() {\r\n vueEvent.$emit(\"execute_qry\");\r\n }\r\n\r\n constructor() {\r\n super();\r\n this.catchEvent();\r\n }\r\n}\r\n","import Vue from \"vue\";\r\nexport const vueEvent = new Vue();","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e10ab6cc\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./menu.vue?vue&type=style&index=0&id=30b43317&lang=scss&scoped=true\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#divMenu[data-v-30b43317] {\\n background-color: #2c3e50;\\n width: 100%;\\n line-height: 45px;\\n color: white;\\n height: 50px;\\n}\\n#divMenu a[data-v-30b43317] {\\n color: white;\\n}\\n#divMenu ul li[data-v-30b43317] {\\n display: inline-block;\\n}\\n#divMenu .right-menu[data-v-30b43317] {\\n float: right;\\n position: relative;\\n right: 10px;\\n}\\n#divMenu .title[data-v-30b43317] {\\n margin-left: 15px;\\n font-size: 20px;\\n line-height: 50px;\\n font-family: Allerta;\\n}\\n\", \"\"]);\n\n// exports\n","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () { injectStyles.call(this, this.$root.$options.shadowRoot) }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functioal component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","import { render, staticRenderFns } from \"./db_info.vue?vue&type=template&id=3063ac47&scoped=true\"\nimport script from \"./db_info.vue?vue&type=script&lang=ts\"\nexport * from \"./db_info.vue?vue&type=script&lang=ts\"\nimport style0 from \"./db_info.vue?vue&type=style&index=0&id=3063ac47&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 \"3063ac47\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('3063ac47', component.options)\n } else {\n api.reload('3063ac47', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\db_info.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"b-form-select\",\n {\n staticClass: \"mb-3 db-list\",\n model: {\n value: _vm.selectedDb,\n callback: function($$v) {\n _vm.selectedDb = $$v\n },\n expression: \"selectedDb\"\n }\n },\n [\n _c(\"option\", { attrs: { value: \"null\" } }, [\n _vm._v(\"--Select Database--\")\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.dbList, function(db) {\n return _c(\"option\", { key: db, domProps: { value: db } }, [\n _vm._v(_vm._s(db))\n ])\n })\n ],\n 2\n ),\n _vm._v(\" \"),\n _c(\"table\", [\n _c(\"thead\"),\n _vm._v(\" \"),\n _c(\n \"tbody\",\n _vm._l(_vm.dbInfo.tables, function(table) {\n return _c(\"tr\", { key: table.name }, [\n _c(\n \"td\",\n [\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"b-toggle\",\n rawName: \"v-b-toggle\",\n value: table.name,\n expression: \"table.name\"\n }\n ],\n staticClass: \"table-name\",\n on: {\n contextmenu: function($event) {\n $event.preventDefault()\n _vm.$refs.ctxMenu.open($event, { table: table.name })\n }\n }\n },\n [\n _vm._v(\n \"\\n \" + _vm._s(table.name) + \"\\n \"\n ),\n _c(\"i\", { staticClass: \"fas fa-plus\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-collapse\",\n { staticClass: \"ml-4\", attrs: { id: table.name } },\n _vm._l(table.columns, function(column) {\n return _c(\n \"div\",\n { key: column.name, staticClass: \"column-name\" },\n [\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"b-toggle\",\n rawName: \"v-b-toggle\",\n value: column.name,\n expression: \"column.name\"\n }\n ]\n },\n [\n _vm._v(\n _vm._s(column.name) + \"\\n \"\n ),\n _c(\"i\", { staticClass: \"fas fa-plus-square\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-collapse\",\n { staticClass: \"ml-4\", attrs: { id: column.name } },\n [\n _c(\"div\", [\n _vm._v(\"Primary Key :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.primaryKey))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Auto Increment :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.autoIncrement))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Not Null:\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.notNull))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Data Type :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.dataType))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Default :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.default))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Unique :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.unique))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Multi Entry :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.multiEntry))\n ])\n ]),\n _vm._v(\" \"),\n _c(\"div\", [\n _vm._v(\"Enable Search :\\n \"),\n _c(\"span\", { staticClass: \"column-schema\" }, [\n _vm._v(_vm._s(column.enableSearch))\n ])\n ])\n ]\n )\n ],\n 1\n )\n })\n )\n ],\n 1\n )\n ])\n })\n ),\n _vm._v(\" \"),\n _c(\"tfoot\")\n ]),\n _vm._v(\" \"),\n _c(\n \"context-menu\",\n {\n ref: \"ctxMenu\",\n attrs: { id: \"context-menu\" },\n on: { \"ctx-open\": _vm.onCtxOpen, \"ctx-cancel\": _vm.onCtxOff }\n },\n [\n _c(\"li\", { staticClass: \"ctx-item\", on: { click: _vm.select100 } }, [\n _vm._v(\"Select 100 Record\")\n ]),\n _vm._v(\" \"),\n _c(\"li\", { staticClass: \"ctx-item\", on: { click: _vm.countTotal } }, [\n _vm._v(\"Count Total Record\")\n ]),\n _vm._v(\" \"),\n _c(\"li\", { staticClass: \"ctx-item\", on: { click: _vm.exportJson } }, [\n _vm._v(\"Export As Json\")\n ])\n ]\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('3063ac47', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { MainService } from \"../service/main_service\";\r\nimport { IFormSelect } from \"../interfaces/form_select\";\r\nimport { IDataBase } from \"jsstore\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport contextMenu from \"vue-context-menu\";\r\n\r\n@Component({\r\n props: {\r\n selectedDb: String\r\n },\r\n components: {\r\n contextMenu\r\n }\r\n})\r\nexport default class DbInfo extends Vue {\r\n dbInfo: IDataBase = {\r\n tables: []\r\n } as any;\r\n selectedDb!: string;\r\n dbList: string[] = [];\r\n menuData = {};\r\n\r\n constructor() {\r\n super();\r\n this.catchEvent();\r\n }\r\n\r\n mounted() {\r\n this.setDbInfo();\r\n }\r\n\r\n onCtxOpen(value) {\r\n this.menuData = value;\r\n }\r\n\r\n onCtxOff() {\r\n this.menuData = {};\r\n }\r\n\r\n setDbInfo() {\r\n var mainService = new MainService();\r\n mainService.openDb(this.selectedDb);\r\n mainService.getDbSchema(this.selectedDb).then(result => {\r\n this.dbInfo = result;\r\n });\r\n mainService.getDbList().then(list => {\r\n this.dbList = list;\r\n });\r\n vueEvent.$emit(\"db_info_loaded\");\r\n }\r\n\r\n catchEvent() {\r\n vueEvent.$on(\"get_current_db\", () => {\r\n vueEvent.$emit(\"take_current_db\", this.selectedDb);\r\n });\r\n }\r\n\r\n select100() {\r\n var table = (this.menuData as any).table;\r\n var qry = `select({\r\n from:'${table}',\r\n limit:100\\n})`;\r\n vueEvent.$emit(\"set_qry\", qry);\r\n vueEvent.$emit(\"run_qry\");\r\n }\r\n\r\n countTotal() {\r\n var table = (this.menuData as any).table;\r\n var qry = `count({\r\n from:'${table}'\\n})`;\r\n vueEvent.$emit(\"set_qry\", qry);\r\n vueEvent.$emit(\"run_qry\");\r\n }\r\n\r\n exportJson(){\r\n var table = (this.menuData as any).table;\r\n var qry = `exportJson({\r\n from:'${table}'\\n})`;\r\n vueEvent.$emit(\"set_qry\", qry);\r\n vueEvent.$emit(\"run_qry\");\r\n }\r\n}\r\n","import { BaseService } from \"./base_service\";\r\nimport { IResult } from \"../interfaces/result\";\r\nimport { Config } from \"jsstore\";\r\nexport class MainService extends BaseService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public executeQry(query: string): Promise<IResult> {\r\n if (Config.isLogEnabled === true) {\r\n console.log(\"qry from service - \" + query);\r\n }\r\n const con = this.connection;\r\n return new Promise((resolve, reject) => {\r\n var startTime = performance.now();\r\n this.evaluateQry_(query).then(qryResult => {\r\n const idbResult: IResult = {\r\n timeTaken: (performance.now() - startTime) / 1000,\r\n result: qryResult\r\n };\r\n resolve(idbResult);\r\n if (Config.isLogEnabled === true) {\r\n console.log(\"result from service evaluated\");\r\n }\r\n }).catch(err => {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n private evaluateQry_(query: string) {\r\n return eval(query);\r\n }\r\n}","\r\nimport { ServiceHelper } from './service_helper';\r\nimport { Config } from 'jsstore';\r\nexport class BaseService {\r\n\r\n constructor() {\r\n this.connection.setLogStatus(Config.isLogEnabled);\r\n }\r\n\r\n public openDb(dbName: string) {\r\n return this.connection.openDb(dbName);\r\n }\r\n\r\n public getDbSchema(dbName: string) {\r\n return this.connection.getDbSchema(dbName);\r\n }\r\n\r\n protected get connection() {\r\n return ServiceHelper.idbCon;\r\n }\r\n\r\n public getDbList() {\r\n return this.connection.getDbList();\r\n }\r\n\r\n public isDbExist(dbName: string) {\r\n return this.connection.isDbExist(dbName);\r\n }\r\n\r\n}","import * as JsStore from 'jsstore';\r\nimport * as workerPath from \"file-loader?name=scripts/[name].[hash].js!jsstore/dist/jsstore.worker.js\";\r\n\r\nexport class ServiceHelper {\r\n static idbCon = new JsStore.Instance(new Worker(workerPath));\r\n}\r\n\r\n(window as any).con = ServiceHelper.idbCon;","/*!\n * @license :jsstore - V2.2.1 - 01/07/2018\n * https://github.com/ujjwalguptaofficial/JsStore\n * Copyright (c) 2018 @Ujjwal Gupta; Licensed MIT\n */\nmodule.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, {\n/******/ \t\t\t\tconfigurable: false,\n/******/ \t\t\t\tenumerable: true,\n/******/ \t\t\t\tget: getter\n/******/ \t\t\t});\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _instance__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Instance\", function() { return _instance__WEBPACK_IMPORTED_MODULE_0__[\"Instance\"]; });\n\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ERROR_TYPE\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"ERROR_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"WORKER_STATUS\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"WORKER_STATUS\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"DATA_TYPE\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"DATA_TYPE\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"COL_OPTION\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"COL_OPTION\"]; });\n\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"API\", function() { return _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"]; });\n\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Config\", function() { return _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"]; });\n\n/* harmony import */ var _helper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"enableLog\", function() { return _helper__WEBPACK_IMPORTED_MODULE_3__[\"enableLog\"]; });\n\n/* harmony import */ var _model_index__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return _model_index__WEBPACK_IMPORTED_MODULE_4__[\"Column\"]; });\n\n\r\n\r\n\r\n\r\n\r\n\n\n/***/ }),\n/* 1 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Instance\", function() { return Instance; });\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _instance_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\nvar __extends = (undefined && undefined.__extends) || (function () {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return function (d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\n\r\n\r\n\r\nvar Instance = /** @class */ (function (_super) {\r\n __extends(Instance, _super);\r\n function Instance(worker) {\r\n return _super.call(this, worker) || this;\r\n }\r\n /**\r\n * open database\r\n *\r\n * @param {string} dbName\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.openDb = function (dbName) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].OpenDb,\r\n query: dbName\r\n });\r\n };\r\n /**\r\n * creates DataBase\r\n *\r\n * @param {IDataBase} dataBase\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.createDb = function (dataBase) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].CreateDb,\r\n query: dataBase\r\n });\r\n };\r\n /**\r\n * drop dataBase\r\n *\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.dropDb = function () {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].DropDb,\r\n query: null\r\n });\r\n };\r\n /**\r\n * select data from table\r\n *\r\n * @template T\r\n * @param {ISelect} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.select = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Select,\r\n query: query\r\n });\r\n };\r\n /**\r\n * get no of record from table\r\n *\r\n * @param {ICount} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.count = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Count,\r\n query: query\r\n });\r\n };\r\n /**\r\n * insert data into table\r\n *\r\n * @param {IInsert} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.insert = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Insert,\r\n query: query\r\n });\r\n };\r\n /**\r\n * update data into table\r\n *\r\n * @param {IUpdate} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.update = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Update,\r\n query: query\r\n });\r\n };\r\n /**\r\n * remove data from table\r\n *\r\n * @param {IRemove} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.remove = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Remove,\r\n query: query\r\n });\r\n };\r\n /**\r\n * delete all data from table\r\n *\r\n * @param {string} tableName\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.clear = function (tableName) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Clear,\r\n query: tableName\r\n });\r\n };\r\n /**\r\n * insert bulk amount of data\r\n *\r\n * @param {IInsert} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.bulkInsert = function (query) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].BulkInsert,\r\n query: query\r\n });\r\n };\r\n /**\r\n * export the result in json file\r\n *\r\n * @param {ISelect} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.exportJson = function (query) {\r\n var _this = this;\r\n var onSuccess = function (url) {\r\n var link = document.createElement(\"a\");\r\n link.href = url;\r\n link.download = query.from + \".json\";\r\n link.click();\r\n };\r\n return new Promise(function (resolve, reject) {\r\n _this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].ExportJson,\r\n query: query\r\n }).then(function (url) {\r\n onSuccess(url);\r\n resolve();\r\n }).catch(function (err) {\r\n reject(err);\r\n });\r\n });\r\n };\r\n /**\r\n * set log status\r\n *\r\n * @param {boolean} status\r\n * @memberof Instance\r\n */\r\n Instance.prototype.setLogStatus = function (status) {\r\n _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isLogEnabled = status ? status : _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isLogEnabled;\r\n this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].ChangeLogStatus,\r\n query: _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isLogEnabled\r\n });\r\n };\r\n /**\r\n * get version of database\r\n *\r\n * @param {(string | IDbInfo)} dbName\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.getDbVersion = function (dbName) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].GetDbVersion,\r\n query: dbName\r\n });\r\n };\r\n /**\r\n * is database exist\r\n *\r\n * @param {(IDbInfo | string)} dbInfo\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.isDbExist = function (dbInfo) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].IsDbExist,\r\n query: dbInfo\r\n });\r\n };\r\n /**\r\n * returns list of database created\r\n *\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.getDbList = function () {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].GetDbList,\r\n query: null\r\n });\r\n };\r\n /**\r\n * get Database Schema\r\n *\r\n * @param {string} dbName\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.getDbSchema = function (dbName) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].GetDbSchema,\r\n query: dbName\r\n });\r\n };\r\n /**\r\n * get the value from keystore table\r\n *\r\n * @param {string} key\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.get = function (key) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Get,\r\n query: key\r\n });\r\n };\r\n /**\r\n * set the value in keystore table\r\n *\r\n * @param {string} key\r\n * @param {*} value\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.set = function (key, value) {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Set,\r\n query: {\r\n key: key, value: value\r\n }\r\n });\r\n };\r\n /**\r\n * terminate the connection\r\n *\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.terminate = function () {\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Terminate,\r\n query: null\r\n });\r\n };\r\n /**\r\n * execute the transaction\r\n *\r\n * @param {ITranscationQry} query\r\n * @returns\r\n * @memberof Instance\r\n */\r\n Instance.prototype.transaction = function (query) {\r\n query.logic = query.logic.toString();\r\n return this.pushApi({\r\n name: _enums__WEBPACK_IMPORTED_MODULE_0__[\"API\"].Transaction,\r\n query: query\r\n });\r\n };\r\n return Instance;\r\n}(_instance_helper__WEBPACK_IMPORTED_MODULE_1__[\"InstanceHelper\"]));\r\n\r\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"ERROR_TYPE\", function() { return ERROR_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"WORKER_STATUS\", function() { return WORKER_STATUS; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"DATA_TYPE\", function() { return DATA_TYPE; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"COL_OPTION\", function() { return COL_OPTION; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"API\", function() { return API; });\nvar ERROR_TYPE;\r\n(function (ERROR_TYPE) {\r\n ERROR_TYPE[\"WorkerNotSupplied\"] = \"worker_not_supplied\";\r\n ERROR_TYPE[\"IndexedDbUndefined\"] = \"indexeddb_undefined\";\r\n})(ERROR_TYPE || (ERROR_TYPE = {}));\r\nvar WORKER_STATUS;\r\n(function (WORKER_STATUS) {\r\n WORKER_STATUS[\"Registered\"] = \"registerd\";\r\n WORKER_STATUS[\"Failed\"] = \"failed\";\r\n WORKER_STATUS[\"NotStarted\"] = \"not_started\";\r\n})(WORKER_STATUS || (WORKER_STATUS = {}));\r\nvar DATA_TYPE;\r\n(function (DATA_TYPE) {\r\n DATA_TYPE[\"String\"] = \"string\";\r\n DATA_TYPE[\"Object\"] = \"object\";\r\n DATA_TYPE[\"Array\"] = \"array\";\r\n DATA_TYPE[\"Number\"] = \"number\";\r\n DATA_TYPE[\"Boolean\"] = \"boolean\";\r\n DATA_TYPE[\"Null\"] = \"null\";\r\n DATA_TYPE[\"DateTime\"] = \"date_time\";\r\n})(DATA_TYPE || (DATA_TYPE = {}));\r\nvar COL_OPTION;\r\n(function (COL_OPTION) {\r\n COL_OPTION[\"PrimaryKey\"] = \"primary_key\";\r\n COL_OPTION[\"AutoIncrement\"] = \"auto_increment\";\r\n COL_OPTION[\"Unique\"] = \"unique\";\r\n COL_OPTION[\"NotNull\"] = \"not_null\";\r\n COL_OPTION[\"MultiEntry\"] = \"multi_entry\";\r\n})(COL_OPTION || (COL_OPTION = {}));\r\nvar API;\r\n(function (API) {\r\n API[\"CreateDb\"] = \"create_db\";\r\n API[\"IsDbExist\"] = \"is_db_exist\";\r\n API[\"GetDbVersion\"] = \"get_db_version\";\r\n API[\"GetDbList\"] = \"get_db_list\";\r\n API[\"Get\"] = \"get\";\r\n API[\"Set\"] = \"set\";\r\n API[\"Select\"] = \"select\";\r\n API[\"Insert\"] = \"insert\";\r\n API[\"Update\"] = \"update\";\r\n API[\"Remove\"] = \"remove\";\r\n API[\"GetDbSchema\"] = \"get_db_schema\";\r\n API[\"OpenDb\"] = \"open_db\";\r\n API[\"Clear\"] = \"clear\";\r\n API[\"DropDb\"] = \"drop_db\";\r\n API[\"Count\"] = \"count\";\r\n API[\"BulkInsert\"] = \"bulk_insert\";\r\n API[\"ExportJson\"] = \"export_json\";\r\n API[\"ChangeLogStatus\"] = \"change_log_status\";\r\n API[\"Terminate\"] = \"terminate\";\r\n API[\"Transaction\"] = \"transaction\";\r\n})(API || (API = {}));\r\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"InstanceHelper\", function() { return InstanceHelper; });\n/* harmony import */ var _log_helper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4);\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5);\n\r\n\r\n\r\nvar InstanceHelper = /** @class */ (function () {\r\n function InstanceHelper(worker) {\r\n this.isDbOpened_ = false;\r\n this.requestQueue_ = [];\r\n this.isCodeExecuting_ = false;\r\n this.whiteListApi_ = [\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].CreateDb,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].IsDbExist,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].GetDbVersion,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].GetDbList,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].OpenDb,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].GetDbSchema,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].Get,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].Set,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].ChangeLogStatus,\r\n _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].Terminate\r\n ];\r\n if (worker) {\r\n this.worker_ = worker;\r\n this.worker_.onmessage = this.onMessageFromWorker_.bind(this);\r\n }\r\n else {\r\n _config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isRuningInWorker = false;\r\n this.queryExecutor_ = new JsStoreWorker.QueryExecutor(this.processFinishedQuery_.bind(this));\r\n }\r\n }\r\n InstanceHelper.prototype.onMessageFromWorker_ = function (msg) {\r\n this.processFinishedQuery_(msg.data);\r\n };\r\n InstanceHelper.prototype.processFinishedQuery_ = function (message) {\r\n var finishedRequest = this.requestQueue_.shift();\r\n if (finishedRequest) {\r\n _log_helper__WEBPACK_IMPORTED_MODULE_0__[\"LogHelper\"].log(\"request finished : \" + finishedRequest.name);\r\n if (message.errorOccured) {\r\n if (finishedRequest.onError) {\r\n finishedRequest.onError(message.errorDetails);\r\n }\r\n }\r\n else {\r\n if (finishedRequest.onSuccess) {\r\n var openDbQueries = [\"open_db\", \"create_db\"];\r\n if (openDbQueries.indexOf(finishedRequest.name) >= 0) {\r\n this.isDbOpened_ = true;\r\n }\r\n finishedRequest.onSuccess(message.returnedValue);\r\n }\r\n }\r\n this.isCodeExecuting_ = false;\r\n this.executeQry_();\r\n }\r\n };\r\n InstanceHelper.prototype.pushApi = function (request) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n request.onSuccess = function (result) {\r\n resolve(result);\r\n };\r\n request.onError = function (error) {\r\n reject(error);\r\n };\r\n _this.prcoessExecutionOfQry_(request);\r\n });\r\n };\r\n InstanceHelper.prototype.prcoessExecutionOfQry_ = function (request) {\r\n this.requestQueue_.push(request);\r\n this.executeQry_();\r\n _log_helper__WEBPACK_IMPORTED_MODULE_0__[\"LogHelper\"].log(\"request pushed: \" + request.name);\r\n };\r\n InstanceHelper.prototype.executeQry_ = function () {\r\n var _this = this;\r\n if (!this.isCodeExecuting_ && this.requestQueue_.length > 0) {\r\n if (this.isDbOpened_) {\r\n this.sendRequestToWorker_(this.requestQueue_[0]);\r\n return;\r\n }\r\n var allowedQueryIndex = this.requestQueue_.findIndex(function (item) { return _this.whiteListApi_.indexOf(item.name) >= 0; });\r\n // shift allowed query to zeroth index\r\n if (allowedQueryIndex >= 0) {\r\n this.requestQueue_.splice(0, 0, this.requestQueue_.splice(allowedQueryIndex, 1)[0]);\r\n this.sendRequestToWorker_(this.requestQueue_[0]);\r\n }\r\n }\r\n };\r\n InstanceHelper.prototype.sendRequestToWorker_ = function (request) {\r\n this.isCodeExecuting_ = true;\r\n _log_helper__WEBPACK_IMPORTED_MODULE_0__[\"LogHelper\"].log(\"request executing : \" + request.name);\r\n if (request.name === _enums__WEBPACK_IMPORTED_MODULE_1__[\"API\"].Terminate) {\r\n if (_config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isRuningInWorker === true) {\r\n this.worker_.terminate();\r\n }\r\n this.isDbOpened_ = false;\r\n this.processFinishedQuery_({\r\n returnedValue: null\r\n });\r\n }\r\n else {\r\n var requestForWorker = {\r\n name: request.name,\r\n query: request.query\r\n };\r\n if (_config__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].isRuningInWorker === true) {\r\n this.worker_.postMessage(requestForWorker);\r\n }\r\n else {\r\n this.queryExecutor_.checkConnectionAndExecuteLogic(requestForWorker);\r\n }\r\n }\r\n };\r\n return InstanceHelper;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"LogHelper\", function() { return LogHelper; });\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5);\n\r\n\r\nvar LogHelper = /** @class */ (function () {\r\n function LogHelper(type, info) {\r\n if (info === void 0) { info = null; }\r\n this.type = type;\r\n this._info = info;\r\n this.message = this.getMsg();\r\n }\r\n LogHelper.prototype.throw = function () {\r\n throw this.get();\r\n };\r\n LogHelper.log = function (msg) {\r\n if (_config__WEBPACK_IMPORTED_MODULE_1__[\"Config\"].isLogEnabled) {\r\n console.log(msg);\r\n }\r\n };\r\n LogHelper.prototype.logError = function () {\r\n console.error(this.get());\r\n };\r\n LogHelper.prototype.logWarning = function () {\r\n console.warn(this.get());\r\n };\r\n LogHelper.prototype.get = function () {\r\n return {\r\n message: this.message,\r\n type: this.type\r\n };\r\n };\r\n LogHelper.prototype.getMsg = function () {\r\n var errMsg;\r\n switch (this.type) {\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"ERROR_TYPE\"].WorkerNotSupplied:\r\n errMsg = \"Worker object is not passed in instance constructor\";\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"ERROR_TYPE\"].IndexedDbUndefined:\r\n errMsg = \"Browser does not support indexeddb\";\r\n break;\r\n default:\r\n errMsg = this.message;\r\n break;\r\n }\r\n return errMsg;\r\n };\r\n return LogHelper;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Config\", function() { return Config; });\nvar Config = /** @class */ (function () {\r\n function Config() {\r\n }\r\n Config.isLogEnabled = false;\r\n Config.isRuningInWorker = true;\r\n return Config;\r\n}());\r\n\r\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"enableLog\", function() { return enableLog; });\n/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5);\n\r\n/**\r\n * Enable log\r\n *\r\n */\r\nvar enableLog = function () {\r\n _config__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].isLogEnabled = true;\r\n};\r\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _column__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return _column__WEBPACK_IMPORTED_MODULE_0__[\"Column\"]; });\n\n\r\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return Column; });\n/* harmony import */ var _enums__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2);\n\r\nvar Column = /** @class */ (function () {\r\n function Column(name) {\r\n this.name = name;\r\n }\r\n Column.prototype.options = function (columnOptions) {\r\n var _this = this;\r\n columnOptions.forEach(function (option) {\r\n switch (option) {\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].AutoIncrement:\r\n _this.autoIncrement = true;\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].MultiEntry:\r\n _this.multiEntry = true;\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].NotNull:\r\n _this.notNull = true;\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].PrimaryKey:\r\n _this.primaryKey = true;\r\n break;\r\n case _enums__WEBPACK_IMPORTED_MODULE_0__[\"COL_OPTION\"].Unique:\r\n _this.unique = true;\r\n break;\r\n }\r\n });\r\n return this;\r\n };\r\n Column.prototype.setDataType = function (type) {\r\n this.dataType = type;\r\n return this;\r\n };\r\n Column.prototype.setDefault = function (value) {\r\n this.default = value;\r\n return this;\r\n };\r\n Column.prototype.disableSearch = function () {\r\n this.enableSearch = false;\r\n return this;\r\n };\r\n return Column;\r\n}());\r\n\r\n\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=jsstore.commonjs2.js.map","module.exports = __webpack_public_path__ + \"scripts/jsstore.worker.4048421cf4853f428aa9a85486d71967.js\";","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueContextMenu=e():t.VueContextMenu=e()}(this,function(){return function(t){function e(o){if(n[o])return n[o].exports;var r=n[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,o){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:o})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,\"a\",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p=\".\",e(e.s=10)}([function(t,e,n){n(7);var o=n(5)(n(2),n(6),null,null);t.exports=o.exports},function(t,e,n){\"use strict\";t.exports=function(t){function e(e){e.preventDefault(),\"function\"==typeof t&&t(e)}function n(t){27===t.keyCode&&e(t)}var o=!1;return{get isListening(){return o},start:function(t){window.addEventListener(\"click\",e,!0),window.addEventListener(\"keyup\",n,!0),o=!0,\"function\"==typeof t&&t()},stop:function(t){window.removeEventListener(\"click\",e,!0),window.removeEventListener(\"keyup\",n,!0),o=!1,\"function\"==typeof t&&t()}}}},function(t,e,n){\"use strict\";function o(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,\"__esModule\",{value:!0});var r=n(1),i=o(r);e.default={name:\"context-menu\",props:{id:{type:String,default:\"default-ctx\"}},data:function(){var t=this;return{locals:{},align:\"left\",ctxTop:0,ctxLeft:0,ctxVisible:!1,bodyClickListener:(0,i.default)(function(e){var n=!!t.ctxVisible,o=n&&!t.$el.contains(e.target);if(o){if(1!==e.which)return e.preventDefault(),e.stopPropagation(),!1;t.ctxVisible=!1,t.$emit(\"ctx-cancel\",t.locals),e.stopPropagation()}else t.ctxVisible=!1,t.$emit(\"ctx-close\",t.locals)})}},methods:{setPositionFromEvent:function(t){var e=this;t=t||window.event;var n=document.scrollingElement||document.documentElement;return t.pageX||t.pageY?(this.ctxLeft=t.pageX,this.ctxTop=t.pageY-n.scrollTop):(t.clientX||t.clientY)&&(this.ctxLeft=t.clientX+n.scrollLeft,this.ctxTop=t.clientY+n.scrollTop),this.$nextTick(function(){var t=e.$el,n=(t.style.minHeight||t.style.height).replace(\"px\",\"\")||32,o=(t.style.minWidth||t.style.width).replace(\"px\",\"\")||32,r=t.scrollHeight||n,i=t.scrollWidth||o,c=window.innerHeight-r-25,a=window.innerWidth-i-25;e.ctxTop>c&&(e.ctxTop=c),e.ctxLeft>a&&(e.ctxLeft=a)}),t},open:function(t,e){return this.ctxVisible&&(this.ctxVisible=!1),this.ctxVisible=!0,this.$emit(\"ctx-open\",this.locals=e||{}),this.setPositionFromEvent(t),this.$el.setAttribute(\"tab-index\",-1),this.bodyClickListener.start(),this}},watch:{ctxVisible:function(t,e){e===!0&&t===!1&&this.bodyClickListener.stop(function(t){})}},computed:{ctxStyle:function(){return{display:this.ctxVisible?\"block\":\"none\",top:(this.ctxTop||0)+\"px\",left:(this.ctxLeft||0)+\"px\"}}}}},function(t,e,n){e=t.exports=n(4)(void 0),e.push([t.i,'.ctx{position:relative}.ctx-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:.9rem;color:#373a3c;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem;-moz-box-shadow:0 0 5px #ccc;-webkit-box-shadow:0 0 5px #ccc;box-shadow:0 0 5px #ccc}.ctx-divider{height:1px;margin:.5rem 0;overflow:hidden;background-color:#e5e5e5}.ctx-item{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.5;color:#373a3c;text-align:inherit;white-space:nowrap;background:none;border:0;cursor:default}.ctx-item:focus,.ctx-item:hover{color:#2b2d2f;text-decoration:none;background-color:#f5f5f5;cursor:normal}.ctx-item.active,.ctx-item.active:focus,.ctx-item.active:hover{color:#fff;text-decoration:none;background-color:#0275d8;outline:0}.ctx-item.disabled,.ctx-item.disabled:focus,.ctx-item.disabled:hover{color:#818a91}.ctx-item.disabled:focus,.ctx-item.disabled:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:\"progid:DXImageTransform.Microsoft.gradient(enabled = false)\"}.open>.ctx-menu{display:block}.open>a{outline:0}.ctx-menu-right{right:0;left:auto}.ctx-menu-left{right:auto;left:0}.ctx-header{display:block;padding:3px 20px;font-size:.9rem;line-height:1.5;color:#818a91;white-space:nowrap}.ctx-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.ctx-menu{right:0;left:auto}.ctx-menu-container{position:fixed;padding:0;border:1px solid #bbb;background-color:#f5f5f5;z-index:99999;box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15)}',\"\"])},function(t,e){function n(t,e){var n=t[1]||\"\",r=t[3];if(!r)return n;if(e&&\"function\"==typeof btoa){var i=o(r),c=r.sources.map(function(t){return\"/*# sourceURL=\"+r.sourceRoot+t+\" */\"});return[n].concat(c).concat([i]).join(\"\\n\")}return[n].join(\"\\n\")}function o(t){var e=btoa(unescape(encodeURIComponent(JSON.stringify(t)))),n=\"sourceMappingURL=data:application/json;charset=utf-8;base64,\"+e;return\"/*# \"+n+\" */\"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var o=n(e,t);return e[2]?\"@media \"+e[2]+\"{\"+o+\"}\":o}).join(\"\")},e.i=function(t,n){\"string\"==typeof t&&(t=[[null,t,\"\"]]);for(var o={},r=0;r<this.length;r++){var i=this[r][0];\"number\"==typeof i&&(o[i]=!0)}for(r=0;r<t.length;r++){var c=t[r];\"number\"==typeof c[0]&&o[c[0]]||(n&&!c[2]?c[2]=n:n&&(c[2]=\"(\"+c[2]+\") and (\"+n+\")\"),e.push(c))}},e}},function(t,e){t.exports=function(t,e,n,o){var r,i=t=t||{},c=typeof t.default;\"object\"!==c&&\"function\"!==c||(r=t,i=t.default);var a=\"function\"==typeof i?i.options:i;if(e&&(a.render=e.render,a.staticRenderFns=e.staticRenderFns),n&&(a._scopeId=n),o){var s=a.computed||(a.computed={});Object.keys(o).forEach(function(t){var e=o[t];s[t]=function(){return e}})}return{esModule:r,exports:i,options:a}}},function(t,e){t.exports={render:function(){var t=this,e=t.$createElement,n=t._self._c||e;return n(\"div\",{ref:\"contextMenu\",staticClass:\"ctx-menu-container\",style:t.ctxStyle,attrs:{id:t.id},on:{click:function(t){t.stopPropagation()},contextmenu:function(t){t.stopPropagation()}}},[n(\"div\",{staticClass:\"ctx open\",staticStyle:{\"background-color\":\"transparent\"}},[n(\"ul\",{staticClass:\"ctx-menu\",class:{\"ctx-menu-right\":\"right\"===t.align,\"ctx-menu-left\":\"left\"===t.align},attrs:{role:\"menu\"}},[t._t(\"default\")],2)])])},staticRenderFns:[]}},function(t,e,n){var o=n(3);\"string\"==typeof o&&(o=[[t.i,o,\"\"]]),o.locals&&(t.exports=o.locals);n(8)(\"0df30a58\",o,!0)},function(t,e,n){function o(t){for(var e=0;e<t.length;e++){var n=t[e],o=l[n.id];if(o){o.refs++;for(var r=0;r<o.parts.length;r++)o.parts[r](n.parts[r]);for(;r<n.parts.length;r++)o.parts.push(c(n.parts[r]));o.parts.length>n.parts.length&&(o.parts.length=n.parts.length)}else{for(var i=[],r=0;r<n.parts.length;r++)i.push(c(n.parts[r]));l[n.id]={id:n.id,refs:1,parts:i}}}}function r(t,e){for(var n=[],o={},r=0;r<e.length;r++){var i=e[r],c=i[0],a=i[1],s=i[2],u=i[3],l={css:a,media:s,sourceMap:u};o[c]?(l.id=t+\":\"+o[c].parts.length,o[c].parts.push(l)):(l.id=t+\":0\",n.push(o[c]={id:c,parts:[l]}))}return n}function i(){var t=document.createElement(\"style\");return t.type=\"text/css\",d.appendChild(t),t}function c(t){var e,n,o=document.querySelector('style[data-vue-ssr-id~=\"'+t.id+'\"]'),r=null!=o;if(r&&x)return h;if(g){var c=p++;o=f||(f=i()),e=a.bind(null,o,c,!1),n=a.bind(null,o,c,!0)}else o=o||i(),e=s.bind(null,o),n=function(){o.parentNode.removeChild(o)};return r||e(t),function(o){if(o){if(o.css===t.css&&o.media===t.media&&o.sourceMap===t.sourceMap)return;e(t=o)}else n()}}function a(t,e,n,o){var r=n?\"\":o.css;if(t.styleSheet)t.styleSheet.cssText=m(e,r);else{var i=document.createTextNode(r),c=t.childNodes;c[e]&&t.removeChild(c[e]),c.length?t.insertBefore(i,c[e]):t.appendChild(i)}}function s(t,e){var n=e.css,o=e.media,r=e.sourceMap;if(o&&t.setAttribute(\"media\",o),r&&(n+=\"\\n/*# sourceURL=\"+r.sources[0]+\" */\",n+=\"\\n/*# sourceMappingURL=data:application/json;base64,\"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+\" */\"),t.styleSheet)t.styleSheet.cssText=n;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(n))}}var u=\"undefined\"!=typeof document;if(\"undefined\"!=typeof DEBUG&&DEBUG&&!u)throw new Error(\"vue-style-loader cannot be used in a non-browser environment. Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\");var r=n(9),l={},d=u&&(document.head||document.getElementsByTagName(\"head\")[0]),f=null,p=0,x=!1,h=function(){},g=\"undefined\"!=typeof navigator&&/msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());t.exports=function(t,e,n){x=n;var i=r(t,e);return o(i),function(e){for(var n=[],c=0;c<i.length;c++){var a=i[c],s=l[a.id];s.refs--,n.push(s)}e?(i=r(t,e),o(i)):i=[];for(var c=0;c<n.length;c++){var s=n[c];if(0===s.refs){for(var u=0;u<s.parts.length;u++)s.parts[u]();delete l[s.id]}}}};var m=function(){var t=[];return function(e,n){return t[e]=n,t.filter(Boolean).join(\"\\n\")}}()},function(t,e){t.exports=function(t,e){for(var n=[],o={},r=0;r<e.length;r++){var i=e[r],c=i[0],a=i[1],s=i[2],u=i[3],l={id:t+\":\"+r,css:a,media:s,sourceMap:u};o[c]?o[c].parts.push(l):n.push(o[c]={id:c,parts:[l]})}return n}},function(t,e,n){\"use strict\";var o=n(0);o.install=function(t){var e=t.component(\"context-menu\",o);return e},window.VueContextMenu=o,t.exports=t.exports.default=o}])});","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"40fc98a0\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./db_info.vue?vue&type=style&index=0&id=3063ac47&lang=scss&scoped=true\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#selectDb option[data-v-3063ac47] {\\n text-align: center;\\n}\\n.table-name[data-v-3063ac47] {\\n font-size: 20px;\\n font-family: ABeeZee;\\n padding-bottom: 5px;\\n display: inline-block;\\n cursor: pointer;\\n}\\n.column-name[data-v-3063ac47] {\\n font-size: 15px;\\n}\\n.column-schema[data-v-3063ac47] {\\n color: #372ae5;\\n}\\ntable[data-v-3063ac47] {\\n margin-left: 15px;\\n display: block;\\n width: 100%;\\n}\\n.db-list[data-v-3063ac47] {\\n margin-top: 10px;\\n margin-bottom: 20px;\\n}\\n\", \"\"]);\n\n// exports\n","import { render, staticRenderFns } from \"./query_executor.vue?vue&type=template&id=2e964aa2&scoped=true\"\nimport script from \"./query_executor.vue?vue&type=script&lang=ts\"\nexport * from \"./query_executor.vue?vue&type=script&lang=ts\"\nimport style0 from \"./query_executor.vue?vue&type=style&index=0&id=2e964aa2&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 \"2e964aa2\",\n null\n \n)\n\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('2e964aa2', component.options)\n } else {\n api.reload('2e964aa2', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\query_executor.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n { attrs: { id: \"divQueryExecutor\" } },\n [\n _c(\n \"div\",\n { attrs: { id: \"divButtonContainer\" } },\n [\n _c(\n \"b-button-group\",\n [\n _c(\n \"b-button\",\n {\n attrs: { variant: \"primary\" },\n on: { click: _vm.createNewTab }\n },\n [\n _vm._v(\"\\n New Query\\n \"),\n _c(\"i\", { staticClass: \"fas fa-plus-circle\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-button\",\n { attrs: { variant: \"primary\" }, on: { click: _vm.open } },\n [\n _vm._v(\"\\n Open\\n \"),\n _c(\"i\", { staticClass: \"fas fa-folder-open\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-button\",\n { attrs: { variant: \"primary\" }, on: { click: _vm.save } },\n [\n _vm._v(\"\\n Save\\n \"),\n _c(\"i\", { staticClass: \"fas fa-save\" })\n ]\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"input\", {\n staticClass: \"hide\",\n attrs: { type: \"file\", id: \"inputFileOpener\", accept: \".js\" },\n on: { change: _vm.onFileOpened }\n }),\n _vm._v(\" \"),\n _c(\n \"b-button-group\",\n { staticClass: \"float-right\" },\n [\n _c(\n \"b-button\",\n {\n attrs: { variant: \"success\" },\n on: { click: _vm.executeQry }\n },\n [\n _vm._v(\"\\n Execute\\n \"),\n _c(\"i\", { staticClass: \"fas fa-play\" })\n ]\n ),\n _vm._v(\" \"),\n _c(\n \"b-button\",\n { attrs: { variant: \"success\" }, on: { click: _vm.getLink } },\n [\n _vm._v(\"\\n Get Link\\n \"),\n _c(\"i\", { staticClass: \"fas fa-link\" })\n ]\n )\n ],\n 1\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"b-card\",\n { attrs: { \"no-body\": \"\", id: \"divEditorContainer\" } },\n [\n _c(\n \"b-tabs\",\n { attrs: { card: \"\" } },\n _vm._l(_vm.$data.tabCount, function(item) {\n return _c(\n \"b-tab\",\n {\n key: \"tab\" + item,\n attrs: { active: \"\", title: \"Query \" + item }\n },\n [_c(\"Editor\", { attrs: { id: \"editor\" + item } })],\n 1\n )\n })\n )\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\"QueryResult\"),\n _vm._v(\" \"),\n _c(\"transition\", { attrs: { name: \"fade\" } }, [\n _vm.showResultInfo\n ? _c(\"div\", { attrs: { id: \"divResultInfo\" } }, [\n _c(\"table\", [\n _c(\"tr\", [\n _c(\"td\", [\n _c(\"b\", [_vm._v(\"No of Record :\")]),\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(_vm.resultCount))]),\n _vm._v(\" \"),\n _c(\"b\", { staticClass: \"seperator\" }, [_vm._v(\"|\")]),\n _vm._v(\" \"),\n _c(\"b\", [_vm._v(\"Time Taken :\")]),\n _vm._v(\" \"),\n _c(\"span\", [_vm._v(_vm._s(_vm.timeTaken) + \" sec.\")])\n ]),\n _vm._v(\" \"),\n _c(\"td\", [\n _c(\"i\", {\n staticClass: \"fas fa-times\",\n on: {\n click: function($event) {\n _vm.showResultInfo = false\n }\n }\n })\n ])\n ])\n ])\n ])\n : _vm._e()\n ]),\n _vm._v(\" \"),\n _c(_vm.currentModalComponent, { tag: \"component\" })\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('2e964aa2', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport Editor from \"./editor.vue\";\r\nimport QueryResult from \"./qry_result.vue\";\r\nimport { MainService } from \"../service/main_service\";\r\nimport { QueryHelper } from \"../helpers/query_helper\";\r\nimport { IResult } from \"../interfaces/result\";\r\nimport { DomHelper } from \"../helpers/dom_helper\";\r\nimport { Util } from \"../util\";\r\nimport { DATA_TYPE } from \"jsstore\";\r\nimport QueryLink from \"./query_link.vue\";\r\n\r\n@Component({\r\n components: {\r\n QueryLink,\r\n Editor,\r\n QueryResult\r\n }\r\n})\r\nexport default class QueryExecutor extends Vue {\r\n currentModalComponent = \"\";\r\n tabCount = 0;\r\n timeTaken = \"\";\r\n resultCount: number | string = \"\";\r\n showResultInfo = false;\r\n editorContainerHeight;\r\n resultContainerHeight;\r\n isResultVisible = false;\r\n isQueryExecuting = false;\r\n isSaveBtnClicked = false;\r\n\r\n constructor() {\r\n super();\r\n this.catchEvents();\r\n }\r\n\r\n mounted() {\r\n const $ = new DomHelper();\r\n const menuHeight = 50;\r\n const buttonHeight = ($.qry(\"#divButtonContainer\") as HTMLElement)\r\n .clientHeight;\r\n const margin = 10;\r\n const editorHeight =\r\n (window.innerHeight - (menuHeight + buttonHeight + margin)) / 2;\r\n this.editorContainerHeight = editorHeight + buttonHeight;\r\n this.resultContainerHeight = editorHeight - buttonHeight - 10;\r\n ($.qry(\"#divEditorContainer\") as HTMLElement).style.height =\r\n this.getEditorContainerHeight() + \"px\";\r\n ($.qry(\"#divResult\") as HTMLElement).style.height =\r\n this.resultContainerHeight + \"px\";\r\n }\r\n\r\n onFileOpened(event) {\r\n var input = event.target;\r\n var reader = new FileReader();\r\n reader.onload = function() {\r\n var text = reader.result;\r\n vueEvent.$emit(\"set_qry\", text);\r\n };\r\n reader.readAsText(input.files[0]);\r\n event.target.value = null;\r\n }\r\n\r\n open() {\r\n var $ = new DomHelper();\r\n $.getById(\"inputFileOpener\").click();\r\n }\r\n\r\n fireGetQry() {\r\n vueEvent.$emit(\"get_qry\");\r\n }\r\n\r\n getEditorContainerHeight() {\r\n return this.isResultVisible\r\n ? this.editorContainerHeight\r\n : this.editorContainerHeight + this.resultContainerHeight;\r\n }\r\n\r\n createNewTab() {\r\n ++this.tabCount;\r\n }\r\n\r\n save() {\r\n this.isQueryExecuting = false;\r\n this.isSaveBtnClicked = true;\r\n this.fireGetQry();\r\n }\r\n\r\n saveQuery(qry) {\r\n const stringValue = \"query_save_count\";\r\n var count = Number(localStorage.getItem(stringValue));\r\n ++count;\r\n localStorage.setItem(stringValue, count.toString());\r\n var fileName = prompt(\"FileName\", \"idbstudio_qry_\" + count);\r\n if (fileName != null) {\r\n const url = URL.createObjectURL(new Blob([qry], { type: \"text/plain\" }));\r\n const link = document.createElement(\"a\");\r\n link.href = url;\r\n link.download = fileName + \".js\";\r\n link.click();\r\n }\r\n }\r\n\r\n executeQry() {\r\n this.isQueryExecuting = true;\r\n this.isResultVisible = true;\r\n this.fireGetQry();\r\n const $ = new DomHelper();\r\n ($.qry(\"#divEditorContainer\") as HTMLElement).style.height =\r\n this.getEditorContainerHeight() + \"px\";\r\n var resultContainer = $.qry(\"#divResult\") as HTMLElement;\r\n resultContainer.style.height = this.resultContainerHeight + \"px\";\r\n resultContainer.classList.remove(\"hide\");\r\n vueEvent.$emit(\"set_editor_height\", this.editorHeight);\r\n }\r\n\r\n evaluateAndShowResult(qry: string) {\r\n var queryHelperInstance = new QueryHelper(qry);\r\n if (queryHelperInstance.validateAndModifyQry()) {\r\n const query = queryHelperInstance.query;\r\n new MainService()\r\n .executeQry(query)\r\n .then(qryResult => {\r\n this.showResultInfo = true;\r\n this.resultCount =\r\n Util.getType(qryResult.result) === DATA_TYPE.Array\r\n ? qryResult.result.length\r\n : 0;\r\n this.timeTaken = qryResult.timeTaken.toString();\r\n vueEvent.$emit(\"on_qry_result\", qryResult.result);\r\n })\r\n .catch(function(err) {\r\n vueEvent.$emit(\"on_qry_error\", err);\r\n });\r\n } else {\r\n vueEvent.$emit(\"on_error\", queryHelperInstance.errMessage);\r\n }\r\n }\r\n\r\n takeQuery(qry: string) {\r\n if (this.isQueryExecuting) {\r\n this.evaluateAndShowResult(qry);\r\n } else if (this.isSaveBtnClicked) {\r\n this.saveQuery(qry);\r\n } else {\r\n this.showLinkModal(qry);\r\n }\r\n }\r\n\r\n get editorHeight() {\r\n return this.getEditorContainerHeight() - 90;\r\n }\r\n\r\n catchEvents() {\r\n vueEvent\r\n .$on(\"db_info_loaded\", this.createNewTab)\r\n .$on(\"take_qry\", this.takeQuery)\r\n .$on(\"get_editor_height\", () => {\r\n vueEvent.$emit(\"set_editor_height\", this.editorHeight);\r\n })\r\n .$on(\"run_qry\", this.executeQry);\r\n }\r\n\r\n showLinkModal(qry: string) {\r\n qry = encodeURIComponent(qry);\r\n setTimeout(() => {\r\n vueEvent.$emit(\"show_get_link_modal\", qry);\r\n }, 200);\r\n }\r\n\r\n getLink() {\r\n this.currentModalComponent = \"QueryLink\";\r\n this.isQueryExecuting = false;\r\n this.isSaveBtnClicked = false;\r\n this.fireGetQry();\r\n }\r\n}\r\n","import { render, staticRenderFns } from \"./editor.vue?vue&type=template&id=5fab3fb6\"\nimport script from \"./editor.vue?vue&type=script&lang=ts\"\nexport * from \"./editor.vue?vue&type=script&lang=ts\"\nimport style0 from \"./editor.vue?vue&type=style&index=0&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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('5fab3fb6', component.options)\n } else {\n api.reload('5fab3fb6', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\editor.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"idb-editor\", attrs: { id: _vm.id } })\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('5fab3fb6', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport { DomHelper } from \"../helpers/dom_helper\";\r\nimport { Util } from \"../util\";\r\n\r\ndeclare var ace;\r\n@Component({\r\n props: {\r\n id: String\r\n }\r\n})\r\nexport default class Editor extends Vue {\r\n editor;\r\n id!: string;\r\n constructor() {\r\n super();\r\n this.catchEvent();\r\n }\r\n\r\n createEditor() {\r\n this.editor = ace.edit(this.id);\r\n this.editor.setTheme(\"ace/theme/eclipse\");\r\n this.editor.session.setMode(\"ace/mode/javascript\");\r\n }\r\n\r\n mounted() {\r\n this.createEditor();\r\n vueEvent.$emit('get_editor_height');\r\n if (this.id === \"editor1\") {\r\n const query = Util.getParameterByName(\"query\");\r\n if (query != null && query.length > 0) {\r\n this.setQry(query);\r\n }\r\n }\r\n }\r\n\r\n getQry() {\r\n var $ = new DomHelper();\r\n var el = $.getById(this.id);\r\n if (!$.isHidden($.parent(el))) {\r\n vueEvent.$emit(\"take_qry\", this.editor.getValue());\r\n }\r\n }\r\n\r\n setQry(qry){\r\n const $ = new DomHelper();\r\n const el = $.getById(this.id);\r\n // debugger;\r\n if (!$.isHidden($.parent(el))) {\r\n this.editor.setValue(qry);\r\n }\r\n }\r\n\r\n setHeight(height){\r\n var $ = new DomHelper();\r\n $.getById(this.id).style.height = height+'px';\r\n }\r\n\r\n catchEvent() {\r\n vueEvent.$on(\"get_qry\", this.getQry);\r\n vueEvent.$on('set_editor_height',this.setHeight);\r\n vueEvent.$on('set_qry',this.setQry);\r\n }\r\n}\r\n","export class DomHelper {\r\n getById(id: string): HTMLElement {\r\n return document.getElementById(id) as HTMLElement;\r\n }\r\n\r\n parent(el: HTMLElement): HTMLElement {\r\n return el.parentElement as HTMLElement;\r\n }\r\n\r\n isHidden(el: HTMLElement) {\r\n return el.offsetParent === null;\r\n }\r\n\r\n qry(query: string) {\r\n return document.querySelector(query);\r\n }\r\n\r\n removePx(value: string) {\r\n parseInt(value, 10);\r\n }\r\n\r\n copyToClipboard(value: string) {\r\n const el = document.createElement('textarea');\r\n el.value = value;\r\n el.setAttribute('readonly', '');\r\n el.style.position = 'absolute';\r\n el.style.left = '-9999px';\r\n document.body.appendChild(el);\r\n el.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(el);\r\n }\r\n}","import { DATA_TYPE } from \"jsstore\";\r\n\r\nexport class Util {\r\n static getType(value) {\r\n if (value === null) {\r\n return DATA_TYPE.Null;\r\n }\r\n var type = typeof value;\r\n switch (type) {\r\n case 'object':\r\n if (Array.isArray(value)) {\r\n return DATA_TYPE.Array;\r\n }\r\n default:\r\n return type;\r\n }\r\n }\r\n\r\n static getParameterByName(name: string, url?: string) {\r\n if (!url) { url = window.location.href; }\r\n name = name.replace(/[\\[\\]]/g, \"\\\\$&\");\r\n var regex = new RegExp(\"[?&]\" + name + \"(=([^&#]*)|&|#|$)\"),\r\n results = regex.exec(url);\r\n if (!results) { return null; }\r\n if (!results[2]) { return ''; }\r\n return decodeURIComponent(results[2].replace(/\\+/g, \" \"));\r\n }\r\n\r\n static isNull(value: null | string) {\r\n return value == null || value.length == 0;\r\n }\r\n}","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"9c127918\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./editor.vue?vue&type=style&index=0&lang=scss\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.idb-editor {\\n width: 100%;\\n min-height: 200px;\\n}\\n\", \"\"]);\n\n// exports\n","import { render, staticRenderFns } from \"./qry_result.vue?vue&type=template&id=24b17a08\"\nimport script from \"./qry_result.vue?vue&type=script&lang=ts\"\nexport * from \"./qry_result.vue?vue&type=script&lang=ts\"\nimport style0 from \"./qry_result.vue?vue&type=style&index=0&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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('24b17a08', component.options)\n } else {\n api.reload('24b17a08', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\qry_result.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"hide\", attrs: { id: \"divResult\" } }, [\n _c(\"table\", {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.errorMessage.length == 0,\n expression: \"errorMessage.length==0\"\n }\n ],\n staticClass: \"table\",\n domProps: { innerHTML: _vm._s(_vm.resultInnerHtml) }\n }),\n _vm._v(\" \"),\n _c(\n \"span\",\n {\n directives: [\n {\n name: \"show\",\n rawName: \"v-show\",\n value: _vm.errorMessage.length > 0,\n expression: \"errorMessage.length>0\"\n }\n ],\n staticStyle: { color: \"red\" }\n },\n [_vm._v(_vm._s(_vm.errorMessage))]\n )\n ])\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('24b17a08', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport { Util } from \"../util\";\r\nimport { DATA_TYPE } from \"jsstore\";\r\n\r\n@Component\r\nexport default class QueryResult extends Vue {\r\n resultInnerHtml = \"\";\r\n errorMessage = \"\";\r\n constructor() {\r\n super();\r\n this.catchEvents();\r\n }\r\n\r\n printResult(result) {\r\n this.errorMessage = \"\";\r\n var resultType = Util.getType(result);\r\n switch (resultType) {\r\n case DATA_TYPE.Array:\r\n var rowsLength = result.length,\r\n htmlString = \"<tr>\",\r\n props: string[] = [];\r\n for (var prop in result[0]) {\r\n props.push(prop);\r\n htmlString += \"<th>\" + prop + \"</th>\";\r\n }\r\n htmlString += \"</tr>\";\r\n var Width = 100 / props.length;\r\n for (var i = 0; i < rowsLength; i++) {\r\n var tempHtml = \"<tr>\";\r\n for (var j = 0; j < props.length; j++) {\r\n if (result[0] && result[0][0]) {\r\n tempHtml += \"<td>\" + result[i][props[j]] + \"</td>\";\r\n } else {\r\n tempHtml +=\r\n \"<td style=width:\" +\r\n Width +\r\n \"%>\" +\r\n JSON.stringify(result[i][props[j]]) +\r\n \"</td>\";\r\n }\r\n }\r\n tempHtml += \"</tr>\";\r\n htmlString += tempHtml;\r\n }\r\n\r\n this.resultInnerHtml = htmlString;\r\n break;\r\n case DATA_TYPE.Object:\r\n result = JSON.stringify(result);\r\n case DATA_TYPE.String:\r\n case DATA_TYPE.Number:\r\n this.resultInnerHtml = result;\r\n break;\r\n default:\r\n this.resultInnerHtml = JSON.stringify(result);\r\n }\r\n }\r\n\r\n printError(error) {\r\n this.errorMessage = JSON.stringify(error);\r\n }\r\n\r\n catchEvents() {\r\n vueEvent.$on(\"on_qry_result\", this.printResult);\r\n vueEvent.$on(\"on_qry_error\", this.printError);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d1766f58\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./qry_result.vue?vue&type=style&index=0&lang=scss\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#divResult {\\n overflow-y: scroll;\\n overflow-x: hidden;\\n min-height: 200px;\\n width: 99%;\\n left: 5px;\\n position: relative;\\n right: 5px;\\n background-color: white;\\n}\\n#divResult .table tr td,\\n #divResult .table tr th {\\n border: 1px inset;\\n text-align: center;\\n}\\n\", \"\"]);\n\n// exports\n","import { API } from \"../enum\";\r\n\r\nexport class QueryHelper {\r\n query: string;\r\n errMessage: string = \"\";\r\n constructor(query) {\r\n this.query = query;\r\n }\r\n\r\n validateAndModifyQry() {\r\n var qry;\r\n var isAnyApiFound = false;\r\n this.allowedApi.forEach((api) => {\r\n // every api call will have a open paranthesis after\r\n const index = this.query.indexOf(api + \"(\");\r\n if (index >= 0) {\r\n isAnyApiFound = true;\r\n this.query = `${this.query.substring(0, index)}con.\r\n ${this.query.substring(index, this.query.length)}`;\r\n }\r\n });\r\n if (!isAnyApiFound) {\r\n this.errMessage = \"No valid api was found\";\r\n }\r\n return !this.errMessage.length;\r\n }\r\n\r\n get allowedApi() {\r\n return [\r\n API.Select,\r\n API.Insert,\r\n API.Remove,\r\n API.Update,\r\n API.IsDbExist,\r\n API.Clear,\r\n API.Count,\r\n API.DropDb,\r\n API.BulkInsert,\r\n API.ExportJson,\r\n API.Transaction\r\n ];\r\n }\r\n\r\n private isQryValid_() {\r\n const fn = eval(this.query);\r\n if (typeof fn.then === 'function') {\r\n return true;\r\n }\r\n else {\r\n this.errMessage = \"The query should return a promise\";\r\n }\r\n return false;\r\n }\r\n} ","export enum API {\r\n CreateDb = \"createDb\",\r\n IsDbExist = \"isDbExist\",\r\n GetDbVersion = \"getDbVersion\",\r\n GetDbList = \"getDbList\",\r\n Get = \"get\",\r\n Set = \"set\",\r\n Select = \"select\",\r\n Insert = \"insert\",\r\n Update = \"update\",\r\n Remove = \"remove\",\r\n GetDbSchema = \"getDbSchema\",\r\n OpenDb = \"openDb\",\r\n Clear = \"clear\",\r\n DropDb = \"dropDb\",\r\n Count = \"count\",\r\n BulkInsert = \"bulkInsert\",\r\n ExportJson = \"exportJson\",\r\n ChangeLogStatus = \"changeLogStatus\",\r\n Transaction = \"transaction\"\r\n}","import { render, staticRenderFns } from \"./query_link.vue?vue&type=template&id=11a809c9\"\nimport script from \"./query_link.vue?vue&type=script&lang=ts\"\nexport * from \"./query_link.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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('11a809c9', component.options)\n } else {\n api.reload('11a809c9', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\query_link.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\n \"div\",\n [\n _c(\n \"b-modal\",\n {\n ref: \"modalGetLink\",\n attrs: {\n \"no-enforce-focus\": \"\",\n id: \"divLinkModal\",\n title: \"IDBStudio\"\n },\n on: { shown: _vm.shown }\n },\n [\n _c(\n \"p\",\n { staticClass: \"my-4\", attrs: { id: \"linkContent\" } },\n [\n _c(\"b-form-input\", {\n attrs: { type: \"text\", id: \"txtLink\" },\n model: {\n value: _vm.link,\n callback: function($$v) {\n _vm.link = $$v\n },\n expression: \"link\"\n }\n })\n ],\n 1\n ),\n _vm._v(\" \"),\n _c(\n \"div\",\n {\n staticClass: \"w-100\",\n attrs: { slot: \"modal-footer\" },\n slot: \"modal-footer\"\n },\n [\n _c(\n \"b-btn\",\n {\n staticClass: \"btn-copy float-right\",\n attrs: { size: \"md\", variant: \"primary\" },\n on: { click: _vm.copy }\n },\n [_vm._v(\"\\n Copy\\n \")]\n )\n ],\n 1\n )\n ]\n )\n ],\n 1\n )\n}\nvar staticRenderFns = []\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('11a809c9', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_link.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_link.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component, Prop } from \"vue-property-decorator\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport { DomHelper } from \"../helpers/dom_helper\";\r\ndeclare var ClipboardJS;\r\n\r\n@Component\r\nexport default class QueryLink extends Vue {\r\n link = \"\";\r\n constructor() {\r\n super();\r\n this.catchEvents();\r\n }\r\n\r\n showModal(qry: string) {\r\n this.link = qry;\r\n vueEvent.$emit(\"get_current_db\");\r\n }\r\n\r\n onGetDb(dbName: string) {\r\n (this.$refs.modalGetLink as any).show();\r\n this.link = `${location.origin}${location.pathname}?db=${dbName}&query=${\r\n this.link\r\n }`;\r\n }\r\n\r\n copy() {\r\n var $ = new DomHelper();\r\n ($.qry(\"#txtLink\")! as HTMLInputElement).select();\r\n document.execCommand(\"copy\");\r\n (this.$refs.modalGetLink as any).hide();\r\n }\r\n\r\n onCopyError() {\r\n vueEvent.$emit(\"on_error\", \"Failed to copy Link\");\r\n }\r\n\r\n catchEvents() {\r\n vueEvent.$on(\"show_get_link_modal\", this.showModal);\r\n vueEvent.$on(\"take_current_db\", this.onGetDb);\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"bb32689a\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./query_executor.vue?vue&type=style&index=0&id=2e964aa2&lang=scss&scoped=true\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n#divQueryExecutor[data-v-2e964aa2] {\\n margin-top: 10px;\\n background-color: #f1f1f1;\\n box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 3px, rgba(0, 0, 0, 0.24) 0px 1px 2px;\\n}\\n#divResultInfo[data-v-2e964aa2] {\\n height: 50px;\\n position: absolute;\\n bottom: 0px;\\n background: inherit;\\n z-index: 100;\\n width: 97%;\\n}\\ntable[data-v-2e964aa2] {\\n height: inherit;\\n width: 100%;\\n}\\ntable tr td[data-v-2e964aa2] {\\n padding-left: 20px;\\n}\\ntable tr td[data-v-2e964aa2]:last-child {\\n text-align: right;\\n padding-right: 20px;\\n padding-left: 50px;\\n}\\n.fade-enter-active[data-v-2e964aa2],\\n.fade-leave-active[data-v-2e964aa2] {\\n transition: opacity 0.5s;\\n bottom: 0px;\\n}\\n.fade-enter[data-v-2e964aa2],\\n.fade-leave-to[data-v-2e964aa2] {\\n opacity: 0;\\n bottom: -100px;\\n}\\n\", \"\"]);\n\n// exports\n","import { render, staticRenderFns } from \"./start.vue?vue&type=template&id=76eed14c\"\nimport script from \"./start.vue?vue&type=script&lang=ts\"\nexport * from \"./start.vue?vue&type=script&lang=ts\"\nimport style0 from \"./start.vue?vue&type=style&index=0&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(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (!module.hot.data) {\n api.createRecord('76eed14c', component.options)\n } else {\n api.reload('76eed14c', component.options)\n }\n }\n}\ncomponent.options.__file = \"src\\\\code\\\\component\\\\start.vue\"\nexport default component.exports","var render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"start-page\" }, [\n _c(\"h1\", { staticClass: \"title\" }, [_vm._v(\"IDBStudio\")]),\n _vm._v(\" \"),\n _vm.dbList.length == 0\n ? _c(\"div\", { staticClass: \"cssload-preloader\" }, [_vm._m(0)])\n : _vm._e(),\n _vm._v(\" \"),\n _vm.dbList.length > 0\n ? _c(\"form\", { staticClass: \"margin-top-100px\" }, [\n _c(\"div\", { staticClass: \"form-group row\" }, [\n _c(\n \"div\",\n { staticStyle: { margin: \"0 auto\", display: \"inherit\" } },\n [\n _c(\"div\", { staticClass: \"mb-2\" }, [\n _c(\n \"select\",\n {\n directives: [\n {\n name: \"model\",\n rawName: \"v-model\",\n value: _vm.selectedDb,\n expression: \"selectedDb\"\n }\n ],\n staticClass: \"form-control\",\n attrs: { id: \"selectDb\" },\n on: {\n change: function($event) {\n var $$selectedVal = Array.prototype.filter\n .call($event.target.options, function(o) {\n return o.selected\n })\n .map(function(o) {\n var val = \"_value\" in o ? o._value : o.value\n return val\n })\n _vm.selectedDb = $event.target.multiple\n ? $$selectedVal\n : $$selectedVal[0]\n }\n }\n },\n [\n _c(\"option\", { attrs: { value: \"null\" } }, [\n _vm._v(\"--Select Database--\")\n ]),\n _vm._v(\" \"),\n _vm._l(_vm.dbList, function(db) {\n return _c(\n \"option\",\n { key: db, domProps: { value: db } },\n [_vm._v(_vm._s(db))]\n )\n })\n ],\n 2\n )\n ]),\n _vm._v(\" \"),\n _c(\n \"button\",\n {\n staticClass: \"btn btn-primary mb-2\",\n staticStyle: { \"margin-left\": \"50px\", padding: \"0 30px\" },\n attrs: { type: \"button\" },\n on: { click: _vm.connectDb }\n },\n [_vm._v(\"Connect\")]\n )\n ]\n )\n ])\n ])\n : _vm._e()\n ])\n}\nvar staticRenderFns = [\n function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n return _c(\"div\", { staticClass: \"cssload-preloader-box\" }, [\n _c(\"div\", [_vm._v(\"L\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"o\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"a\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"d\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"i\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"n\")]),\n _vm._v(\" \"),\n _c(\"div\", [_vm._v(\"g\")])\n ])\n }\n]\nrender._withStripped = true\n/* hot reload */\nif (module.hot) {\n var api = require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\")\n api.install(require('vue'))\n if (api.compatible) {\n module.hot.accept()\n if (module.hot.data) {\n require(\"P:\\\\Users\\\\ujjwal\\\\Documents\\\\projects\\\\Public\\\\idbstudio\\\\node_modules\\\\vue-hot-reload-api\\\\dist\\\\index.js\").rerender('76eed14c', {\n render: render,\n staticRenderFns: staticRenderFns\n })\n }\n }\n}export { render, staticRenderFns }","import mod from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../../node_modules/ts-loader/index.js??ref--5-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=script&lang=ts\"","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport Vue from \"vue\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { DemoService } from \"../service/demo_service\";\r\nimport { vueEvent } from \"../common_var\";\r\nimport { Util } from \"../util\";\r\n\r\n@Component\r\nexport default class Start extends Vue {\r\n selectedDb = \"null\";\r\n dbList: string[] = [];\r\n\r\n mounted() {\r\n var demoServiceInstance = new DemoService();\r\n demoServiceInstance.isDemoDbExist().then(isExist => {\r\n if (isExist) {\r\n setTimeout(() => {\r\n this.getDbList();\r\n }, 1000);\r\n } else {\r\n demoServiceInstance.createDemoDataBase().then(() => {\r\n this.getDbList();\r\n });\r\n }\r\n });\r\n }\r\n\r\n setDbNameFromQryString(dbList: string[]) {\r\n var dbName = Util.getParameterByName(\"db\");\r\n if (!Util.isNull(dbName)) {\r\n const index = dbList.findIndex(qry => qry === dbName);\r\n // console.log(index);\r\n if (index >= 0) {\r\n // console.log(dbName);\r\n this.selectedDb = dbName as string;\r\n this.connectDb();\r\n }\r\n }\r\n }\r\n\r\n getDbList() {\r\n var demoServiceInstance = new DemoService();\r\n demoServiceInstance.getDbList().then(list => {\r\n this.setDbNameFromQryString(list);\r\n this.dbList = list;\r\n });\r\n }\r\n\r\n connectDb() {\r\n if (this.selectedDb != \"null\") {\r\n vueEvent.$emit(\"page_loaded\", this.selectedDb);\r\n } else {\r\n vueEvent.$emit(\"on_error\", \"Please select a valid database\");\r\n }\r\n }\r\n}\r\n","import { BaseService } from './base_service';\r\nimport { ITable, Column, COL_OPTION, DATA_TYPE, IDataBase } from 'jsstore';\r\nimport Axios from \"axios\";\r\n\r\nexport class DemoService extends BaseService {\r\n dbName = \"Demo\";\r\n constructor() {\r\n super();\r\n }\r\n\r\n isDemoDbExist() {\r\n return this.isDbExist(this.dbName);\r\n }\r\n\r\n createDemoDataBase() {\r\n return new Promise((resolve, reject) => {\r\n this.connection.createDb(this.getDbStructure()).then(() => {\r\n this.insertDemoDbData(resolve);\r\n }).catch((err) => {\r\n reject(err);\r\n });\r\n });\r\n }\r\n\r\n insertDemoDbData(callBack) {\r\n const filesList = [\"Customers\", \"Categories\", \"Employees\", \"OrderDetails\",\r\n \"Orders\", \"Products\", \"Shippers\", \"Suppliers\"];\r\n var filesProcessed = 0;\r\n var onFileProcessed = function () {\r\n filesProcessed++;\r\n console.log('inserted file:' + filesList[filesProcessed - 1]);\r\n if (filesProcessed === filesList.length) {\r\n callBack();\r\n }\r\n };\r\n filesList.forEach((file) => {\r\n const url = `assets/demo_database/${file}.json?v=1`;\r\n Axios.get(url).then((response) => {\r\n switch (file) {\r\n case filesList[4]:\r\n response.data.forEach(function (value) {\r\n value.orderDate = new Date();\r\n });\r\n this.insert(file, response.data).then(onFileProcessed);\r\n break;\r\n case filesList[2]:\r\n response.data.forEach(function (value) {\r\n value.birthDate = new Date();\r\n });\r\n this.insert(file, response.data).then(onFileProcessed);\r\n break;\r\n case filesList[3]:\r\n this.bulkInsert(file, response.data).then(onFileProcessed);\r\n break;\r\n default:\r\n this.insert(file, response.data).then(onFileProcessed);\r\n }\r\n\r\n });\r\n });\r\n }\r\n\r\n insert(table: string, datas: any[]) {\r\n return this.connection.insert({\r\n into: table,\r\n values: datas\r\n });\r\n }\r\n\r\n bulkInsert(table: string, datas: any[]) {\r\n return this.connection.bulkInsert({\r\n into: table,\r\n values: datas\r\n });\r\n }\r\n\r\n getDbStructure() {\r\n const customers: ITable = {\r\n name: 'Customers',\r\n columns: [\r\n new Column('customerId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('customerName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('contactName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('address').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('city').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('postalCode').setDataType(DATA_TYPE.String),\r\n new Column('country').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String)\r\n ]\r\n };\r\n\r\n const categories: ITable = {\r\n name: 'Categories',\r\n columns: [\r\n new Column('categoryId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('categoryName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('description').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n ]\r\n };\r\n\r\n const employees: ITable = {\r\n name: 'Employees',\r\n columns: [\r\n new Column('employeeId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('lastName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('birthDate').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.DateTime),\r\n new Column('photo').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('notes').setDataType(DATA_TYPE.String),\r\n new Column('state').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('jobSuspendedFlag').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number)\r\n ]\r\n };\r\n\r\n var orderDetails: ITable = {\r\n name: 'OrderDetails',\r\n columns: [\r\n new Column('orderDetailId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('orderId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('productId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('quantity').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number)\r\n ]\r\n };\r\n\r\n var orders: ITable = {\r\n name: 'Orders',\r\n columns: [\r\n new Column('orderId').options([COL_OPTION.PrimaryKey]),\r\n new Column('customerId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('employeeId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('orderDate').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.DateTime),\r\n new Column('shipperId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number)\r\n ]\r\n };\r\n\r\n var products: ITable = {\r\n name: 'Products',\r\n columns: [\r\n new Column('productId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('productName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('supplierId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('categoryId').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number),\r\n new Column('unit').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('price').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.Number)\r\n ]\r\n };\r\n\r\n var shippers: ITable = {\r\n name: 'Shippers',\r\n columns: [\r\n new Column('shipperId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('shipperName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('phone').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n ]\r\n };\r\n\r\n var suppliers: ITable = {\r\n name: 'Suppliers',\r\n columns: [\r\n new Column('supplierId').options([COL_OPTION.PrimaryKey, COL_OPTION.AutoIncrement]),\r\n new Column('supplierName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('contactName').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('address').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('city').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('postalCode').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('country').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String),\r\n new Column('phone').options([COL_OPTION.NotNull]).setDataType(DATA_TYPE.String)\r\n ]\r\n };\r\n\r\n var dataBase: IDataBase = {\r\n name: this.dbName,\r\n tables: [\r\n customers,\r\n categories,\r\n employees,\r\n orderDetails,\r\n orders,\r\n products,\r\n shippers,\r\n suppliers\r\n ]\r\n };\r\n return dataBase;\r\n }\r\n}","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nmodule.exports = function (obj) {\n return obj != null && (isBuffer(obj) || isSlowBuffer(obj) || !!obj._isBuffer)\n}\n\nfunction isBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isBuffer(obj.slice(0, 0))\n}\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\nvar btoa = (typeof window !== 'undefined' && window.btoa && window.btoa.bind(window)) || require('./../helpers/btoa');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n var loadEvent = 'onreadystatechange';\n var xDomain = false;\n\n // For IE 8/9 CORS support\n // Only supports POST and GET calls and doesn't returns the response headers.\n // DON'T do this for testing b/c XMLHttpRequest is mocked, not XDomainRequest.\n if (process.env.NODE_ENV !== 'test' &&\n typeof window !== 'undefined' &&\n window.XDomainRequest && !('withCredentials' in request) &&\n !isURLSameOrigin(config.url)) {\n request = new window.XDomainRequest();\n loadEvent = 'onload';\n xDomain = true;\n request.onprogress = function handleProgress() {};\n request.ontimeout = function handleTimeout() {};\n }\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request[loadEvent] = function handleLoad() {\n if (!request || (request.readyState !== 4 && !xDomain)) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n // IE sends 1223 instead of 204 (https://github.com/axios/axios/issues/201)\n status: request.status === 1223 ? 204 : request.status,\n statusText: request.status === 1223 ? 'No Content' : request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\n// btoa polyfill for IE<10 courtesy https://github.com/davidchambers/Base64.js\n\nvar chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\nfunction E() {\n this.message = 'String contains an invalid character';\n}\nE.prototype = new Error;\nE.prototype.code = 5;\nE.prototype.name = 'InvalidCharacterError';\n\nfunction btoa(input) {\n var str = String(input);\n var output = '';\n for (\n // initialize result and counter\n var block, charCode, idx = 0, map = chars;\n // if the next str index does not exist:\n // change the mapping table to \"=\"\n // check if d has no fractional digits\n str.charAt(idx | 0) || (map = '=', idx % 1);\n // \"8 - idx % 1 * 8\" generates the sequence 2, 4, 6, 8\n output += map.charAt(63 & block >> 8 - idx % 1 * 8)\n ) {\n charCode = str.charCodeAt(idx += 3 / 4);\n if (charCode > 0xFF) {\n throw new E();\n }\n block = block << 8 | charCode;\n }\n return output;\n}\n\nmodule.exports = btoa;\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","import mod from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\"; export default mod; export * from \"-!../../../node_modules/vue-style-loader/index.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a7ab2214\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./start.vue?vue&type=style&index=0&lang=scss\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"\\n.start-page {\\n background-color: #2c3e50;\\n width: 100%;\\n height: 100%;\\n position: absolute;\\n z-index: 1000;\\n overflow: hidden;\\n}\\n.start-page .title {\\n font-family: Allerta;\\n color: white;\\n text-align: center;\\n margin-top: 150px;\\n}\\n.start-page .cssload-preloader {\\n position: absolute;\\n top: 0px;\\n left: 0px;\\n right: 0px;\\n bottom: 0px;\\n z-index: 10;\\n}\\n.start-page .cssload-preloader > .cssload-preloader-box {\\n position: absolute;\\n height: 29px;\\n top: 50%;\\n left: 50%;\\n margin: -15px 0 0 -146px;\\n perspective: 195px;\\n -o-perspective: 195px;\\n -ms-perspective: 195px;\\n -webkit-perspective: 195px;\\n -moz-perspective: 195px;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div {\\n position: relative;\\n width: 29px;\\n height: 29px;\\n background: #cccccc;\\n float: left;\\n text-align: center;\\n line-height: 29px;\\n font-family: Verdana;\\n font-size: 19px;\\n color: white;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(1) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 0ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 0ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 0ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 0ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 0ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(2) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 86.25ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(3) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 172.5ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(4) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 258.75ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(5) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 345ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 345ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 345ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 345ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 345ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(6) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 431.25ms infinite alternate;\\n}\\n.start-page .cssload-preloader .cssload-preloader-box > div:nth-child(7) {\\n background: #007bff;\\n margin-right: 15px;\\n animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n -o-animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n -ms-animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n -webkit-animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n -moz-animation: cssload-movement 690ms ease 517.5ms infinite alternate;\\n}\\n@keyframes cssload-movement {\\nfrom {\\n transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\nto {\\n transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n@-o-keyframes cssload-movement {\\nfrom {\\n -o-transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\nto {\\n -o-transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n@-ms-keyframes cssload-movement {\\n.start-page from {\\n -ms-transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\n.start-page to {\\n -ms-transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n@-webkit-keyframes cssload-movement {\\nfrom {\\n -webkit-transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\nto {\\n -webkit-transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n@-moz-keyframes cssload-movement {\\nfrom {\\n -moz-transform: scale(1) translateY(0px) rotateX(0deg);\\n box-shadow: 0 0 0 rgba(0, 0, 0, 0);\\n}\\nto {\\n -moz-transform: scale(1.5) translateY(-24px) rotateX(45deg);\\n box-shadow: 0 24px 39px #007bff;\\n background: #007bff;\\n}\\n}\\n\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/index.js!./common.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1f6c79db\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../node_modules/css-loader/index.js!./common.css\", function() {\n var newContent = require(\"!!../../../node_modules/css-loader/index.js!./common.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","var escape = require(\"../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".align-text-right {\\r\\n text-align: right;\\r\\n}\\r\\n\\r\\n.seperator {\\r\\n padding: 0px 10px;\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: Allerta;\\r\\n src: url(\" + escape(require(\"../fonts/Allerta-Regular.ttf\")) + \") format(\\\"truetype\\\");\\r\\n}\\r\\n\\r\\n@font-face {\\r\\n font-family: ABeeZee;\\r\\n src: url(\" + escape(require(\"../fonts/ABeeZee-Regular.ttf\")) + \") format(\\\"truetype\\\");\\r\\n}\\r\\n\\r\\n.margin-top-100px {\\r\\n margin-top: 100px;\\r\\n}\\r\\n\\r\\n.hide {\\r\\n display: none;\\r\\n}\", \"\"]);\n\n// exports\n","module.exports = function escape(url) {\n if (typeof url !== 'string') {\n return url\n }\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url)) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n }\n\n return url\n}\n","module.exports = __webpack_public_path__ + \"fonts/Allerta-Regulard3224ae1d32ecfc2bdf33ace4b10badc.ttf\";","module.exports = __webpack_public_path__ + \"fonts/ABeeZee-Regularbe26f3332f3b4d552c823c5c045a46bb.ttf\";","import * as components from './components';\nimport * as directives from './directives';\nimport { vueUse } from './utils/plugins';\n\nvar VuePlugin = {\n install: function install(Vue) {\n if (Vue._bootstrap_vue_installed) {\n return;\n }\n\n Vue._bootstrap_vue_installed = true;\n\n // Register component plugins\n for (var plugin in components) {\n Vue.use(components[plugin]);\n }\n\n // Register directive plugins\n for (var _plugin in directives) {\n Vue.use(directives[_plugin]);\n }\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import Alert from './alert';\nimport Badge from './badge';\nimport Breadcrumb from './breadcrumb';\nimport Button from './button';\nimport ButtonGroup from './button-group';\nimport ButtonToolbar from './button-toolbar';\nimport InputGroup from './input-group';\nimport Card from './card';\nimport Carousel from './carousel';\nimport Layout from './layout';\nimport Collapse from './collapse';\nimport Dropdown from './dropdown';\nimport Embed from './embed';\nimport Form from './form';\nimport FormGroup from './form-group';\nimport FormCheckbox from './form-checkbox';\nimport FormRadio from './form-radio';\nimport FormInput from './form-input';\nimport FormTextarea from './form-textarea';\nimport FormFile from './form-file';\nimport FormSelect from './form-select';\nimport Image from './image';\nimport Jumbotron from './jumbotron';\nimport Link from './link';\nimport ListGroup from './list-group';\nimport Media from './media';\nimport Modal from './modal';\nimport Nav from './nav';\nimport Navbar from './navbar';\nimport Pagination from './pagination';\nimport PaginationNav from './pagination-nav';\nimport Popover from './popover';\nimport Progress from './progress';\nimport Table from './table';\nimport Tabs from './tabs';\nimport Tooltip from './tooltip';\n\nexport { Alert, Badge, Breadcrumb, Button, ButtonToolbar, ButtonGroup, Card, Carousel, Collapse, Dropdown, Embed, Form, FormGroup, FormInput, FormTextarea, FormFile, FormCheckbox, FormRadio, FormSelect, Image, InputGroup, Jumbotron, Layout, Link, ListGroup, Media, Modal, Nav, Navbar, Pagination, PaginationNav, Popover, Progress, Table, Tabs, Tooltip };","import bAlert from './alert';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bAlert: bAlert\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import bButtonClose from '../button/button-close';\n\nexport default {\n components: { bButtonClose: bButtonClose },\n render: function render(h) {\n if (!this.localShow) {\n // If not showing, render placeholder\n return h(false);\n }\n var dismissBtn = h(false);\n if (this.dismissible) {\n // Add dismiss button\n dismissBtn = h('b-button-close', { attrs: { 'aria-label': this.dismissLabel }, on: { click: this.dismiss } }, [this.$slots.dismiss]);\n }\n return h('div', { class: this.classObject, attrs: { role: 'alert', 'aria-live': 'polite', 'aria-atomic': true } }, [dismissBtn, this.$slots.default]);\n },\n\n model: {\n prop: 'show',\n event: 'input'\n },\n data: function data() {\n return {\n countDownTimerId: null,\n dismissed: false\n };\n },\n\n computed: {\n classObject: function classObject() {\n return ['alert', this.alertVariant, this.dismissible ? 'alert-dismissible' : ''];\n },\n alertVariant: function alertVariant() {\n var variant = this.variant;\n return 'alert-' + variant;\n },\n localShow: function localShow() {\n return !this.dismissed && (this.countDownTimerId || this.show);\n }\n },\n props: {\n variant: {\n type: String,\n default: 'info'\n },\n dismissible: {\n type: Boolean,\n default: false\n },\n dismissLabel: {\n type: String,\n default: 'Close'\n },\n show: {\n type: [Boolean, Number],\n default: false\n }\n },\n watch: {\n show: function show() {\n this.showChanged();\n }\n },\n mounted: function mounted() {\n this.showChanged();\n },\n destroyed /* istanbul ignore next */: function destroyed() {\n this.clearCounter();\n },\n\n methods: {\n dismiss: function dismiss() {\n this.clearCounter();\n this.dismissed = true;\n this.$emit('dismissed');\n this.$emit('input', false);\n if (typeof this.show === 'number') {\n this.$emit('dismiss-count-down', 0);\n this.$emit('input', 0);\n } else {\n this.$emit('input', false);\n }\n },\n clearCounter: function clearCounter() {\n if (this.countDownTimerId) {\n clearInterval(this.countDownTimerId);\n this.countDownTimerId = null;\n }\n },\n showChanged: function showChanged() {\n var _this = this;\n\n // Reset counter status\n this.clearCounter();\n // Reset dismiss status\n this.dismissed = false;\n // No timer for boolean values\n if (this.show === true || this.show === false || this.show === null || this.show === 0) {\n return;\n }\n // Start counter\n var dismissCountDown = this.show;\n this.countDownTimerId = setInterval(function () {\n if (dismissCountDown < 1) {\n _this.dismiss();\n return;\n }\n dismissCountDown--;\n _this.$emit('dismiss-count-down', dismissCountDown);\n _this.$emit('input', dismissCountDown);\n }, 1000);\n }\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nvar props = {\n disabled: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: 'Close'\n },\n textVariant: {\n type: String,\n default: null\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n slots = _ref.slots;\n\n var componentData = {\n staticClass: 'close',\n class: _defineProperty({}, 'text-' + props.textVariant, props.textVariant),\n attrs: {\n type: 'button',\n disabled: props.disabled,\n 'aria-label': props.ariaLabel ? String(props.ariaLabel) : null\n },\n on: {\n click: function click(e) {\n // Ensure click on button HTML content is also disabled\n if (props.disabled && e instanceof Event) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n }\n // Careful not to override the slot with innerHTML\n };if (!slots().default) {\n componentData.domProps = { innerHTML: '×' };\n }\n return h('button', mergeData(data, componentData), slots().default);\n }\n};","var __assign=Object.assign||function(e){for(var a,s=1,t=arguments.length;s<t;s++)for(var r in a=arguments[s])Object.prototype.hasOwnProperty.call(a,r)&&(e[r]=a[r]);return e};function mergeData(){for(var e,a,s={},t=arguments.length;t--;)for(var r=0,c=Object.keys(arguments[t]);r<c.length;r++)switch(e=c[r]){case\"class\":case\"style\":case\"directives\":Array.isArray(s[e])||(s[e]=[]),s[e]=s[e].concat(arguments[t][e]);break;case\"staticClass\":if(!arguments[t][e])break;void 0===s[e]&&(s[e]=\"\"),s[e]&&(s[e]+=\" \"),s[e]+=arguments[t][e].trim();break;case\"on\":case\"nativeOn\":s[e]||(s[e]={});for(var o=0,n=Object.keys(arguments[t][e]||{});o<n.length;o++)a=n[o],s[e][a]?s[e][a]=[].concat(s[e][a],arguments[t][e][a]):s[e][a]=arguments[t][e][a];break;case\"attrs\":case\"props\":case\"domProps\":case\"scopedSlots\":case\"staticStyle\":case\"hook\":case\"transition\":s[e]||(s[e]={}),s[e]=__assign({},arguments[t][e],s[e]);break;case\"slot\":case\"key\":case\"ref\":case\"tag\":case\"show\":case\"keepAlive\":default:s[e]||(s[e]=arguments[t][e])}return s}export{mergeData};\n//# sourceMappingURL=lib.esm.js.map\n","/**\n * Register a component plugin as being loaded. returns true if compoent plugin already registered\n * @param {object} Vue\n * @param {string} Component name\n * @param {object} Component definition\n */\nexport function registerComponent(Vue, name, def) {\n Vue._bootstrap_vue_components_ = Vue._bootstrap_vue_components_ || {};\n var loaded = Vue._bootstrap_vue_components_[name];\n if (!loaded && def && name) {\n Vue._bootstrap_vue_components_[name] = true;\n Vue.component(name, def);\n }\n return loaded;\n}\n\n/**\n * Register a group of components as being loaded.\n * @param {object} Vue\n * @param {object} Object of component definitions\n */\nexport function registerComponents(Vue, components) {\n for (var component in components) {\n registerComponent(Vue, component, components[component]);\n }\n}\n\n/**\n * Register a directive as being loaded. returns true if directive plugin already registered\n * @param {object} Vue\n * @param {string} Directive name\n * @param {object} Directive definition\n */\nexport function registerDirective(Vue, name, def) {\n Vue._bootstrap_vue_directives_ = Vue._bootstrap_vue_directives_ || {};\n var loaded = Vue._bootstrap_vue_directives_[name];\n if (!loaded && def && name) {\n Vue._bootstrap_vue_directives_[name] = true;\n Vue.directive(name, def);\n }\n return loaded;\n}\n\n/**\n * Register a group of directives as being loaded.\n * @param {object} Vue\n * @param {object} Object of directive definitions\n */\nexport function registerDirectives(Vue, directives) {\n for (var directive in directives) {\n registerDirective(Vue, directive, directives[directive]);\n }\n}\n\n/**\n * Install plugin if window.Vue available\n * @param {object} Plugin definition\n */\nexport function vueUse(VuePlugin) {\n if (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(VuePlugin);\n }\n}","import bBadge from './badge';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bBadge: bBadge\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\n\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nvar linkProps = linkPropsFactory();\ndelete linkProps.href.default;\ndelete linkProps.to.default;\n\nexport var props = assign(linkProps, {\n tag: {\n type: String,\n default: 'span'\n },\n variant: {\n type: String,\n default: 'secondary'\n },\n pill: {\n type: Boolean,\n default: false\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var tag = !props.href && !props.to ? props.tag : Link;\n\n var componentData = {\n staticClass: 'badge',\n class: [!props.variant ? 'badge-secondary' : 'badge-' + props.variant, {\n 'badge-pill': Boolean(props.pill),\n active: props.active,\n disabled: props.disabled\n }],\n props: pluckProps(linkProps, props)\n };\n\n return h(tag, mergeData(data, componentData), children);\n }\n};","import { keys } from './object';\nimport { isArray } from './array';\nimport identity from './identity';\n\n/**\n * Given an array of properties or an object of property keys,\n * plucks all the values off the target object.\n * @param {{}|string[]} keysToPluck\n * @param {{}} objToPluck\n * @param {Function} transformFn\n * @return {{}}\n */\nexport default function pluckProps(keysToPluck, objToPluck) {\n var transformFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : identity;\n\n return (isArray(keysToPluck) ? keysToPluck.slice() : keys(keysToPluck)).reduce(function (memo, prop) {\n // eslint-disable-next-line no-sequences\n return memo[transformFn(prop)] = objToPluck[prop], memo;\n }, {});\n}","/**\n * Aliasing Object[method] allows the minifier to shorten methods to a single character variable,\n * as well as giving BV a chance to inject polyfills.\n * As long as we avoid\n * - import * as Object from \"utils/object\"\n * all unused exports should be removed by tree-shaking.\n */\n\n// @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\nif (typeof Object.assign !== 'function') {\n Object.assign = function (target, varArgs) {\n // .length of function is 2\n\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n return to;\n };\n}\n\n// @link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#Polyfill\nif (!Object.is) {\n Object.is = function (x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n };\n}\n\nexport var assign = Object.assign;\nexport var getOwnPropertyNames = Object.getOwnPropertyNames;\nexport var keys = Object.keys;\nexport var defineProperties = Object.defineProperties;\nexport var defineProperty = Object.defineProperty;\nexport var freeze = Object.freeze;\nexport var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nexport var getOwnPropertySymbols = Object.getOwnPropertySymbols;\nexport var getPrototypeOf = Object.getPrototypeOf;\nexport var create = Object.create;\nexport var isFrozen = Object.isFrozen;\nexport var is = Object.is;\n\nexport function readonlyDescriptor() {\n return { enumerable: true, configurable: false, writable: false };\n}","// Production steps of ECMA-262, Edition 6, 22.1.2.1\n// es6-ified by @alexsasharegan\nif (!Array.from) {\n Array.from = function () {\n var toStr = Object.prototype.toString;\n var isCallable = function isCallable(fn) {\n return typeof fn === 'function' || toStr.call(fn) === '[object Function]';\n };\n var toInteger = function toInteger(value) {\n var number = Number(value);\n if (isNaN(number)) {\n return 0;\n }\n if (number === 0 || !isFinite(number)) {\n return number;\n }\n return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));\n };\n var maxSafeInteger = Math.pow(2, 53) - 1;\n var toLength = function toLength(value) {\n return Math.min(Math.max(toInteger(value), 0), maxSafeInteger);\n };\n\n // The length property of the from method is 1.\n return function from(arrayLike /*, mapFn, thisArg */) {\n // 1. Let C be the this value.\n var C = this;\n\n // 2. Let items be ToObject(arrayLike).\n var items = Object(arrayLike);\n\n // 3. ReturnIfAbrupt(items).\n if (arrayLike == null) {\n throw new TypeError('Array.from requires an array-like object - not null or undefined');\n }\n\n // 4. If mapfn is undefined, then let mapping be false.\n var mapFn = arguments.length > 1 ? arguments[1] : void undefined;\n var T = void 0;\n\n if (typeof mapFn !== 'undefined') {\n // 5. else\n // 5. a If IsCallable(mapfn) is false, throw a TypeError exception.\n if (!isCallable(mapFn)) {\n throw new TypeError('Array.from: when provided, the second argument must be a function');\n }\n\n // 5. b. If thisArg was supplied, let T be thisArg; else let T be undefined.\n if (arguments.length > 2) {\n T = arguments[2];\n }\n }\n\n // 10. Let lenValue be Get(items, \"length\").\n // 11. Let len be ToLength(lenValue).\n var len = toLength(items.length);\n\n // 13. If IsConstructor(C) is true, then\n // 13. a. Let A be the result of calling the [[Construct]] internal method\n // of C with an argument list containing the single item len.\n // 14. a. Else, Let A be ArrayCreate(len).\n var A = isCallable(C) ? Object(new C(len)) : new Array(len);\n\n // 16. Let k be 0.\n var k = 0;\n // 17. Repeat, while k < len… (also steps a - h)\n var kValue = void 0;\n while (k < len) {\n kValue = items[k];\n if (mapFn) {\n A[k] = typeof T === 'undefined' ? mapFn(kValue, k) : mapFn.call(T, kValue, k);\n } else {\n A[k] = kValue;\n }\n k += 1;\n }\n // 18. Let putStatus be Put(A, \"length\", len, true).\n A.length = len;\n // 20. Return A.\n return A;\n };\n }();\n}\n\n// https://tc39.github.io/ecma262/#sec-array.prototype.find\n// Needed for IE support\nif (!Array.prototype.find) {\n // eslint-disable-next-line no-extend-native\n Object.defineProperty(Array.prototype, 'find', {\n value: function value(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n var o = Object(this);\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n var len = o.length >>> 0;\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n var thisArg = arguments[1];\n\n // 5. Let k be 0.\n var k = 0;\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n var kValue = o[k];\n if (predicate.call(thisArg, kValue, k, o)) {\n return kValue;\n }\n // e. Increase k by 1.\n k++;\n }\n\n // 7. Return undefined.\n return undefined;\n }\n });\n}\n\nif (!Array.isArray) {\n Array.isArray = function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n };\n}\n\n// Static\nexport var from = Array.from;\nexport var isArray = Array.isArray;\n\n// Instance\nexport var arrayIncludes = function arrayIncludes(array, value) {\n return array.indexOf(value) !== -1;\n};\nexport var arrayFind = function arrayFind(array, fn, thisArg) {\n return array.find(fn, thisArg);\n};\nexport function concat() {\n return Array.prototype.concat.apply([], arguments);\n}","export default function identity(x) {\n return x;\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { assign, keys } from '../../utils/object';\nimport { arrayIncludes, concat } from '../../utils/array';\nimport { mergeData } from 'vue-functional-data-merge';\n\n/**\n * The Link component is used in many other BV components.\n * As such, sharing its props makes supporting all its features easier.\n * However, some components need to modify the defaults for their own purpose.\n * Prefer sharing a fresh copy of the props to ensure mutations\n * do not affect other component references to the props.\n *\n * https://github.com/vuejs/vue-router/blob/dev/src/components/link.js\n * @return {{}}\n */\nexport function propsFactory() {\n return {\n href: {\n type: String,\n default: null\n },\n rel: {\n type: String,\n default: null\n },\n target: {\n type: String,\n default: '_self'\n },\n active: {\n type: Boolean,\n default: false\n },\n activeClass: {\n type: String,\n default: 'active'\n },\n append: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n event: {\n type: [String, Array],\n default: 'click'\n },\n exact: {\n type: Boolean,\n default: false\n },\n exactActiveClass: {\n type: String,\n default: 'active'\n },\n replace: {\n type: Boolean,\n default: false\n },\n routerTag: {\n type: String,\n default: 'a'\n },\n to: {\n type: [String, Object],\n default: null\n }\n };\n}\n\nexport var props = propsFactory();\n\nexport function pickLinkProps(propsToPick) {\n var freshLinkProps = propsFactory();\n // Normalize everything to array.\n propsToPick = concat(propsToPick);\n\n return keys(freshLinkProps).reduce(function (memo, prop) {\n if (arrayIncludes(propsToPick, prop)) {\n memo[prop] = freshLinkProps[prop];\n }\n\n return memo;\n }, {});\n}\n\nexport function omitLinkProps(propsToOmit) {\n var freshLinkProps = propsFactory();\n // Normalize everything to array.\n propsToOmit = concat(propsToOmit);\n\n return keys(props).reduce(function (memo, prop) {\n if (!arrayIncludes(propsToOmit, prop)) {\n memo[prop] = freshLinkProps[prop];\n }\n\n return memo;\n }, {});\n}\n\nexport var computed = {\n linkProps: function linkProps() {\n var linkProps = {};\n var propKeys = keys(props);\n\n for (var i = 0; i < propKeys.length; i++) {\n var prop = propKeys[i];\n // Computed Vue getters are bound to the instance.\n linkProps[prop] = this[prop];\n }\n\n return linkProps;\n }\n};\n\nfunction computeTag(props, parent) {\n return Boolean(parent.$router) && props.to && !props.disabled ? 'router-link' : 'a';\n}\n\nfunction computeHref(_ref, tag) {\n var disabled = _ref.disabled,\n href = _ref.href,\n to = _ref.to;\n\n // We've already checked the parent.$router in computeTag,\n // so router-link means live router.\n // When deferring to Vue Router's router-link,\n // don't use the href attr at all.\n // Must return undefined for router-link to populate href.\n if (tag === 'router-link') return void 0;\n // If href explicitly provided\n if (href) return href;\n // Reconstruct href when `to` used, but no router\n if (to) {\n // Fallback to `to` prop (if `to` is a string)\n if (typeof to === 'string') return to;\n // Fallback to `to.path` prop (if `to` is an object)\n if ((typeof to === 'undefined' ? 'undefined' : _typeof(to)) === 'object' && typeof to.path === 'string') return to.path;\n }\n // If nothing is provided use '#'\n return '#';\n}\n\nfunction computeRel(_ref2) {\n var target = _ref2.target,\n rel = _ref2.rel;\n\n if (target === '_blank' && rel === null) {\n return 'noopener';\n }\n return rel || null;\n}\n\nfunction clickHandlerFactory(_ref3) {\n var disabled = _ref3.disabled,\n tag = _ref3.tag,\n href = _ref3.href,\n suppliedHandler = _ref3.suppliedHandler,\n parent = _ref3.parent;\n\n var isRouterLink = tag === 'router-link';\n\n return function onClick(e) {\n if (disabled && e instanceof Event) {\n // Stop event from bubbling up.\n e.stopPropagation();\n // Kill the event loop attached to this specific EventTarget.\n e.stopImmediatePropagation();\n } else {\n parent.$root.$emit('clicked::link', e);\n\n if (isRouterLink && e.target.__vue__) {\n e.target.__vue__.$emit('click', e);\n }\n if (typeof suppliedHandler === 'function') {\n suppliedHandler.apply(undefined, arguments);\n }\n }\n\n if (!isRouterLink && href === '#' || disabled) {\n // Stop scroll-to-top behavior or navigation.\n e.preventDefault();\n }\n };\n}\n\nexport default {\n functional: true,\n props: propsFactory(),\n render: function render(h, _ref4) {\n var props = _ref4.props,\n data = _ref4.data,\n parent = _ref4.parent,\n children = _ref4.children;\n\n var tag = computeTag(props, parent);\n var rel = computeRel(props);\n var href = computeHref(props, tag);\n var eventType = tag === 'router-link' ? 'nativeOn' : 'on';\n var suppliedHandler = (data[eventType] || {}).click;\n var handlers = { click: clickHandlerFactory({ tag: tag, href: href, disabled: props.disabled, suppliedHandler: suppliedHandler, parent: parent }) };\n\n var componentData = mergeData(data, {\n class: [props.active ? props.exact ? props.exactActiveClass : props.activeClass : null, { disabled: props.disabled }],\n attrs: {\n rel: rel,\n href: href,\n target: props.target,\n tabindex: props.disabled ? '-1' : data.attrs ? data.attrs.tabindex : null,\n 'aria-disabled': tag === 'a' && props.disabled ? 'true' : null\n },\n props: assign(props, { tag: props.routerTag })\n });\n\n // If href prop exists on router-link (even undefined or null) it fails working on SSR\n if (!componentData.attrs.href) {\n delete componentData.attrs.href;\n }\n\n // We want to overwrite any click handler since our callback\n // will invoke the supplied handler if !props.disabled\n componentData[eventType] = assign(componentData[eventType] || {}, handlers);\n\n return h(tag, componentData, children);\n }\n};","import bBreadcrumb from './breadcrumb';\nimport bBreadcrumbItem from './breadcrumb-item';\nimport bBreadcrumbLink from './breadcrumb-link';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bBreadcrumb: bBreadcrumb,\n bBreadcrumbItem: bBreadcrumbItem,\n bBreadcrumbLink: bBreadcrumbLink\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport { isArray } from '../../utils/array';\nimport { assign } from '../../utils/object';\nimport BreadcrumbItem from './breadcrumb-item';\n\nexport var props = {\n items: {\n type: Array,\n default: null\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var childNodes = children;\n // Build child nodes from items if given.\n if (isArray(props.items)) {\n var activeDefined = false;\n childNodes = props.items.map(function (item, idx) {\n if ((typeof item === 'undefined' ? 'undefined' : _typeof(item)) !== 'object') {\n item = { text: item };\n }\n // Copy the value here so we can normalize it.\n var active = item.active;\n if (active) {\n activeDefined = true;\n }\n if (!active && !activeDefined) {\n // Auto-detect active by position in list.\n active = idx + 1 === props.items.length;\n }\n\n return h(BreadcrumbItem, { props: assign({}, item, { active: active }) });\n });\n }\n\n return h('ol', mergeData(data, { staticClass: 'breadcrumb' }), childNodes);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\nimport { assign } from '../../utils/object';\nimport BreadcrumbLink, { props as crumbLinks } from './breadcrumb-link';\n\nexport var props = assign({}, crumbLinks, {\n text: {\n type: String,\n default: null\n },\n href: {\n type: String,\n default: null\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h('li', mergeData(data, {\n staticClass: 'breadcrumb-item',\n class: { active: props.active },\n attrs: { role: 'presentation' }\n }), [h(BreadcrumbLink, { props: props }, children)]);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nexport var props = assign(linkPropsFactory(), {\n text: {\n type: String,\n default: null\n },\n active: {\n type: Boolean,\n default: false\n },\n href: {\n type: String,\n default: '#'\n },\n ariaCurrent: {\n type: String,\n default: 'location'\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var suppliedProps = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var tag = suppliedProps.active ? 'span' : Link;\n\n var componentData = {\n props: pluckProps(props, suppliedProps),\n domProps: { innerHTML: suppliedProps.text }\n };\n\n if (suppliedProps.active) {\n componentData.attrs = { 'aria-current': suppliedProps.ariaCurrent };\n } else {\n componentData.attrs = { href: suppliedProps.href };\n }\n\n return h(tag, mergeData(data, componentData), children);\n }\n};","import bButton from './button';\nimport bButtonClose from './button-close';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bButton: bButton,\n bBtn: bButton,\n bButtonClose: bButtonClose,\n bBtnClose: bButtonClose\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { concat } from '../../utils/array';\nimport { assign, keys } from '../../utils/object';\nimport { addClass, removeClass } from '../../utils/dom';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nvar btnProps = {\n block: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null\n },\n variant: {\n type: String,\n default: null\n },\n type: {\n type: String,\n default: 'button'\n },\n pressed: {\n // tri-state prop: true, false or null\n // => on, off, not a toggle\n type: Boolean,\n default: null\n }\n};\n\nvar linkProps = linkPropsFactory();\ndelete linkProps.href.default;\ndelete linkProps.to.default;\nvar linkPropKeys = keys(linkProps);\n\nexport var props = assign(linkProps, btnProps);\n\nfunction handleFocus(evt) {\n if (evt.type === 'focusin') {\n addClass(evt.target, 'focus');\n } else if (evt.type === 'focusout') {\n removeClass(evt.target, 'focus');\n }\n}\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n listeners = _ref.listeners,\n children = _ref.children;\n\n var isLink = Boolean(props.href || props.to);\n var isToggle = typeof props.pressed === 'boolean';\n var on = {\n click: function click(e) {\n if (props.disabled && e instanceof Event) {\n e.stopPropagation();\n e.preventDefault();\n } else if (isToggle) {\n // Concat will normalize the value to an array\n // without double wrapping an array value in an array.\n concat(listeners['update:pressed']).forEach(function (fn) {\n if (typeof fn === 'function') {\n fn(!props.pressed);\n }\n });\n }\n }\n };\n\n if (isToggle) {\n on.focusin = handleFocus;\n on.focusout = handleFocus;\n }\n\n var componentData = {\n staticClass: 'btn',\n class: [props.variant ? 'btn-' + props.variant : 'btn-secondary', (_ref2 = {}, _defineProperty(_ref2, 'btn-' + props.size, Boolean(props.size)), _defineProperty(_ref2, 'btn-block', props.block), _defineProperty(_ref2, 'disabled', props.disabled), _defineProperty(_ref2, 'active', props.pressed), _ref2)],\n props: isLink ? pluckProps(linkPropKeys, props) : null,\n attrs: {\n type: isLink ? null : props.type,\n disabled: isLink ? null : props.disabled,\n // Data attribute not used for js logic,\n // but only for BS4 style selectors.\n 'data-toggle': isToggle ? 'button' : null,\n 'aria-pressed': isToggle ? String(props.pressed) : null,\n // Tab index is used when the component becomes a link.\n // Links are tabable, but don't allow disabled,\n // so we mimic that functionality by disabling tabbing.\n tabindex: props.disabled && isLink ? '-1' : data.attrs ? data.attrs['tabindex'] : null\n },\n on: on\n };\n\n return h(isLink ? Link : 'button', mergeData(data, componentData), children);\n }\n};","import { from as arrayFrom } from './array';\n\n// Determine if an element is an HTML Element\nexport var isElement = function isElement(el) {\n return el && el.nodeType === Node.ELEMENT_NODE;\n};\n\n// Determine if an HTML element is visible - Faster than CSS check\nexport var isVisible = function isVisible(el) {\n return isElement(el) && document.body.contains(el) && el.getBoundingClientRect().height > 0 && el.getBoundingClientRect().width > 0;\n};\n\n// Determine if an element is disabled\nexport var isDisabled = function isDisabled(el) {\n return !isElement(el) || el.disabled || el.classList.contains('disabled') || Boolean(el.getAttribute('disabled'));\n};\n\n// Cause/wait-for an element to reflow it's content (adjusting it's height/width)\nexport var reflow = function reflow(el) {\n // requsting an elements offsetHight will trigger a reflow of the element content\n return isElement(el) && el.offsetHeight;\n};\n\n// Select all elements matching selector. Returns [] if none found\nexport var selectAll = function selectAll(selector, root) {\n if (!isElement(root)) {\n root = document;\n }\n return arrayFrom(root.querySelectorAll(selector));\n};\n\n// Select a single element, returns null if not found\nexport var select = function select(selector, root) {\n if (!isElement(root)) {\n root = document;\n }\n return root.querySelector(selector) || null;\n};\n\n// Determine if an element matches a selector\nexport var matches = function matches(el, selector) {\n if (!isElement(el)) {\n return false;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/matches#Polyfill\n // Prefer native implementations over polyfill function\n var proto = Element.prototype;\n var Matches = proto.matches || proto.matchesSelector || proto.mozMatchesSelector || proto.msMatchesSelector || proto.oMatchesSelector || proto.webkitMatchesSelector ||\n /* istanbul ignore next */\n function (sel) {\n var element = this;\n var m = selectAll(sel, element.document || element.ownerDocument);\n var i = m.length;\n // eslint-disable-next-line no-empty\n while (--i >= 0 && m.item(i) !== element) {}\n return i > -1;\n };\n\n return Matches.call(el, selector);\n};\n\n// Finds closest element matching selector. Returns null if not found\nexport var closest = function closest(selector, root) {\n if (!isElement(root)) {\n return null;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest\n // Since we dont support IE < 10, we can use the \"Matches\" version of the polyfill for speed\n // Prefer native implementation over polyfill function\n var Closest = Element.prototype.closest ||\n /* istanbul ignore next */\n function (sel) {\n var element = this;\n if (!document.documentElement.contains(element)) {\n return null;\n }\n do {\n // Use our \"patched\" matches function\n if (matches(element, sel)) {\n return element;\n }\n element = element.parentElement;\n } while (element !== null);\n return null;\n };\n\n var el = Closest.call(root, selector);\n // Emulate jQuery closest and return null if match is the passed in element (root)\n return el === root ? null : el;\n};\n\n// Get an element given an ID\nexport var getById = function getById(id) {\n return document.getElementById(/^#/.test(id) ? id.slice(1) : id) || null;\n};\n\n// Add a class to an element\nexport var addClass = function addClass(el, className) {\n if (className && isElement(el)) {\n el.classList.add(className);\n }\n};\n\n// Remove a class from an element\nexport var removeClass = function removeClass(el, className) {\n if (className && isElement(el)) {\n el.classList.remove(className);\n }\n};\n\n// Test if an element has a class\nexport var hasClass = function hasClass(el, className) {\n if (className && isElement(el)) {\n return el.classList.contains(className);\n }\n return false;\n};\n\n// Set an attribute on an element\nexport var setAttr = function setAttr(el, attr, value) {\n if (attr && isElement(el)) {\n el.setAttribute(attr, value);\n }\n};\n\n// Remove an attribute from an element\nexport var removeAttr = function removeAttr(el, attr) {\n if (attr && isElement(el)) {\n el.removeAttribute(attr);\n }\n};\n\n// Get an attribute value from an element (returns null if not found)\nexport var getAttr = function getAttr(el, attr) {\n if (attr && isElement(el)) {\n return el.getAttribute(attr);\n }\n return null;\n};\n\n// Determine if an attribute exists on an element (returns true or false, or null if element not found)\nexport var hasAttr = function hasAttr(el, attr) {\n if (attr && isElement(el)) {\n return el.hasAttribute(attr);\n }\n return null;\n};\n\n// Return the Bounding Client Rec of an element. Retruns null if not an element\nexport var getBCR = function getBCR(el) {\n return isElement(el) ? el.getBoundingClientRect() : null;\n};\n\n// Get computed style object for an element\nexport var getCS = function getCS(el) {\n return isElement(el) ? window.getComputedStyle(el) : {};\n};\n\n// Return an element's offset wrt document element\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.offset\nexport var offset = function offset(el) {\n if (isElement(el)) {\n if (!el.getClientRects().length) {\n return { top: 0, left: 0 };\n }\n var bcr = getBCR(el);\n var win = el.ownerDocument.defaultView;\n return {\n top: bcr.top + win.pageYOffset,\n left: bcr.left + win.pageXOffset\n };\n }\n};\n\n// Return an element's offset wrt to it's offsetParent\n// https://j11y.io/jquery/#v=git&fn=jQuery.fn.position\nexport var position = function position(el) {\n if (!isElement(el)) {\n return;\n }\n var parentOffset = { top: 0, left: 0 };\n var offsetSelf = void 0;\n var offsetParent = void 0;\n if (getCS(el).position === 'fixed') {\n offsetSelf = getBCR(el);\n } else {\n offsetSelf = offset(el);\n var doc = el.ownerDocument;\n offsetParent = el.offsetParent || doc.documentElement;\n while (offsetParent && (offsetParent === doc.body || offsetParent === doc.documentElement) && getCS(offsetParent).position === 'static') {\n offsetParent = offsetParent.parentNode;\n }\n if (offsetParent && offsetParent !== el && offsetParent.nodeType === Node.ELEMENT_NODE) {\n parentOffset = offset(offsetParent);\n parentOffset.top += parseFloat(getCS(offsetParent).borderTopWidth);\n parentOffset.left += parseFloat(getCS(offsetParent).borderLeftWidth);\n }\n }\n return {\n top: offsetSelf.top - parentOffset.top - parseFloat(getCS(el).marginTop),\n left: offsetSelf.left - parentOffset.left - parseFloat(getCS(el).marginLeft)\n };\n};\n\n// Attach an event listener to an element\nexport var eventOn = function eventOn(el, evtName, handler) {\n if (el && el.addEventListener) {\n el.addEventListener(evtName, handler);\n }\n};\n\n// Remove an event listener from an element\nexport var eventOff = function eventOff(el, evtName, handler) {\n if (el && el.removeEventListener) {\n el.removeEventListener(evtName, handler);\n }\n};","import bButtonGroup from './button-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bButtonGroup: bButtonGroup,\n bBtnGroup: bButtonGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport { arrayIncludes } from '../../utils/array';\n\nexport var props = {\n vertical: {\n type: Boolean,\n default: false\n },\n size: {\n type: String,\n default: null,\n validator: function validator(size) {\n return arrayIncludes(['sm', '', 'lg'], size);\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n ariaRole: {\n type: String,\n default: 'group'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'btn-group': !props.vertical,\n 'btn-group-vertical': props.vertical\n }, 'btn-group-' + props.size, Boolean(props.size)),\n attrs: { 'role': props.ariaRole }\n }), children);\n }\n};","import bButtonToolbar from './button-toolbar';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bButtonToolbar: bButtonToolbar,\n bBtnToolbar: bButtonToolbar\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { isVisible, selectAll } from '../../utils/dom';\nimport KeyCodes from '../../utils/key-codes';\n\nvar ITEM_SELECTOR = ['.btn:not(.disabled):not([disabled]):not(.dropdown-item)', '.form-control:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'input[type=\"checkbox\"]:not(.disabled)', 'input[type=\"radio\"]:not(.disabled)'].join(',');\n\nexport default {\n render: function render(h) {\n return h('div', {\n class: this.classObject,\n attrs: {\n role: 'toolbar',\n tabindex: this.keyNav ? '0' : null\n },\n on: {\n focusin: this.onFocusin,\n keydown: this.onKeydown\n }\n }, [this.$slots.default]);\n },\n\n computed: {\n classObject: function classObject() {\n return ['btn-toolbar', this.justify && !this.vertical ? 'justify-content-between' : ''];\n }\n },\n props: {\n justify: {\n type: Boolean,\n default: false\n },\n keyNav: {\n type: Boolean,\n default: false\n }\n },\n methods: {\n onFocusin: function onFocusin(evt) {\n if (evt.target === this.$el) {\n evt.preventDefault();\n evt.stopPropagation();\n this.focusFirst(evt);\n }\n },\n onKeydown: function onKeydown(evt) {\n if (!this.keyNav) {\n return;\n }\n var key = evt.keyCode;\n var shift = evt.shiftKey;\n if (key === KeyCodes.UP || key === KeyCodes.LEFT) {\n evt.preventDefault();\n evt.stopPropagation();\n if (shift) {\n this.focusFirst(evt);\n } else {\n this.focusNext(evt, true);\n }\n } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT) {\n evt.preventDefault();\n evt.stopPropagation();\n if (shift) {\n this.focusLast(evt);\n } else {\n this.focusNext(evt, false);\n }\n }\n },\n setItemFocus: function setItemFocus(item) {\n this.$nextTick(function () {\n item.focus();\n });\n },\n focusNext: function focusNext(evt, prev) {\n var items = this.getItems();\n if (items.length < 1) {\n return;\n }\n var index = items.indexOf(evt.target);\n if (prev && index > 0) {\n index--;\n } else if (!prev && index < items.length - 1) {\n index++;\n }\n if (index < 0) {\n index = 0;\n }\n this.setItemFocus(items[index]);\n },\n focusFirst: function focusFirst(evt) {\n var items = this.getItems();\n if (items.length > 0) {\n this.setItemFocus(items[0]);\n }\n },\n focusLast: function focusLast(evt) {\n var items = this.getItems();\n if (items.length > 0) {\n this.setItemFocus([items.length - 1]);\n }\n },\n getItems: function getItems() {\n var items = selectAll(ITEM_SELECTOR, this.$el);\n items.forEach(function (item) {\n // Ensure tabfocus is -1 on any new elements\n item.tabIndex = -1;\n });\n return items.filter(function (el) {\n return isVisible(el);\n });\n }\n },\n mounted: function mounted() {\n if (this.keyNav) {\n // Pre-set the tabindexes if the markup does not include tabindex=\"-1\" on the toolbar items\n this.getItems();\n }\n }\n};","/*\n * Key Codes (events)\n */\n\nexport default {\n SPACE: 32,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n PAGEUP: 33,\n PAGEDOWN: 34,\n HOME: 36,\n END: 35\n};","import { registerComponents, vueUse } from '../../utils/plugins';\n\nimport bInputGroup from './input-group';\nimport bInputGroupAddon from './input-group-addon';\nimport bInputGroupPrepend from './input-group-prepend';\nimport bInputGroupAppend from './input-group-append';\nimport bInputGroupText from './input-group-text';\n\nvar components = {\n bInputGroup: bInputGroup,\n bInputGroupAddon: bInputGroupAddon,\n bInputGroupPrepend: bInputGroupPrepend,\n bInputGroupAppend: bInputGroupAppend,\n bInputGroupText: bInputGroupText\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport InputGroupPrepend from './input-group-prepend';\nimport InputGroupAppend from './input-group-append';\nimport InputGroupText from './input-group-text';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n size: {\n type: String,\n default: null\n },\n prepend: {\n type: String,\n default: null\n },\n append: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots;\n\n var $slots = slots();\n\n var childNodes = [];\n\n // Prepend prop\n if (props.prepend) {\n childNodes.push(h(InputGroupPrepend, [h(InputGroupText, { domProps: { innerHTML: props.prepend } })]));\n }\n\n // Prepend slot\n if ($slots.prepend) {\n childNodes.push(h(InputGroupPrepend, $slots.prepend));\n }\n\n // Default slot\n childNodes.push($slots.default);\n\n // Append prop\n if (props.append) {\n childNodes.push(h(InputGroupAppend, [h(InputGroupText, { domProps: { innerHTML: props.append } })]));\n }\n\n // Append slot\n if ($slots.append) {\n childNodes.push(h(InputGroupAppend, $slots.append));\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group',\n class: _defineProperty({}, 'input-group-' + props.size, Boolean(props.size)),\n attrs: {\n id: props.id || null,\n role: 'group'\n }\n }), childNodes);\n }\n};","import InputGroupAddon, { propsFactory } from './input-group-addon';\n\nexport default {\n functional: true,\n props: propsFactory(false),\n render: InputGroupAddon.render\n};","import { mergeData } from 'vue-functional-data-merge';\nimport InputGroupText from './input-group-text';\n\nexport var propsFactory = function propsFactory(append) {\n return {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n append: {\n type: Boolean,\n default: append\n },\n isText: {\n type: Boolean,\n default: false\n }\n };\n};\n\nexport default {\n functional: true,\n props: propsFactory(false),\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group-' + (props.append ? 'append' : 'prepend'),\n attrs: {\n id: props.id\n }\n }), props.isText ? [h(InputGroupText, children)] : children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n props: props,\n functional: true,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'input-group-text'\n }), children);\n }\n};","import InputGroupAddon, { propsFactory } from './input-group-addon';\n\nexport default {\n functional: true,\n props: propsFactory(true),\n render: InputGroupAddon.render\n};","import bCard from './card';\nimport bCardHeader from './card-header';\nimport bCardBody from './card-body';\nimport bCardFooter from './card-footer';\nimport bCardImg from './card-img';\nimport bCardGroup from './card-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bCard: bCard,\n bCardHeader: bCardHeader,\n bCardBody: bCardBody,\n bCardFooter: bCardFooter,\n bCardImg: bCardImg,\n bCardGroup: bCardGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport unPrefixPropName from '../../utils/unprefix-prop-name';\nimport copyProps from '../../utils/copyProps';\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\nimport cardMixin from '../../mixins/card-mixin';\nimport CardBody, { props as bodyProps } from './card-body';\nimport CardHeader, { props as headerProps } from './card-header';\nimport CardFooter, { props as footerProps } from './card-footer';\nimport CardImg, { props as imgProps } from './card-img';\n\nvar cardImgProps = copyProps(imgProps, prefixPropName.bind(null, 'img'));\ncardImgProps.imgSrc.required = false;\n\nexport var props = assign({}, bodyProps, headerProps, footerProps, cardImgProps, copyProps(cardMixin.props), {\n align: {\n type: String,\n default: null\n },\n noBody: {\n type: Boolean,\n default: false\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n children = _ref.children;\n\n // The order of the conditionals matter.\n // We are building the component markup in order.\n var childNodes = [];\n var $slots = slots();\n var img = props.imgSrc ? h(CardImg, {\n props: pluckProps(cardImgProps, props, unPrefixPropName.bind(null, 'img'))\n }) : null;\n\n if (img) {\n // Above the header placement.\n if (props.imgTop || !props.imgBottom) {\n childNodes.push(img);\n }\n }\n if (props.header || $slots.header) {\n childNodes.push(h(CardHeader, { props: pluckProps(headerProps, props) }, $slots.header));\n }\n if (props.noBody) {\n childNodes.push($slots.default);\n } else {\n childNodes.push(h(CardBody, { props: pluckProps(bodyProps, props) }, $slots.default));\n }\n if (props.footer || $slots.footer) {\n childNodes.push(h(CardFooter, { props: pluckProps(footerProps, props) }, $slots.footer));\n }\n if (img && props.imgBottom) {\n // Below the footer placement.\n childNodes.push(img);\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'card',\n class: (_class = {}, _defineProperty(_class, 'text-' + props.align, Boolean(props.align)), _defineProperty(_class, 'bg-' + props.bgVariant, Boolean(props.bgVariant)), _defineProperty(_class, 'border-' + props.borderVariant, Boolean(props.borderVariant)), _defineProperty(_class, 'text-' + props.textVariant, Boolean(props.textVariant)), _class)\n }), childNodes);\n }\n};","import upperFirst from './upper-first';\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nexport default function prefixPropName(prefix, value) {\n return prefix + upperFirst(value);\n}","/**\n * @param {string} str\n */\nexport default function upperFirst(str) {\n if (typeof str !== 'string') {\n str = String(str);\n }\n return str.charAt(0).toUpperCase() + str.slice(1);\n}","import lowerFirst from './lower-first';\n\n/**\n * @param {string} prefix\n * @param {string} value\n */\nexport default function unPrefixPropName(prefix, value) {\n return lowerFirst(value.replace(prefix, ''));\n}","/**\n * @param {string} str\n */\nexport default function lowerFirst(str) {\n if (typeof str !== 'string') {\n str = String(str);\n }\n return str.charAt(0).toLowerCase() + str.slice(1);\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { isArray } from './array';\nimport { assign } from './object';\nimport identity from './identity';\n\n/**\n * @param {[]|{}} props\n * @param {Function} transformFn\n */\nexport default function copyProps(props) {\n var transformFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identity;\n\n if (isArray(props)) {\n return props.map(transformFn);\n }\n // Props as an object.\n var copied = {};\n\n for (var prop in props) {\n if (props.hasOwnProperty(prop)) {\n if ((typeof prop === 'undefined' ? 'undefined' : _typeof(prop)) === 'object') {\n copied[transformFn(prop)] = assign({}, props[prop]);\n } else {\n copied[transformFn(prop)] = props[prop];\n }\n }\n }\n\n return copied;\n}","export default {\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n bgVariant: {\n type: String,\n default: null\n },\n borderVariant: {\n type: String,\n default: null\n },\n textVariant: {\n type: String,\n default: null\n }\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport copyProps from '../../utils/copyProps';\nimport { assign } from '../../utils/object';\nimport cardMixin from '../../mixins/card-mixin';\n\nexport var props = assign({}, copyProps(cardMixin.props, prefixPropName.bind(null, 'body')), {\n bodyClass: {\n type: [String, Object, Array],\n default: null\n },\n title: {\n type: String,\n default: null\n },\n titleTag: {\n type: String,\n default: 'h4'\n },\n subTitle: {\n type: String,\n default: null\n },\n subTitleTag: {\n type: String,\n default: 'h6'\n },\n overlay: {\n type: Boolean,\n default: false\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots;\n\n var cardBodyChildren = [];\n if (props.title) {\n cardBodyChildren.push(h(props.titleTag, {\n staticClass: 'card-title',\n domProps: { innerHTML: props.title }\n }));\n }\n if (props.subTitle) {\n cardBodyChildren.push(h(props.subTitleTag, {\n staticClass: 'card-subtitle mb-2 text-muted',\n domProps: { innerHTML: props.subTitle }\n }));\n }\n cardBodyChildren.push(slots().default);\n\n return h(props.bodyTag, mergeData(data, {\n staticClass: 'card-body',\n class: [(_ref2 = {\n 'card-img-overlay': props.overlay\n }, _defineProperty(_ref2, 'bg-' + props.bodyBgVariant, Boolean(props.bodyBgVariant)), _defineProperty(_ref2, 'border-' + props.bodyBorderVariant, Boolean(props.bodyBorderVariant)), _defineProperty(_ref2, 'text-' + props.bodyTextVariant, Boolean(props.bodyTextVariant)), _ref2), props.bodyClass || {}]\n }), cardBodyChildren);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport copyProps from '../../utils/copyProps';\nimport { assign } from '../../utils/object';\nimport cardMixin from '../../mixins/card-mixin';\n\nexport var props = assign({}, copyProps(cardMixin.props, prefixPropName.bind(null, 'header')), {\n header: {\n type: String,\n default: null\n },\n headerClass: {\n type: [String, Object, Array],\n default: null\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n children = _ref.children;\n\n return h(props.headerTag, mergeData(data, {\n staticClass: 'card-header',\n class: [props.headerClass, (_ref2 = {}, _defineProperty(_ref2, 'bg-' + props.headerBgVariant, Boolean(props.headerBgVariant)), _defineProperty(_ref2, 'border-' + props.headerBorderVariant, Boolean(props.headerBorderVariant)), _defineProperty(_ref2, 'text-' + props.headerTextVariant, Boolean(props.headerTextVariant)), _ref2)]\n }), children || [h('div', { domProps: { innerHTML: props.header } })]);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nimport prefixPropName from '../../utils/prefix-prop-name';\nimport copyProps from '../../utils/copyProps';\nimport { assign } from '../../utils/object';\nimport cardMixin from '../../mixins/card-mixin';\n\nexport var props = assign({}, copyProps(cardMixin.props, prefixPropName.bind(null, 'footer')), {\n footer: {\n type: String,\n default: null\n },\n footerClass: {\n type: [String, Object, Array],\n default: null\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _ref2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n children = _ref.children;\n\n return h(props.footerTag, mergeData(data, {\n staticClass: 'card-footer',\n class: [props.footerClass, (_ref2 = {}, _defineProperty(_ref2, 'bg-' + props.footerBgVariant, Boolean(props.footerBgVariant)), _defineProperty(_ref2, 'border-' + props.footerBorderVariant, Boolean(props.footerBorderVariant)), _defineProperty(_ref2, 'text-' + props.footerTextVariant, Boolean(props.footerTextVariant)), _ref2)]\n }), children || [h('div', { domProps: { innerHTML: props.footer } })]);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n src: {\n type: String,\n default: null,\n required: true\n },\n alt: {\n type: String,\n default: null\n },\n top: {\n type: Boolean,\n default: false\n },\n bottom: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots;\n\n var staticClass = 'card-img';\n if (props.top) {\n staticClass += '-top';\n } else if (props.bottom) {\n staticClass += '-bottom';\n }\n\n return h('img', mergeData(data, {\n staticClass: staticClass,\n class: { 'img-fluid': props.fluid },\n attrs: { src: props.src, alt: props.alt }\n }));\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n deck: {\n type: Boolean,\n default: false\n },\n columns: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var staticClass = 'card-group';\n if (props.columns) {\n staticClass = 'card-columns';\n }\n if (props.deck) {\n staticClass = 'card-deck';\n }\n\n return h(props.tag, mergeData(data, { staticClass: staticClass }), children);\n }\n};","import bCarousel from './carousel';\nimport bCarouselSlide from './carousel-slide';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bCarousel: bCarousel,\n bCarouselSlide: bCarouselSlide\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import observeDom from '../../utils/observe-dom';\nimport KeyCodes from '../../utils/key-codes';\nimport { selectAll, reflow, addClass, removeClass, setAttr, eventOn, eventOff } from '../../utils/dom';\nimport idMixin from '../../mixins/id';\n\n// Slide directional classes\nvar DIRECTION = {\n next: {\n dirClass: 'carousel-item-left',\n overlayClass: 'carousel-item-next'\n },\n prev: {\n dirClass: 'carousel-item-right',\n overlayClass: 'carousel-item-prev'\n }\n\n // Fallback Transition duration (with a little buffer) in ms\n};var TRANS_DURATION = 600 + 50;\n\n// Transition Event names\nvar TransitionEndEvents = {\n WebkitTransition: 'webkitTransitionEnd',\n MozTransition: 'transitionend',\n OTransition: 'otransitionend oTransitionEnd',\n transition: 'transitionend'\n\n // Return the browser specific transitionEnd event name\n};function getTransisionEndEvent(el) {\n for (var name in TransitionEndEvents) {\n if (el.style[name] !== undefined) {\n return TransitionEndEvents[name];\n }\n }\n // fallback\n return null;\n}\n\nexport default {\n mixins: [idMixin],\n render: function render(h) {\n var _this = this;\n\n // Wrapper for slides\n var inner = h('div', {\n ref: 'inner',\n class: ['carousel-inner'],\n attrs: {\n id: this.safeId('__BV_inner_'),\n role: 'list'\n }\n }, [this.$slots.default]);\n\n // Prev and Next Controls\n var controls = h(false);\n if (this.controls) {\n controls = [h('a', {\n class: ['carousel-control-prev'],\n attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n on: {\n click: function click(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.prev();\n },\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.prev();\n }\n }\n }\n }, [h('span', { class: ['carousel-control-prev-icon'], attrs: { 'aria-hidden': 'true' } }), h('span', { class: ['sr-only'] }, [this.labelPrev])]), h('a', {\n class: ['carousel-control-next'],\n attrs: { href: '#', role: 'button', 'aria-controls': this.safeId('__BV_inner_') },\n on: {\n click: function click(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.next();\n },\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.next();\n }\n }\n }\n }, [h('span', { class: ['carousel-control-next-icon'], attrs: { 'aria-hidden': 'true' } }), h('span', { class: ['sr-only'] }, [this.labelNext])])];\n }\n\n // Indicators\n var indicators = h('ol', {\n class: ['carousel-indicators'],\n directives: [{ name: 'show', rawName: 'v-show', value: this.indicators, expression: 'indicators' }],\n attrs: {\n id: this.safeId('__BV_indicators_'),\n 'aria-hidden': this.indicators ? 'false' : 'true',\n 'aria-label': this.labelIndicators,\n 'aria-owns': this.safeId('__BV_inner_')\n }\n }, this.slides.map(function (slide, n) {\n return h('li', {\n key: 'slide_' + n,\n class: { active: n === _this.index },\n attrs: {\n role: 'button',\n id: _this.safeId('__BV_indicator_' + (n + 1) + '_'),\n tabindex: _this.indicators ? '0' : '-1',\n 'aria-current': n === _this.index ? 'true' : 'false',\n 'aria-label': _this.labelGotoSlide + ' ' + (n + 1),\n 'aria-describedby': _this.slides[n].id || null,\n 'aria-controls': _this.safeId('__BV_inner_')\n },\n on: {\n click: function click(evt) {\n _this.setSlide(n);\n },\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.SPACE || keyCode === KeyCodes.ENTER) {\n evt.preventDefault();\n evt.stopPropagation();\n _this.setSlide(n);\n }\n }\n }\n });\n }));\n\n // Return the carousel\n return h('div', {\n class: ['carousel', 'slide'],\n style: { background: this.background },\n attrs: {\n role: 'region',\n id: this.safeId(),\n 'aria-busy': this.isSliding ? 'true' : 'false'\n },\n on: {\n mouseenter: this.pause,\n mouseleave: this.restart,\n focusin: this.pause,\n focusout: this.restart,\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.LEFT || keyCode === KeyCodes.RIGHT) {\n evt.preventDefault();\n evt.stopPropagation();\n _this[keyCode === KeyCodes.LEFT ? 'prev' : 'next']();\n }\n }\n }\n }, [inner, controls, indicators]);\n },\n data: function data() {\n return {\n index: this.value || 0,\n isSliding: false,\n intervalId: null,\n transitionEndEvent: null,\n slides: [],\n direction: null\n };\n },\n\n props: {\n labelPrev: {\n type: String,\n default: 'Previous Slide'\n },\n labelNext: {\n type: String,\n default: 'Next Slide'\n },\n labelGotoSlide: {\n type: String,\n default: 'Goto Slide'\n },\n labelIndicators: {\n type: String,\n default: 'Select a slide to display'\n },\n interval: {\n type: Number,\n default: 5000\n },\n indicators: {\n type: Boolean,\n default: false\n },\n controls: {\n type: Boolean,\n default: false\n },\n imgWidth: {\n // Sniffed by carousel-slide\n type: [Number, String]\n },\n imgHeight: {\n // Sniffed by carousel-slide\n type: [Number, String]\n },\n background: {\n type: String\n },\n value: {\n type: Number,\n default: 0\n }\n },\n computed: {\n isCycling: function isCycling() {\n return Boolean(this.intervalId);\n }\n },\n methods: {\n // Set slide\n setSlide: function setSlide(slide) {\n var _this2 = this;\n\n // Don't animate when page is not visible\n if (typeof document !== 'undefined' && document.visibilityState && document.hidden) {\n return;\n }\n var len = this.slides.length;\n // Don't do anything if nothing to slide to\n if (len === 0) {\n return;\n }\n // Don't change slide while transitioning, wait until transition is done\n if (this.isSliding) {\n // Schedule slide after sliding complete\n this.$once('sliding-end', function () {\n return _this2.setSlide(slide);\n });\n return;\n }\n // Make sure we have an integer (you never know!)\n slide = Math.floor(slide);\n // Set new slide index. Wrap around if necessary\n this.index = slide >= len ? 0 : slide >= 0 ? slide : len - 1;\n },\n\n // Previous slide\n prev: function prev() {\n this.direction = 'prev';\n this.setSlide(this.index - 1);\n },\n\n // Next slide\n next: function next() {\n this.direction = 'next';\n this.setSlide(this.index + 1);\n },\n\n // Pause auto rotation\n pause: function pause() {\n if (this.isCycling) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n if (this.slides[this.index]) {\n // Make current slide focusable for screen readers\n this.slides[this.index].tabIndex = 0;\n }\n }\n },\n\n // Start auto rotate slides\n start: function start() {\n var _this3 = this;\n\n // Don't start if no interval, or if we are already running\n if (!this.interval || this.isCycling) {\n return;\n }\n this.slides.forEach(function (slide) {\n slide.tabIndex = -1;\n });\n this.intervalId = setInterval(function () {\n _this3.next();\n }, Math.max(1000, this.interval));\n },\n\n // Re-Start auto rotate slides when focus/hover leaves the carousel\n restart: function restart(evt) {\n if (!this.$el.contains(document.activeElement)) {\n this.start();\n }\n },\n\n // Update slide list\n updateSlides: function updateSlides() {\n this.pause();\n // Get all slides as DOM elements\n this.slides = selectAll('.carousel-item', this.$refs.inner);\n var numSlides = this.slides.length;\n // Keep slide number in range\n var index = Math.max(0, Math.min(Math.floor(this.index), numSlides - 1));\n this.slides.forEach(function (slide, idx) {\n var n = idx + 1;\n if (idx === index) {\n addClass(slide, 'active');\n } else {\n removeClass(slide, 'active');\n }\n setAttr(slide, 'aria-current', idx === index ? 'true' : 'false');\n setAttr(slide, 'aria-posinset', String(n));\n setAttr(slide, 'aria-setsize', String(numSlides));\n slide.tabIndex = -1;\n });\n // Set slide as active\n this.setSlide(index);\n this.start();\n },\n calcDirection: function calcDirection() {\n var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n var curIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var nextIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n if (!direction) {\n return nextIndex > curIndex ? DIRECTION.next : DIRECTION.prev;\n }\n return DIRECTION[direction];\n }\n },\n watch: {\n value: function value(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.setSlide(newVal);\n }\n },\n interval: function interval(newVal, oldVal) {\n if (newVal === oldVal) {\n return;\n }\n if (!newVal) {\n // Pausing slide show\n this.pause();\n } else {\n // Restarting or Changing interval\n this.pause();\n this.start();\n }\n },\n index: function index(val, oldVal) {\n var _this4 = this;\n\n if (val === oldVal || this.isSliding) {\n return;\n }\n // Determine sliding direction\n var direction = this.calcDirection(this.direction, oldVal, val);\n // Determine current and next slides\n var currentSlide = this.slides[oldVal];\n var nextSlide = this.slides[val];\n // Don't do anything if there aren't any slides to slide to\n if (!currentSlide || !nextSlide) {\n return;\n }\n // Start animating\n this.isSliding = true;\n this.$emit('sliding-start', val);\n // Update v-model\n this.$emit('input', this.index);\n nextSlide.classList.add(direction.overlayClass);\n // Trigger a reflow of next slide\n reflow(nextSlide);\n addClass(currentSlide, direction.dirClass);\n addClass(nextSlide, direction.dirClass);\n // Transition End handler\n var called = false;\n /* istanbul ignore next: dificult to test */\n var onceTransEnd = function onceTransEnd(evt) {\n if (called) {\n return;\n }\n called = true;\n if (_this4.transitionEndEvent) {\n var events = _this4.transitionEndEvent.split(/\\s+/);\n events.forEach(function (event) {\n eventOff(currentSlide, event, onceTransEnd);\n });\n }\n _this4._animationTimeout = null;\n removeClass(nextSlide, direction.dirClass);\n removeClass(nextSlide, direction.overlayClass);\n addClass(nextSlide, 'active');\n removeClass(currentSlide, 'active');\n removeClass(currentSlide, direction.dirClass);\n removeClass(currentSlide, direction.overlayClass);\n setAttr(currentSlide, 'aria-current', 'false');\n setAttr(nextSlide, 'aria-current', 'true');\n setAttr(currentSlide, 'aria-hidden', 'true');\n setAttr(nextSlide, 'aria-hidden', 'false');\n currentSlide.tabIndex = -1;\n nextSlide.tabIndex = -1;\n if (!_this4.isCycling) {\n // Focus the next slide for screen readers if not in play mode\n nextSlide.tabIndex = 0;\n _this4.$nextTick(function () {\n nextSlide.focus();\n });\n }\n _this4.isSliding = false;\n _this4.direction = null;\n // Notify ourselves that we're done sliding (slid)\n _this4.$nextTick(function () {\n return _this4.$emit('sliding-end', val);\n });\n };\n // Clear transition classes after transition ends\n if (this.transitionEndEvent) {\n var events = this.transitionEndEvent.split(/\\s+/);\n events.forEach(function (event) {\n eventOn(currentSlide, event, onceTransEnd);\n });\n }\n // Fallback to setTimeout\n this._animationTimeout = setTimeout(onceTransEnd, TRANS_DURATION);\n }\n },\n created: function created() {\n // Create private non-reactive props\n this._animationTimeout = null;\n },\n mounted: function mounted() {\n // Cache current browser transitionend event name\n this.transitionEndEvent = getTransisionEndEvent(this.$el) || null;\n // Get all slides\n this.updateSlides();\n // Observe child changes so we can update slide list\n observeDom(this.$refs.inner, this.updateSlides.bind(this), {\n subtree: false,\n childList: true,\n attributes: true,\n attributeFilter: ['id']\n });\n },\n\n /* istanbul ignore next: dificult to test */\n beforeDestroy: function beforeDestroy() {\n clearInterval(this.intervalId);\n clearTimeout(this._animationTimeout);\n this.intervalId = null;\n this._animationTimeout = null;\n }\n};","import { assign } from './object';\nimport { isElement } from '../utils/dom';\n\n/**\n * Observe a DOM element changes, falls back to eventListener mode\n * @param {Element} el The DOM element to observe\n * @param {Function} callback callback to be called on change\n * @param {object} [opts={childList: true, subtree: true}] observe options\n * @see http://stackoverflow.com/questions/3219758\n */\nexport default function observeDOM(el, callback, opts) {\n var MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n var eventListenerSupported = window.addEventListener;\n\n // Handle case where we might be passed a vue instance\n el = el ? el.$el || el : null;\n /* istanbul ignore next: dificult to test in JSDOM */\n if (!isElement(el)) {\n // We can't observe somthing that isn't an element\n return null;\n }\n\n var obs = null;\n\n /* istanbul ignore next: dificult to test in JSDOM */\n if (MutationObserver) {\n // Define a new observer\n obs = new MutationObserver(function (mutations) {\n var changed = false;\n // A Mutation can contain several change records, so we loop through them to see what has changed.\n // We break out of the loop early if any \"significant\" change has been detected\n for (var i = 0; i < mutations.length && !changed; i++) {\n // The muttion record\n var mutation = mutations[i];\n // Mutation Type\n var type = mutation.type;\n // DOM Node (could be any DOM Node type - HTMLElement, Text, comment, etc)\n var target = mutation.target;\n if (type === 'characterData' && target.nodeType === Node.TEXT_NODE) {\n // We ignore nodes that are not TEXt (i.e. comments, etc) as they don't change layout\n changed = true;\n } else if (type === 'attributes') {\n changed = true;\n } else if (type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0)) {\n // This includes HTMLElement and Text Nodes being added/removed/re-arranged\n changed = true;\n }\n }\n if (changed) {\n // We only call the callback if a change that could affect layout/size truely happened.\n callback();\n }\n });\n\n // Have the observer observe foo for changes in children, etc\n obs.observe(el, assign({ childList: true, subtree: true }, opts));\n } else if (eventListenerSupported) {\n // Legacy interface. most likely not used in modern browsers\n el.addEventListener('DOMNodeInserted', callback, false);\n el.addEventListener('DOMNodeRemoved', callback, false);\n }\n\n // We return a reference to the observer so that obs.disconnect() can be called if necessary\n // To reduce overhead when the root element is hiiden\n return obs;\n}","/*\n * SSR Safe Client Side ID attribute generation\n *\n */\n\nexport default {\n props: {\n id: {\n type: String,\n default: null\n }\n },\n methods: {\n safeId: function safeId() {\n var suffix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n var id = this.id || this.localId_ || null;\n if (!id) {\n return null;\n }\n suffix = String(suffix).replace(/\\s+/g, '_');\n return suffix ? id + '_' + suffix : id;\n }\n },\n computed: {\n localId_: function localId_() {\n if (!this.$isServer && !this.id && typeof this._uid !== 'undefined') {\n return '__BVID__' + this._uid;\n }\n }\n }\n};","import bImg from '../image/img';\nimport warn from '../../utils/warn';\nimport idMixin from '../../mixins/id';\n\nexport default {\n components: { bImg: bImg },\n mixins: [idMixin],\n render: function render(h) {\n var $slots = this.$slots;\n\n var img = $slots.img;\n if (!img && (this.imgSrc || this.imgBlank)) {\n img = h('b-img', {\n props: {\n fluidGrow: true,\n block: true,\n src: this.imgSrc,\n blank: this.imgBlank,\n blankColor: this.imgBlankColor,\n width: this.computedWidth,\n height: this.computedHeight,\n alt: this.imgAlt\n }\n });\n }\n\n var content = h(this.contentTag, { class: this.contentClasses }, [this.caption ? h(this.captionTag, { domProps: { innerHTML: this.caption } }) : h(false), this.text ? h(this.textTag, { domProps: { innerHTML: this.text } }) : h(false), $slots.default]);\n\n return h('div', {\n class: ['carousel-item'],\n style: { background: this.background },\n attrs: { id: this.safeId(), role: 'listitem' }\n }, [img, content]);\n },\n\n props: {\n imgSrc: {\n type: String,\n default: function _default() {\n if (this && this.src) {\n // Deprecate src\n warn(\"b-carousel-slide: prop 'src' has been deprecated. Use 'img-src' instead\");\n return this.src;\n }\n return null;\n }\n },\n src: {\n // Deprecated: use img-src instead\n type: String\n },\n imgAlt: {\n type: String\n },\n imgWidth: {\n type: [Number, String]\n },\n imgHeight: {\n type: [Number, String]\n },\n imgBlank: {\n type: Boolean,\n default: false\n },\n imgBlankColor: {\n type: String,\n default: 'transparent'\n },\n contentVisibleUp: {\n type: String\n },\n contentTag: {\n type: String,\n default: 'div'\n },\n caption: {\n type: String\n },\n captionTag: {\n type: String,\n default: 'h3'\n },\n text: {\n type: String\n },\n textTag: {\n type: String,\n default: 'p'\n },\n background: {\n type: String\n }\n },\n computed: {\n contentClasses: function contentClasses() {\n return ['carousel-caption', this.contentVisibleUp ? 'd-none' : '', this.contentVisibleUp ? 'd-' + this.contentVisibleUp + '-block' : ''];\n },\n computedWidth: function computedWidth() {\n // Use local width, or try parent width\n return this.imgWidth || this.$parent.imgWidth;\n },\n computedHeight: function computedHeight() {\n // Use local height, or try parent height\n return this.imgHeight || this.$parent.imgHeight;\n }\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\n// Blank image with fill template\nvar BLANK_TEMPLATE = '<svg width=\"%{w}\" height=\"%{h}\" ' + 'xmlns=\"http://www.w3.org/2000/svg\" ' + 'viewBox=\"0 0 %{w} %{h}\" preserveAspectRatio=\"none\">' + '<rect width=\"100%\" height=\"100%\" style=\"fill:%{f};\"></rect>' + '</svg>';\n\nfunction makeBlankImgSrc(width, height, color) {\n var src = encodeURIComponent(BLANK_TEMPLATE.replace('%{w}', String(width)).replace('%{h}', String(height)).replace('%{f}', color));\n return 'data:image/svg+xml;charset=UTF-8,' + src;\n}\n\nexport var props = {\n src: {\n type: String,\n default: null\n },\n alt: {\n type: String,\n default: null\n },\n width: {\n type: [Number, String],\n default: null\n },\n height: {\n type: [Number, String],\n default: null\n },\n block: {\n type: Boolean,\n default: false\n },\n fluid: {\n type: Boolean,\n default: false\n },\n fluidGrow: {\n // Gives fluid images class `w-100` to make them grow to fit container\n type: Boolean,\n default: false\n },\n rounded: {\n // rounded can be:\n // false: no rounding of corners\n // true: slightly rounded corners\n // 'top': top corners rounded\n // 'right': right corners rounded\n // 'bottom': bottom corners rounded\n // 'left': left corners rounded\n // 'circle': circle/oval\n // '0': force rounding off\n type: [Boolean, String],\n default: false\n },\n thumbnail: {\n type: Boolean,\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n center: {\n type: Boolean,\n default: false\n },\n blank: {\n type: Boolean,\n default: false\n },\n blankColor: {\n type: String,\n default: 'transparent'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data;\n\n var src = props.src;\n var width = parseInt(props.width, 10) ? parseInt(props.width, 10) : null;\n var height = parseInt(props.height, 10) ? parseInt(props.height, 10) : null;\n var align = null;\n var block = props.block;\n if (props.blank) {\n if (!height && Boolean(width)) {\n height = width;\n } else if (!width && Boolean(height)) {\n width = height;\n }\n if (!width && !height) {\n width = 1;\n height = 1;\n }\n // Make a blank SVG image\n src = makeBlankImgSrc(width, height, props.blankColor || 'transparent');\n }\n if (props.left) {\n align = 'float-left';\n } else if (props.right) {\n align = 'float-right';\n } else if (props.center) {\n align = 'mx-auto';\n block = true;\n }\n return h('img', mergeData(data, {\n attrs: {\n 'src': src,\n 'alt': props.alt,\n 'width': width ? String(width) : null,\n 'height': height ? String(height) : null\n },\n class: (_class = {\n 'img-thumbnail': props.thumbnail,\n 'img-fluid': props.fluid || props.fluidGrow,\n 'w-100': props.fluidGrow,\n 'rounded': props.rounded === '' || props.rounded === true\n }, _defineProperty(_class, 'rounded-' + props.rounded, typeof props.rounded === 'string' && props.rounded !== ''), _defineProperty(_class, align, Boolean(align)), _defineProperty(_class, 'd-block', block), _class)\n }));\n }\n};","/**\n * Log a warning message to the console with bootstrap-vue formatting sugar.\n * @param {string} message\n */\n/* istanbul ignore next */\nfunction warn(message) {\n console.warn(\"[Bootstrap-Vue warn]: \" + message);\n}\n\nexport default warn;","import bContainer from './container';\nimport bRow from './row';\nimport bCol from './col';\nimport bFormRow from './form-row';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bContainer: bContainer,\n bRow: bRow,\n bCol: bCol,\n bFormRow: bFormRow\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n fluid: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n class: {\n 'container': !props.fluid,\n 'container-fluid': props.fluid\n }\n }), children);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport { arrayIncludes } from '../../utils/array';\n\nvar COMMON_ALIGNMENT = ['start', 'end', 'center'];\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n noGutters: {\n type: Boolean,\n default: false\n },\n alignV: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(COMMON_ALIGNMENT.concat(['baseline', 'stretch']), str);\n }\n },\n alignH: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around']), str);\n }\n },\n alignContent: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(COMMON_ALIGNMENT.concat(['between', 'around', 'stretch']), str);\n }\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'row',\n class: (_class = {\n 'no-gutters': props.noGutters\n }, _defineProperty(_class, 'align-items-' + props.alignV, props.alignV), _defineProperty(_class, 'justify-content-' + props.alignH, props.alignH), _defineProperty(_class, 'align-content-' + props.alignContent, props.alignContent), _class)\n }), children);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport memoize from '../../utils/memoize';\nimport suffixPropName from '../../utils/suffix-prop-name';\nimport { keys, assign, create } from '../../utils/object';\nimport { arrayIncludes } from '../../utils/array';\n\n/**\n * Generates a prop object with a type of\n * [Boolean, String, Number]\n */\nfunction boolStrNum() {\n return {\n type: [Boolean, String, Number],\n default: false\n };\n}\n\n/**\n * Generates a prop object with a type of\n * [String, Number]\n */\nfunction strNum() {\n return {\n type: [String, Number],\n default: null\n };\n}\n\nexport var computeBkPtClass = memoize(function computeBkPt(type, breakpoint, val) {\n var className = type;\n if (val === false || val === null || val === undefined) {\n return undefined;\n }\n if (breakpoint) {\n className += '-' + breakpoint;\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <b-col sm /> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .col-md\n return className.toLowerCase();\n }\n // .order-md-6\n className += '-' + val;\n return className.toLowerCase();\n});\n\nvar BREAKPOINTS = ['sm', 'md', 'lg', 'xl'];\n// Supports classes like: .col-sm, .col-md-6, .col-lg-auto\nvar breakpointCol = BREAKPOINTS.reduce(\n// eslint-disable-next-line no-sequences\nfunction (propMap, breakpoint) {\n return propMap[breakpoint] = boolStrNum(), propMap;\n}, create(null));\n// Supports classes like: .offset-md-1, .offset-lg-12\nvar breakpointOffset = BREAKPOINTS.reduce(\n// eslint-disable-next-line no-sequences\nfunction (propMap, breakpoint) {\n return propMap[suffixPropName(breakpoint, 'offset')] = strNum(), propMap;\n}, create(null));\n// Supports classes like: .order-md-1, .order-lg-12\nvar breakpointOrder = BREAKPOINTS.reduce(\n// eslint-disable-next-line no-sequences\nfunction (propMap, breakpoint) {\n return propMap[suffixPropName(breakpoint, 'order')] = strNum(), propMap;\n}, create(null));\n\n// For loop doesn't need to check hasOwnProperty\n// when using an object created from null\nvar breakpointPropMap = assign(create(null), {\n col: keys(breakpointCol),\n offset: keys(breakpointOffset),\n order: keys(breakpointOrder)\n});\n\nexport var props = assign({}, breakpointCol, breakpointOffset, breakpointOrder, {\n tag: {\n type: String,\n default: 'div'\n },\n // Generic flexbox .col\n col: {\n type: Boolean,\n default: false\n },\n // .col-[1-12]|auto\n cols: strNum(),\n // .offset-[1-12]\n offset: strNum(),\n // Flex ordering utility .order-[1-12]\n order: strNum(),\n alignSelf: {\n type: String,\n default: null,\n validator: function validator(str) {\n return arrayIncludes(['auto', 'start', 'end', 'center', 'baseline', 'stretch'], str);\n }\n }\n});\n\n/**\n * We need \".col\" to default in when no other props are passed,\n * but always render when col=true.\n */\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _classList$push;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var classList = [];\n // Loop through `col`, `offset`, `order` breakpoint props\n for (var type in breakpointPropMap) {\n // Returns colSm, offset, offsetSm, orderMd, etc.\n var _keys = breakpointPropMap[type];\n for (var i = 0; i < _keys.length; i++) {\n // computeBkPt(col, colSm => Sm, value=[String, Number, Boolean])\n var c = computeBkPtClass(type, _keys[i].replace(type, ''), props[_keys[i]]);\n // If a class is returned, push it onto the array.\n if (c) {\n classList.push(c);\n }\n }\n }\n\n classList.push((_classList$push = {\n // Default to .col if no other classes generated nor `cols` specified.\n col: props.col || classList.length === 0 && !props.cols\n }, _defineProperty(_classList$push, 'col-' + props.cols, props.cols), _defineProperty(_classList$push, 'offset-' + props.offset, props.offset), _defineProperty(_classList$push, 'order-' + props.order, props.order), _defineProperty(_classList$push, 'align-self-' + props.alignSelf, props.alignSelf), _classList$push));\n\n return h(props.tag, mergeData(data, { class: classList }), children);\n }\n};","import { create } from './object';\n\nexport default function memoize(fn) {\n var cache = create(null);\n\n return function memoizedFn() {\n var args = JSON.stringify(arguments);\n return cache[args] = cache[args] || fn.apply(null, arguments);\n };\n}","import upperFirst from './upper-first';\n\n/**\n * Suffix can be a falsey value so nothing is appended to string.\n * (helps when looping over props & some shouldn't change)\n * Use data last parameters to allow for currying.\n * @param {string} suffix\n * @param {string} str\n */\nexport default function suffixPropName(suffix, str) {\n return str + (suffix ? upperFirst(suffix) : '');\n}","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'form-row'\n }), children);\n }\n};","import bCollapse from './collapse';\nimport togglePlugin from '../../directives/toggle';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bCollapse: bCollapse\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n Vue.use(togglePlugin);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import listenOnRootMixin from '../../mixins/listen-on-root';\nimport { hasClass, reflow } from '../../utils/dom';\n\n// Events we emit on $root\nvar EVENT_STATE = 'bv::collapse::state';\nvar EVENT_ACCORDION = 'bv::collapse::accordion';\n// Events we listen to on $root\nvar EVENT_TOGGLE = 'bv::toggle::collapse';\n\nexport default {\n mixins: [listenOnRootMixin],\n render: function render(h) {\n var content = h(this.tag, {\n class: this.classObject,\n directives: [{ name: 'show', value: this.show }],\n attrs: { id: this.id || null },\n on: { click: this.clickHandler }\n }, [this.$slots.default]);\n return h('transition', {\n props: {\n enterClass: '',\n enterActiveClass: 'collapsing',\n enterToClass: '',\n leaveClass: '',\n leaveActiveClass: 'collapsing',\n leaveToClass: ''\n },\n on: {\n enter: this.onEnter,\n afterEnter: this.onAfterEnter,\n leave: this.onLeave,\n afterLeave: this.onAfterLeave\n }\n }, [content]);\n },\n data: function data() {\n return {\n show: this.visible,\n transitioning: false\n };\n },\n\n model: {\n prop: 'visible',\n event: 'input'\n },\n props: {\n id: {\n type: String,\n required: true\n },\n isNav: {\n type: Boolean,\n default: false\n },\n accordion: {\n type: String,\n default: null\n },\n visible: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n }\n },\n watch: {\n visible: function visible(newVal) {\n if (newVal !== this.show) {\n this.show = newVal;\n }\n },\n show: function show(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.emitState();\n }\n }\n },\n computed: {\n classObject: function classObject() {\n return {\n 'navbar-collapse': this.isNav,\n 'collapse': !this.transitioning,\n 'show': this.show && !this.transitioning\n };\n }\n },\n methods: {\n toggle: function toggle() {\n this.show = !this.show;\n },\n onEnter: function onEnter(el) {\n el.style.height = 0;\n reflow(el);\n el.style.height = el.scrollHeight + 'px';\n this.transitioning = true;\n // This should be moved out so we can add cancellable events\n this.$emit('show');\n },\n onAfterEnter: function onAfterEnter(el) {\n el.style.height = null;\n this.transitioning = false;\n this.$emit('shown');\n },\n onLeave: function onLeave(el) {\n el.style.height = 'auto';\n el.style.display = 'block';\n el.style.height = el.getBoundingClientRect().height + 'px';\n reflow(el);\n this.transitioning = true;\n el.style.height = 0;\n // This should be moved out so we can add cancellable events\n this.$emit('hide');\n },\n onAfterLeave: function onAfterLeave(el) {\n el.style.height = null;\n this.transitioning = false;\n this.$emit('hidden');\n },\n emitState: function emitState() {\n this.$emit('input', this.show);\n // Let v-b-toggle know the state of this collapse\n this.$root.$emit(EVENT_STATE, this.id, this.show);\n if (this.accordion && this.show) {\n // Tell the other collapses in this accordion to close\n this.$root.$emit(EVENT_ACCORDION, this.id, this.accordion);\n }\n },\n clickHandler: function clickHandler(evt) {\n // If we are in a nav/navbar, close the collapse when non-disabled link clicked\n var el = evt.target;\n if (!this.isNav || !el || getComputedStyle(this.$el).display !== 'block') {\n return;\n }\n if (hasClass(el, 'nav-link') || hasClass(el, 'dropdown-item')) {\n this.show = false;\n }\n },\n handleToggleEvt: function handleToggleEvt(target) {\n if (target !== this.id) {\n return;\n }\n this.toggle();\n },\n handleAccordionEvt: function handleAccordionEvt(openedId, accordion) {\n if (!this.accordion || accordion !== this.accordion) {\n return;\n }\n if (openedId === this.id) {\n // Open this collapse if not shown\n if (!this.show) {\n this.toggle();\n }\n } else {\n // Close this collapse if shown\n if (this.show) {\n this.toggle();\n }\n }\n },\n handleResize: function handleResize() {\n // Handler for orientation/resize to set collapsed state in nav/navbar\n this.show = getComputedStyle(this.$el).display === 'block';\n }\n },\n created: function created() {\n // Listen for toggle events to open/close us\n this.listenOnRoot(EVENT_TOGGLE, this.handleToggleEvt);\n // Listen to otehr collapses for accordion events\n this.listenOnRoot(EVENT_ACCORDION, this.handleAccordionEvt);\n },\n mounted: function mounted() {\n if (this.isNav && typeof document !== 'undefined') {\n // Set up handlers\n window.addEventListener('resize', this.handleResize, false);\n window.addEventListener('orientationchange', this.handleResize, false);\n this.handleResize();\n }\n this.emitState();\n },\n beforeDestroy: function beforeDestroy() {\n if (this.isNav && typeof document !== 'undefined') {\n window.removeEventListener('resize', this.handleResize, false);\n window.removeEventListener('orientationchange', this.handleResize, false);\n }\n }\n};","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); } }\n\nimport { isArray } from '../utils/array';\n/**\n * Issue #569: collapse::toggle::state triggered too many times\n * @link https://github.com/bootstrap-vue/bootstrap-vue/issues/569\n */\n\nvar BVRL = '__BV_root_listeners__';\n\nexport default {\n methods: {\n /**\n * Safely register event listeners on the root Vue node.\n * While Vue automatically removes listeners for individual components,\n * when a component registers a listener on root and is destroyed,\n * this orphans a callback because the node is gone,\n * but the root does not clear the callback.\n *\n * This adds a non-reactive prop to a vm on the fly\n * in order to avoid object observation and its performance costs\n * to something that needs no reactivity.\n * It should be highly unlikely there are any naming collisions.\n * @param {string} event\n * @param {function} callback\n * @chainable\n */\n listenOnRoot: function listenOnRoot(event, callback) {\n if (!this[BVRL] || !isArray(this[BVRL])) {\n this[BVRL] = [];\n }\n this[BVRL].push({ event: event, callback: callback });\n this.$root.$on(event, callback);\n return this;\n },\n\n\n /**\n * Convenience method for calling vm.$emit on vm.$root.\n * @param {string} event\n * @param {*} args\n * @chainable\n */\n emitOnRoot: function emitOnRoot(event) {\n var _$root;\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n (_$root = this.$root).$emit.apply(_$root, [event].concat(_toConsumableArray(args)));\n return this;\n }\n },\n\n beforeDestroy: function beforeDestroy() {\n if (this[BVRL] && isArray(this[BVRL])) {\n while (this[BVRL].length > 0) {\n // shift to process in order\n var _BVRL$shift = this[BVRL].shift(),\n event = _BVRL$shift.event,\n callback = _BVRL$shift.callback;\n\n this.$root.$off(event, callback);\n }\n }\n }\n};","import bToggle from './toggle';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bToggle: bToggle\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import target from '../../utils/target';\nimport { setAttr, addClass, removeClass } from '../../utils/dom';\n\n// Are we client side?\nvar inBrowser = typeof window !== 'undefined';\n\n// target listen types\nvar listenTypes = { click: true\n\n // Property key for handler storage\n};var BVT = '__BV_toggle__';\n\n// Emitted Control Event for collapse (emitted to collapse)\nvar EVENT_TOGGLE = 'bv::toggle::collapse';\n\n// Listen to Event for toggle state update (Emited by collapse)\nvar EVENT_STATE = 'bv::collapse::state';\n\nexport default {\n bind: function bind(el, binding, vnode) {\n var targets = target(vnode, binding, listenTypes, function (_ref) {\n var targets = _ref.targets,\n vnode = _ref.vnode;\n\n targets.forEach(function (target) {\n vnode.context.$root.$emit(EVENT_TOGGLE, target);\n });\n });\n\n if (inBrowser && vnode.context && targets.length > 0) {\n // Add aria attributes to element\n setAttr(el, 'aria-controls', targets.join(' '));\n setAttr(el, 'aria-expanded', 'false');\n if (el.tagName !== 'BUTTON') {\n // If element is not a button, we add `role=\"button\"` for accessibility\n setAttr(el, 'role', 'button');\n }\n\n // Toggle state hadnler, stored on element\n el[BVT] = function toggleDirectiveHandler(id, state) {\n if (targets.indexOf(id) !== -1) {\n // Set aria-expanded state\n setAttr(el, 'aria-expanded', state ? 'true' : 'false');\n // Set/Clear 'collapsed' class state\n if (state) {\n removeClass(el, 'collapsed');\n } else {\n addClass(el, 'collapsed');\n }\n }\n };\n\n // Listen for toggle state changes\n vnode.context.$root.$on(EVENT_STATE, el[BVT]);\n }\n },\n unbind: function unbind(el, binding, vnode) {\n if (el[BVT]) {\n // Remove our $root listener\n vnode.context.$root.$off(EVENT_STATE, el[BVT]);\n el[BVT] = null;\n }\n }\n};","import { keys } from '../utils/object';\n\nvar allListenTypes = { hover: true, click: true, focus: true };\n\nvar BVBoundListeners = '__BV_boundEventListeners__';\n\nvar bindTargets = function bindTargets(vnode, binding, listenTypes, fn) {\n var targets = keys(binding.modifiers || {}).filter(function (t) {\n return !allListenTypes[t];\n });\n\n if (binding.value) {\n targets.push(binding.value);\n }\n\n var listener = function listener() {\n fn({ targets: targets, vnode: vnode });\n };\n\n keys(allListenTypes).forEach(function (type) {\n if (listenTypes[type] || binding.modifiers[type]) {\n vnode.elm.addEventListener(type, listener);\n var boundListeners = vnode.elm[BVBoundListeners] || {};\n boundListeners[type] = boundListeners[type] || [];\n boundListeners[type].push(listener);\n vnode.elm[BVBoundListeners] = boundListeners;\n }\n });\n\n // Return the list of targets\n return targets;\n};\n\nvar unbindTargets = function unbindTargets(vnode, binding, listenTypes) {\n keys(allListenTypes).forEach(function (type) {\n if (listenTypes[type] || binding.modifiers[type]) {\n var boundListeners = vnode.elm[BVBoundListeners] && vnode.elm[BVBoundListeners][type];\n if (boundListeners) {\n boundListeners.forEach(function (listener) {\n return vnode.elm.removeEventListener(type, listener);\n });\n delete vnode.elm[BVBoundListeners][type];\n }\n }\n });\n};\n\nexport { bindTargets, unbindTargets };\n\nexport default bindTargets;","import bDropdown from './dropdown';\nimport bDropdownItem from './dropdown-item';\nimport bDropdownItemButton from './dropdown-item-button';\nimport bDropdownHeader from './dropdown-header';\nimport bDropdownDivider from './dropdown-divider';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bDropdown: bDropdown,\n bDd: bDropdown,\n bDropdownItem: bDropdownItem,\n bDdItem: bDropdownItem,\n bDropdownItemButton: bDropdownItemButton,\n bDropdownItemBtn: bDropdownItemButton,\n bDdItemButton: bDropdownItemButton,\n bDdItemBtn: bDropdownItemButton,\n bDropdownHeader: bDropdownHeader,\n bDdHeader: bDropdownHeader,\n bDropdownDivider: bDropdownDivider,\n bDdDivider: bDropdownDivider\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport dropdownMixin from '../../mixins/dropdown';\nimport bButton from '../button/button';\n\nimport './dropdown.css';\n\nexport default {\n mixins: [idMixin, dropdownMixin],\n components: { bButton: bButton },\n render: function render(h) {\n var split = h(false);\n if (this.split) {\n split = h('b-button', {\n ref: 'button',\n props: {\n disabled: this.disabled,\n variant: this.variant,\n size: this.size\n },\n attrs: {\n id: this.safeId('_BV_button_')\n },\n on: {\n click: this.click\n }\n }, [this.$slots['button-content'] || this.$slots.text || this.text]);\n }\n var toggle = h('b-button', {\n ref: 'toggle',\n class: this.toggleClasses,\n props: {\n variant: this.variant,\n size: this.size,\n disabled: this.disabled\n },\n attrs: {\n id: this.safeId('_BV_toggle_'),\n 'aria-haspopup': 'true',\n 'aria-expanded': this.visible ? 'true' : 'false'\n },\n on: {\n click: this.toggle, // click\n keydown: this.toggle // enter, space, down\n }\n }, [this.split ? h('span', { class: ['sr-only'] }, [this.toggleText]) : this.$slots['button-content'] || this.$slots.text || this.text]);\n var menu = h('div', {\n ref: 'menu',\n class: this.menuClasses,\n attrs: {\n role: this.role,\n 'aria-labelledby': this.safeId(this.split ? '_BV_button_' : '_BV_toggle_')\n },\n on: {\n mouseover: this.onMouseOver,\n keydown: this.onKeydown // tab, up, down, esc\n }\n }, [this.$slots.default]);\n return h('div', { attrs: { id: this.safeId() }, class: this.dropdownClasses }, [split, toggle, menu]);\n },\n\n props: {\n split: {\n type: Boolean,\n default: false\n },\n toggleText: {\n type: String,\n default: 'Toggle Dropdown'\n },\n size: {\n type: String,\n default: null\n },\n variant: {\n type: String,\n default: null\n },\n menuClass: {\n type: [String, Array],\n default: null\n },\n toggleClass: {\n type: [String, Array],\n default: null\n },\n noCaret: {\n type: Boolean,\n default: false\n },\n role: {\n type: String,\n default: 'menu'\n },\n boundary: {\n // String: `scrollParent`, `window` or `viewport`\n // Object: HTML Element reference\n type: [String, Object],\n default: 'scrollParent'\n }\n },\n computed: {\n dropdownClasses: function dropdownClasses() {\n var position = '';\n // Position `static` is needed to allow menu to \"breakout\" of the scrollParent boundaries\n // when boundary is anything other than `scrollParent`\n // See https://github.com/twbs/bootstrap/issues/24251#issuecomment-341413786\n if (this.boundary !== 'scrollParent' || !this.boundary) {\n position = 'position-static';\n }\n return ['btn-group', 'b-dropdown', 'dropdown', this.dropup ? 'dropup' : '', this.visible ? 'show' : '', position];\n },\n menuClasses: function menuClasses() {\n return ['dropdown-menu', {\n 'dropdown-menu-right': this.right,\n 'show': this.visible\n }, this.menuClass];\n },\n toggleClasses: function toggleClasses() {\n return [{\n 'dropdown-toggle': !this.noCaret || this.split,\n 'dropdown-toggle-split': this.split\n }, this.toggleClass];\n }\n }\n};","import Popper from 'popper.js';\nimport clickoutMixin from './clickout';\nimport listenOnRootMixin from './listen-on-root';\nimport { from as arrayFrom } from '../utils/array';\nimport { assign } from '../utils/object';\nimport KeyCodes from '../utils/key-codes';\nimport warn from '../utils/warn';\nimport { isVisible, closest, selectAll, getAttr, eventOn, eventOff } from '../utils/dom';\n\n// Return an Array of visible items\nfunction filterVisible(els) {\n return (els || []).filter(isVisible);\n}\n\n// Dropdown item CSS selectors\n// TODO: .dropdown-form handling\nvar ITEM_SELECTOR = '.dropdown-item:not(.disabled):not([disabled])';\n\n// Popper attachment positions\nvar AttachmentMap = {\n // DropUp Left Align\n TOP: 'top-start',\n // DropUp Right Align\n TOPEND: 'top-end',\n // Dropdown left Align\n BOTTOM: 'bottom-start',\n // Dropdown Right Align\n BOTTOMEND: 'bottom-end'\n};\n\nexport default {\n mixins: [clickoutMixin, listenOnRootMixin],\n props: {\n disabled: {\n type: Boolean,\n default: false\n },\n text: {\n // Button label\n type: String,\n default: ''\n },\n dropup: {\n // place on top if possible\n type: Boolean,\n default: false\n },\n right: {\n // Right align menu (default is left align)\n type: Boolean,\n default: false\n },\n offset: {\n // Number of pixels to offset menu, or a CSS unit value (i.e. 1px, 1rem, etc)\n type: [Number, String],\n default: 0\n },\n noFlip: {\n // Disable auto-flipping of menu from bottom<=>top\n type: Boolean,\n default: false\n },\n popperOpts: {\n type: Object,\n default: function _default() {}\n }\n },\n data: function data() {\n return {\n visible: false,\n inNavbar: null\n };\n },\n created: function created() {\n // Create non-reactive property\n this._popper = null;\n },\n mounted: function mounted() {\n // To keep one dropdown opened on page\n this.listenOnRoot('bv::dropdown::shown', this.rootCloseListener);\n // Hide when clicked on links\n this.listenOnRoot('clicked::link', this.rootCloseListener);\n // Use new namespaced events\n this.listenOnRoot('bv::link::clicked', this.rootCloseListener);\n },\n\n /* istanbul ignore next: not easy to test */\n deactivated: function deactivated() {\n // In case we are inside a `<keep-alive>`\n this.visible = false;\n this.setTouchStart(false);\n this.removePopper();\n },\n\n /* istanbul ignore next: not easy to test */\n beforeDestroy: function beforeDestroy() {\n this.visible = false;\n this.setTouchStart(false);\n this.removePopper();\n },\n\n watch: {\n visible: function visible(state, old) {\n if (state === old) {\n // Avoid duplicated emits\n return;\n }\n if (state) {\n this.showMenu();\n } else {\n this.hideMenu();\n }\n },\n disabled: function disabled(state, old) {\n if (state !== old && state && this.visible) {\n // Hide dropdown if disabled changes to true\n this.visible = false;\n }\n }\n },\n computed: {\n toggler: function toggler() {\n return this.$refs.toggle.$el || this.$refs.toggle;\n }\n },\n methods: {\n showMenu: function showMenu() {\n if (this.disabled) {\n return;\n }\n // TODO: move emit show to visible watcher, to allow cancelling of show\n this.$emit('show');\n // Ensure other menus are closed\n this.emitOnRoot('bv::dropdown::shown', this);\n\n // Are we in a navbar ?\n if (this.inNavbar === null && this.isNav) {\n this.inNavbar = Boolean(closest('.navbar', this.$el));\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n /* istnbul ignore next: can't test popper in JSDOM */\n if (!this.inNavbar) {\n if (typeof Popper === 'undefined') {\n warn('b-dropdown: Popper.js not found. Falling back to CSS positioning.');\n } else {\n // for dropup with alignment we use the parent element as popper container\n var element = this.dropup && this.right || this.split ? this.$el : this.$refs.toggle;\n // Make sure we have a reference to an element, not a component!\n element = element.$el || element;\n // Instantiate popper.js\n this.createPopper(element);\n }\n }\n\n this.setTouchStart(true);\n this.$emit('shown');\n\n // Focus on the first item on show\n this.$nextTick(this.focusFirstItem);\n },\n hideMenu: function hideMenu() {\n // TODO: move emit hide to visible watcher, to allow cancelling of hide\n this.$emit('hide');\n this.setTouchStart(false);\n this.emitOnRoot('bv::dropdown::hidden', this);\n this.$emit('hidden');\n this.removePopper();\n },\n createPopper: function createPopper(element) {\n this.removePopper();\n this._popper = new Popper(element, this.$refs.menu, this.getPopperConfig());\n },\n removePopper: function removePopper() {\n if (this._popper) {\n // Ensure popper event listeners are removed cleanly\n this._popper.destroy();\n }\n this._popper = null;\n },\n getPopperConfig /* istanbul ignore next: can't test popper in JSDOM */: function getPopperConfig() {\n var placement = AttachmentMap.BOTTOM;\n if (this.dropup && this.right) {\n // dropup + right\n placement = AttachmentMap.TOPEND;\n } else if (this.dropup) {\n // dropup + left\n placement = AttachmentMap.TOP;\n } else if (this.right) {\n // dropdown + right\n placement = AttachmentMap.BOTTOMEND;\n }\n var popperConfig = {\n placement: placement,\n modifiers: {\n offset: {\n offset: this.offset || 0\n },\n flip: {\n enabled: !this.noFlip\n }\n }\n };\n if (this.boundary) {\n popperConfig.modifiers.preventOverflow = {\n boundariesElement: this.boundary\n };\n }\n return assign(popperConfig, this.popperOpts || {});\n },\n setTouchStart: function setTouchStart(on) {\n var _this = this;\n\n /*\n * If this is a touch-enabled device we add extra\n * empty mouseover listeners to the body's immediate children;\n * only needed because of broken event delegation on iOS\n * https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n */\n if ('ontouchstart' in document.documentElement) {\n var children = arrayFrom(document.body.children);\n children.forEach(function (el) {\n if (on) {\n eventOn('mouseover', _this._noop);\n } else {\n eventOff('mouseover', _this._noop);\n }\n });\n }\n },\n\n /* istanbul ignore next: not easy to test */\n _noop: function _noop() {\n // Do nothing event handler (used in touchstart event handler)\n },\n rootCloseListener: function rootCloseListener(vm) {\n if (vm !== this) {\n this.visible = false;\n }\n },\n clickOutListener: function clickOutListener() {\n this.visible = false;\n },\n show: function show() {\n // Public method to show dropdown\n if (this.disabled) {\n return;\n }\n this.visible = true;\n },\n hide: function hide() {\n // Public method to hide dropdown\n if (this.disabled) {\n return;\n }\n this.visible = false;\n },\n toggle: function toggle(evt) {\n // Called only by a button that toggles the menu\n evt = evt || {};\n var type = evt.type;\n var key = evt.keyCode;\n if (type !== 'click' && !(type === 'keydown' && (key === KeyCodes.ENTER || key === KeyCodes.SPACE || key === KeyCodes.DOWN))) {\n // We only toggle on Click, Enter, Space, and Arrow Down\n return;\n }\n evt.preventDefault();\n evt.stopPropagation();\n if (this.disabled) {\n this.visible = false;\n return;\n }\n // Toggle visibility\n this.visible = !this.visible;\n },\n click: function click(evt) {\n // Calle only in split button mode, for the split button\n if (this.disabled) {\n this.visible = false;\n return;\n }\n this.$emit('click', evt);\n },\n\n /* istanbul ignore next: not easy to test */\n onKeydown: function onKeydown(evt) {\n // Called from dropdown menu context\n var key = evt.keyCode;\n if (key === KeyCodes.ESC) {\n // Close on ESC\n this.onEsc(evt);\n } else if (key === KeyCodes.TAB) {\n // Close on tab out\n this.onTab(evt);\n } else if (key === KeyCodes.DOWN) {\n // Down Arrow\n this.focusNext(evt, false);\n } else if (key === KeyCodes.UP) {\n // Up Arrow\n this.focusNext(evt, true);\n }\n },\n\n /* istanbul ignore next: not easy to test */\n onEsc: function onEsc(evt) {\n if (this.visible) {\n this.visible = false;\n evt.preventDefault();\n evt.stopPropagation();\n // Return focus to original trigger button\n this.$nextTick(this.focusToggler);\n }\n },\n\n /* istanbul ignore next: not easy to test */\n onTab: function onTab(evt) {\n if (this.visible) {\n // TODO: Need special handler for dealing with form inputs\n // Tab, if in a text-like input, we should just focus next item in the dropdown\n // Note: Inputs are in a special .dropdown-form container\n this.visible = false;\n }\n },\n onFocusOut: function onFocusOut(evt) {\n if (this.$refs.menu.contains(evt.relatedTarget)) {\n return;\n }\n this.visible = false;\n },\n\n /* istanbul ignore next: not easy to test */\n onMouseOver: function onMouseOver(evt) {\n // Focus the item on hover\n // TODO: Special handling for inputs? Inputs are in a special .dropdown-form container\n var item = evt.target;\n if (item.classList.contains('dropdown-item') && !item.disabled && !item.classList.contains('disabled') && item.focus) {\n item.focus();\n }\n },\n focusNext: function focusNext(evt, up) {\n var _this2 = this;\n\n if (!this.visible) {\n return;\n }\n evt.preventDefault();\n evt.stopPropagation();\n this.$nextTick(function () {\n var items = _this2.getItems();\n if (items.length < 1) {\n return;\n }\n var index = items.indexOf(evt.target);\n if (up && index > 0) {\n index--;\n } else if (!up && index < items.length - 1) {\n index++;\n }\n if (index < 0) {\n index = 0;\n }\n _this2.focusItem(index, items);\n });\n },\n focusItem: function focusItem(idx, items) {\n var el = items.find(function (el, i) {\n return i === idx;\n });\n if (el && getAttr(el, 'tabindex') !== '-1') {\n el.focus();\n }\n },\n getItems: function getItems() {\n // Get all items\n return filterVisible(selectAll(ITEM_SELECTOR, this.$refs.menu));\n },\n getFirstItem: function getFirstItem() {\n // Get the first non-disabled item\n var item = this.getItems()[0];\n return item || null;\n },\n focusFirstItem: function focusFirstItem() {\n var item = this.getFirstItem();\n if (item) {\n this.focusItem(0, [item]);\n }\n },\n focusToggler: function focusToggler() {\n var toggler = this.toggler;\n if (toggler && toggler.focus) {\n toggler.focus();\n }\n }\n }\n};","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.14.3\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nvar longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nvar timeoutDuration = 0;\nfor (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var css = getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? html['offset' + axis] + computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')] + computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')] : 0);\n}\n\nfunction getWindowSizes() {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes() : {};\n var width = sizes.width || element.clientWidth || result.right - result.left;\n var height = sizes.height || element.clientHeight || result.bottom - result.top;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && parent.nodeName === 'HTML') {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop, 10);\n var marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n boundaries.left += padding;\n boundaries.top += padding;\n boundaries.right -= padding;\n boundaries.bottom -= padding;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var styles = getComputedStyle(element);\n var x = parseFloat(styles.marginTop) + parseFloat(styles.marginBottom);\n var y = parseFloat(styles.marginLeft) + parseFloat(styles.marginRight);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroy the popper\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger onUpdate callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n // Avoid blurry text by using full pixel integers.\n // For pixel-perfect positioning, top/bottom prefers rounded\n // values, while left/right prefers floored values.\n var offsets = {\n left: Math.floor(popper.left),\n top: Math.round(popper.top),\n bottom: Math.round(popper.bottom),\n right: Math.floor(popper.right)\n };\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n top = -offsetParentRect.height + offsets.bottom;\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n left = -offsetParentRect.width + offsets.right;\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjuction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.<br />\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-right` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var flippedVariation = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unitless, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the height.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > More on this [reading this issue](https://github.com/FezVrasta/popper.js/issues/373)\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * An scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper this makes sure the popper has always a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier, can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near eachothers\n * without leaving any gap between the two. Expecially useful when the arrow is\n * enabled and you want to assure it to point to its reference element.\n * It cares only about the first axis, you can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjuction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations).\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position,\n * the popper will never be placed outside of the defined boundaries\n * (except if keepTogether is enabled)\n */\n boundariesElement: 'viewport'\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define you own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3d transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties.\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the informations used by Popper.js\n * this object get passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper.\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow, it expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements.\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overriden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass as 3rd argument an object with the same\n * structure of this object, example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated, this callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Create a new Popper.js instance\n * @class Popper\n * @param {HTMLElement|referenceObject} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper.\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedule an update, it will run on the next UI update available\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","export default {\n mounted: function mounted() {\n if (typeof document !== 'undefined') {\n document.documentElement.addEventListener('click', this._clickOutListener);\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (typeof document !== 'undefined') {\n document.documentElement.removeEventListener('click', this._clickOutListener);\n }\n },\n\n methods: {\n _clickOutListener: function _clickOutListener(e) {\n if (!this.$el.contains(e.target)) {\n if (this.clickOutListener) {\n this.clickOutListener();\n }\n }\n }\n }\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/index.js!./dropdown.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1da23e0d\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../css-loader/index.js!./dropdown.css\", function() {\n var newContent = require(\"!!../../../../css-loader/index.js!./dropdown.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* workaround for https://github.com/bootstrap-vue/bootstrap-vue/issues/1560 */\\n/* source: _input-group.scss */\\n\\n.input-group > .input-group-prepend > .b-dropdown > .btn,\\n.input-group > .input-group-append:not(:last-child) > .b-dropdown > .btn,\\n.input-group > .input-group-append:last-child > .b-dropdown:not(:last-child):not(.dropdown-toggle) > .btn {\\n border-top-right-radius: 0;\\n border-bottom-right-radius: 0;\\n}\\n\\n.input-group > .input-group-append > .b-dropdown > .btn,\\n.input-group > .input-group-prepend:not(:first-child) > .b-dropdown > .btn,\\n.input-group > .input-group-prepend:first-child > .b-dropdown:not(:first-child) > .btn {\\n border-top-left-radius: 0;\\n border-bottom-left-radius: 0;\\n}\\n\", \"\"]);\n\n// exports\n","import { mergeData } from 'vue-functional-data-merge';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nexport var props = linkPropsFactory();\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(Link, mergeData(data, {\n props: props,\n staticClass: 'dropdown-item',\n attrs: { role: 'menuitem' }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n disabled: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n parent = _ref.parent,\n children = _ref.children;\n\n return h('button', mergeData(data, {\n props: props,\n staticClass: 'dropdown-item',\n attrs: { role: 'menuitem', type: 'button', disabled: props.disabled },\n on: {\n click: function click(e) {\n parent.$root.$emit('clicked::link', e);\n }\n }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'h6'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'dropdown-header',\n attrs: { id: props.id || null }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'dropdown-divider',\n attrs: { role: 'separator' }\n }));\n }\n};","import bEmbed from './embed';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bEmbed: bEmbed\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport { arrayIncludes } from '../../utils/array';\n\nexport var props = {\n type: {\n type: String,\n default: 'iframe',\n validator: function validator(str) {\n return arrayIncludes(['iframe', 'embed', 'video', 'object', 'img', 'b-img', 'b-img-lazy'], str);\n }\n },\n tag: {\n type: String,\n default: 'div'\n },\n aspect: {\n type: String,\n default: '16by9'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, {\n ref: data.ref,\n staticClass: 'embed-responsive',\n class: _defineProperty({}, 'embed-responsive-' + props.aspect, Boolean(props.aspect))\n }, [h(props.type, mergeData(data, { ref: '', staticClass: 'embed-responsive-item' }), children)]);\n }\n};","import bForm from './form';\nimport bFormRow from './form-row';\nimport bFormText from './form-text';\nimport bFormInvalidFeedback from './form-invalid-feedback';\nimport bFormValidFeedback from './form-valid-feedback';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bForm: bForm,\n bFormRow: bFormRow,\n bFormText: bFormText,\n bFormInvalidFeedback: bFormInvalidFeedback,\n bFormFeedback: bFormInvalidFeedback,\n bFormValidFeedback: bFormValidFeedback\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n inline: {\n type: Boolean,\n default: false\n },\n novalidate: {\n type: Boolean,\n default: false\n },\n validated: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n};","import bFormRow from '../layout/form-row';\n\nexport default bFormRow;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'small'\n },\n textVariant: {\n type: String,\n default: 'muted'\n },\n inline: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n class: _defineProperty({\n 'form-text': !props.inline\n }, 'text-' + props.textVariant, Boolean(props.textVariant)),\n attrs: {\n id: props.id\n }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n forceShow: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'invalid-feedback',\n class: { 'd-block': props.forceShow },\n attrs: { id: props.id }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n id: {\n type: String,\n default: null\n },\n tag: {\n type: String,\n default: 'div'\n },\n forceShow: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'valid-feedback',\n class: { 'd-block': props.forceShow },\n attrs: { id: props.id }\n }), children);\n }\n};","import bFormGroup from './form-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormGroup: bFormGroup,\n bFormFieldset: bFormGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import warn from '../../utils/warn';\nimport { select, selectAll, isVisible, setAttr, removeAttr, getAttr } from '../../utils/dom';\nimport idMixin from '../../mixins/id';\nimport formStateMixin from '../../mixins/form-state';\nimport bFormRow from '../layout/form-row';\nimport bFormText from '../form/form-text';\nimport bFormInvalidFeedback from '../form/form-invalid-feedback';\nimport bFormValidFeedback from '../form/form-valid-feedback';\n\n// Selector for finding firt input in the form-group\nvar SELECTOR = 'input:not(:disabled),textarea:not(:disabled),select:not(:disabled)';\n\nexport default {\n mixins: [idMixin, formStateMixin],\n components: { bFormRow: bFormRow, bFormText: bFormText, bFormInvalidFeedback: bFormInvalidFeedback, bFormValidFeedback: bFormValidFeedback },\n render: function render(h) {\n var $slots = this.$slots;\n\n // Label / Legend\n var legend = h(false);\n if (this.hasLabel) {\n var children = $slots['label'];\n var legendTag = this.labelFor ? 'label' : 'legend';\n var legendDomProps = children ? {} : { innerHTML: this.label };\n var legendAttrs = { id: this.labelId, for: this.labelFor || null };\n var legendClick = this.labelFor || this.labelSrOnly ? {} : { click: this.legendClick };\n if (this.horizontal) {\n // Horizontal layout with label\n if (this.labelSrOnly) {\n // SR Only we wrap label/legend in a div to preserve layout\n children = h(legendTag, { class: ['sr-only'], attrs: legendAttrs, domProps: legendDomProps }, children);\n legend = h('div', { class: this.labelLayoutClasses }, [children]);\n } else {\n legend = h(legendTag, {\n class: [this.labelLayoutClasses, this.labelClasses],\n attrs: legendAttrs,\n domProps: legendDomProps,\n on: legendClick\n }, children);\n }\n } else {\n // Vertical layout with label\n legend = h(legendTag, {\n class: this.labelSrOnly ? ['sr-only'] : this.labelClasses,\n attrs: legendAttrs,\n domProps: legendDomProps,\n on: legendClick\n }, children);\n }\n } else if (this.horizontal) {\n // No label but has horizontal layout, so we need a spacer element for layout\n legend = h('div', { class: this.labelLayoutClasses });\n }\n\n // Invalid feeback text (explicitly hidden if state is valid)\n var invalidFeedback = h(false);\n if (this.hasInvalidFeedback) {\n var domProps = {};\n if (!$slots['invalid-feedback'] && !$slots['feedback']) {\n domProps = { innerHTML: this.invalidFeedback || this.feedback || '' };\n }\n invalidFeedback = h('b-form-invalid-feedback', {\n props: {\n id: this.invalidFeedbackId,\n forceShow: this.computedState === false\n },\n attrs: {\n role: 'alert',\n 'aria-live': 'assertive',\n 'aria-atomic': 'true'\n },\n domProps: domProps\n }, $slots['invalid-feedback'] || $slots['feedback']);\n }\n\n // Valid feeback text (explicitly hidden if state is invalid)\n var validFeedback = h(false);\n if (this.hasValidFeedback) {\n var _domProps = $slots['valid-feedback'] ? {} : { innerHTML: this.validFeedback || '' };\n validFeedback = h('b-form-valid-feedback', {\n props: {\n id: this.validFeedbackId,\n forceShow: this.computedState === true\n },\n attrs: {\n role: 'alert',\n 'aria-live': 'assertive',\n 'aria-atomic': 'true'\n },\n domProps: _domProps\n }, $slots['valid-feedback']);\n }\n\n // Form help text (description)\n var description = h(false);\n if (this.hasDescription) {\n var _domProps2 = $slots['description'] ? {} : { innerHTML: this.description || '' };\n description = h('b-form-text', { attrs: { id: this.descriptionId }, domProps: _domProps2 }, $slots['description']);\n }\n\n // Build content layout\n var content = h('div', {\n ref: 'content',\n class: this.inputLayoutClasses,\n attrs: this.labelFor ? {} : { role: 'group', 'aria-labelledby': this.labelId }\n }, [$slots['default'], invalidFeedback, validFeedback, description]);\n\n // Generate main form-group wrapper\n return h(this.labelFor ? 'div' : 'fieldset', {\n class: this.groupClasses,\n attrs: {\n id: this.safeId(),\n disabled: this.disabled,\n role: 'group',\n 'aria-invalid': this.computedState === false ? 'true' : null,\n 'aria-labelledby': this.labelId,\n 'aria-describedby': this.labelFor ? null : this.describedByIds\n }\n }, this.horizontal ? [h('b-form-row', {}, [legend, content])] : [legend, content]);\n },\n\n props: {\n horizontal: {\n type: Boolean,\n default: false\n },\n labelCols: {\n type: [Number, String],\n default: 3,\n validator: function validator(value) {\n if (Number(value) >= 1 && Number(value) <= 11) {\n return true;\n }\n warn('b-form-group: label-cols must be a value between 1 and 11');\n return false;\n }\n },\n breakpoint: {\n type: String,\n default: 'sm'\n },\n labelTextAlign: {\n type: String,\n default: null\n },\n label: {\n type: String,\n default: null\n },\n labelFor: {\n type: String,\n default: null\n },\n labelSize: {\n type: String,\n default: null\n },\n labelSrOnly: {\n type: Boolean,\n default: false\n },\n labelClass: {\n type: [String, Array],\n default: null\n },\n description: {\n type: String,\n default: null\n },\n invalidFeedback: {\n type: String,\n default: null\n },\n feedback: {\n // Deprecated in favor of invalid-feedback\n type: String,\n default: null\n },\n validFeedback: {\n type: String,\n default: null\n },\n validated: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n groupClasses: function groupClasses() {\n return ['b-form-group', 'form-group', this.validated ? 'was-validated' : null, this.stateClass];\n },\n labelClasses: function labelClasses() {\n return ['col-form-label', this.labelSize ? 'col-form-label-' + this.labelSize : null, this.labelTextAlign ? 'text-' + this.labelTextAlign : null, this.horizontal ? null : 'pt-0', this.labelClass];\n },\n labelLayoutClasses: function labelLayoutClasses() {\n return [this.horizontal ? 'col-' + this.breakpoint + '-' + this.labelCols : null];\n },\n inputLayoutClasses: function inputLayoutClasses() {\n return [this.horizontal ? 'col-' + this.breakpoint + '-' + (12 - Number(this.labelCols)) : null];\n },\n hasLabel: function hasLabel() {\n return this.label || this.$slots['label'];\n },\n hasDescription: function hasDescription() {\n return this.description || this.$slots['description'];\n },\n hasInvalidFeedback: function hasInvalidFeedback() {\n if (this.computedState === true) {\n // If the form-group state is explicityly valid, we return false\n return false;\n }\n return this.invalidFeedback || this.feedback || this.$slots['invalid-feedback'] || this.$slots['feedback'];\n },\n hasValidFeedback: function hasValidFeedback() {\n if (this.computedState === false) {\n // If the form-group state is explicityly invalid, we return false\n return false;\n }\n return this.validFeedback || this.$slots['valid-feedback'];\n },\n labelId: function labelId() {\n return this.hasLabel ? this.safeId('_BV_label_') : null;\n },\n descriptionId: function descriptionId() {\n return this.hasDescription ? this.safeId('_BV_description_') : null;\n },\n invalidFeedbackId: function invalidFeedbackId() {\n return this.hasInvalidFeedback ? this.safeId('_BV_feedback_invalid_') : null;\n },\n validFeedbackId: function validFeedbackId() {\n return this.hasValidFeedback ? this.safeId('_BV_feedback_valid_') : null;\n },\n describedByIds: function describedByIds() {\n return [this.descriptionId, this.invalidFeedbackId, this.validFeedbackId].filter(function (i) {\n return i;\n }).join(' ') || null;\n }\n },\n watch: {\n describedByIds: function describedByIds(add, remove) {\n if (add !== remove) {\n this.setInputDescribedBy(add, remove);\n }\n }\n },\n methods: {\n legendClick: function legendClick(evt) {\n var tagName = evt.target ? evt.target.tagName : '';\n if (/^(input|select|textarea|label)$/i.test(tagName)) {\n // If clicked an input inside legend, we just let the default happen\n return;\n }\n // Focus the first non-disabled visible input when the legend element is clicked\n var inputs = selectAll(SELECTOR, this.$refs.content).filter(isVisible);\n if (inputs[0] && inputs[0].focus) {\n inputs[0].focus();\n }\n },\n setInputDescribedBy: function setInputDescribedBy(add, remove) {\n // Sets the `aria-describedby` attribute on the input if label-for is set.\n // Optionally accepts a string of IDs to remove as the second parameter\n if (this.labelFor && typeof document !== 'undefined') {\n var input = select('#' + this.labelFor, this.$refs.content);\n if (input) {\n var adb = 'aria-describedby';\n var ids = (getAttr(input, adb) || '').split(/\\s+/);\n remove = (remove || '').split(/\\s+/);\n // Update ID list, preserving any original IDs\n ids = ids.filter(function (id) {\n return remove.indexOf(id) === -1;\n }).concat(add || '').join(' ').trim();\n if (ids) {\n setAttr(input, adb, ids);\n } else {\n removeAttr(input, adb);\n }\n }\n }\n }\n },\n mounted: function mounted() {\n var _this = this;\n\n this.$nextTick(function () {\n // Set the adia-describedby IDs on the input specified by label-for\n // We do this in a nextTick to ensure the children have finished rendering\n _this.setInputDescribedBy(_this.describedByIds);\n });\n }\n};","/* Form control contextual state class computation\n *\n * Returned class is either 'is-valid' or 'is-invalid' based on the 'state' prop\n * state can be one of five values:\n * - true or 'valid' for is-valid\n * - false or 'invalid' for is-invalid\n * - null (or empty string) for no contextual state\n */\n\nexport default {\n props: {\n state: {\n // true/'valid', false/'invalid', '',null\n type: [Boolean, String],\n default: null\n }\n },\n computed: {\n computedState: function computedState() {\n var state = this.state;\n if (state === true || state === 'valid') {\n return true;\n } else if (state === false || state === 'invalid') {\n return false;\n }\n return null;\n },\n stateClass: function stateClass() {\n var state = this.computedState;\n if (state === true) {\n return 'is-valid';\n } else if (state === false) {\n return 'is-invalid';\n }\n return null;\n }\n }\n};","import bFormCheckbox from './form-checkbox';\nimport bFormCheckboxGroup from './form-checkbox-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormCheckbox: bFormCheckbox,\n bCheckbox: bFormCheckbox,\n bCheck: bFormCheckbox,\n bFormCheckboxGroup: bFormCheckboxGroup,\n bCheckboxGroup: bFormCheckboxGroup,\n bCheckGroup: bFormCheckboxGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formRadioCheckMixin from '../../mixins/form-radio-check';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\nimport { isArray } from '../../utils/array';\nimport looseEqual from '../../utils/loose-equal';\n\nexport default {\n mixins: [idMixin, formRadioCheckMixin, formMixin, formSizeMixin, formStateMixin, formCustomMixin],\n render: function render(h) {\n var _this = this;\n\n var input = h('input', {\n ref: 'check',\n class: [this.is_ButtonMode ? '' : this.is_Plain ? 'form-check-input' : 'custom-control-input', this.get_StateClass],\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.computedLocalChecked,\n expression: 'computedLocalChecked'\n }],\n attrs: {\n id: this.safeId(),\n type: 'checkbox',\n name: this.get_Name,\n disabled: this.is_Disabled,\n required: this.is_Required,\n autocomplete: 'off',\n 'true-value': this.value,\n 'false-value': this.uncheckedValue,\n 'aria-required': this.is_Required ? 'true' : null\n },\n domProps: { value: this.value, checked: this.is_Checked },\n on: {\n focus: this.handleFocus,\n blur: this.handleFocus,\n change: this.emitChange,\n __c: function __c(evt) {\n var $$a = _this.computedLocalChecked;\n var $$el = evt.target;\n if (isArray($$a)) {\n // Multiple checkbox\n var $$v = _this.value;\n var $$i = _this._i($$a, $$v); // Vue's 'loose' Array.indexOf\n if ($$el.checked) {\n // Append value to array\n $$i < 0 && (_this.computedLocalChecked = $$a.concat([$$v]));\n } else {\n // Remove value from array\n $$i > -1 && (_this.computedLocalChecked = $$a.slice(0, $$i).concat($$a.slice($$i + 1)));\n }\n } else {\n // Single checkbox\n _this.computedLocalChecked = $$el.checked ? _this.value : _this.uncheckedValue;\n }\n }\n }\n });\n\n var description = h(this.is_ButtonMode ? 'span' : 'label', {\n class: this.is_ButtonMode ? null : this.is_Plain ? 'form-check-label' : 'custom-control-label',\n attrs: { for: this.is_ButtonMode ? null : this.safeId() }\n }, [this.$slots.default]);\n\n if (!this.is_ButtonMode) {\n return h('div', {\n class: [this.is_Plain ? 'form-check' : this.labelClasses, { 'form-check-inline': this.is_Plain && !this.is_Stacked }, { 'custom-control-inline': !this.is_Plain && !this.is_Stacked }]\n }, [input, description]);\n } else {\n return h('label', { class: [this.buttonClasses] }, [input, description]);\n }\n },\n\n props: {\n value: {\n default: true\n },\n uncheckedValue: {\n // Not applicable in multi-check mode\n default: false\n },\n indeterminate: {\n // Not applicable in multi-check mode\n type: Boolean,\n default: false\n }\n },\n computed: {\n labelClasses: function labelClasses() {\n return ['custom-control', 'custom-checkbox', this.get_Size ? 'form-control-' + this.get_Size : '', this.get_StateClass];\n },\n is_Checked: function is_Checked() {\n var checked = this.computedLocalChecked;\n if (isArray(checked)) {\n for (var i = 0; i < checked.length; i++) {\n if (looseEqual(checked[i], this.value)) {\n return true;\n }\n }\n return false;\n } else {\n return looseEqual(checked, this.value);\n }\n }\n },\n watch: {\n computedLocalChecked: function computedLocalChecked(newVal, oldVal) {\n if (looseEqual(newVal, oldVal)) {\n return;\n }\n this.$emit('input', newVal);\n this.$emit('update:indeterminate', this.$refs.check.indeterminate);\n },\n checked: function checked(newVal, oldVal) {\n if (this.is_Child || looseEqual(newVal, oldVal)) {\n return;\n }\n this.computedLocalChecked = newVal;\n },\n indeterminate: function indeterminate(newVal, oldVal) {\n this.setIndeterminate(newVal);\n }\n },\n methods: {\n emitChange: function emitChange(_ref) {\n var checked = _ref.target.checked;\n\n // Change event is only fired via user interaction\n // And we only emit the value of this checkbox\n if (this.is_Child || isArray(this.computedLocalChecked)) {\n this.$emit('change', checked ? this.value : null);\n if (this.is_Child) {\n // If we are a child of form-checkbbox-group, emit change on parent\n this.$parent.$emit('change', this.computedLocalChecked);\n }\n } else {\n // Single radio mode supports unchecked value\n this.$emit('change', checked ? this.value : this.uncheckedValue);\n }\n this.$emit('update:indeterminate', this.$refs.check.indeterminate);\n },\n setIndeterminate: function setIndeterminate(state) {\n // Indeterminate only supported in single checkbox mode\n if (this.is_Child || isArray(this.computedLocalChecked)) {\n return;\n }\n this.$refs.check.indeterminate = state;\n // Emit update event to prop\n this.$emit('update:indeterminate', this.$refs.check.indeterminate);\n }\n },\n mounted: function mounted() {\n // Set initial indeterminate state\n this.setIndeterminate(this.indeterminate);\n }\n};","/*\n * form-radio & form-check mixin\n *\n */\n\nexport default {\n data: function data() {\n return {\n localChecked: this.checked,\n hasFocus: false\n };\n },\n\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n value: {},\n checked: {\n // This is the model, except when in group mode\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: null\n }\n },\n computed: {\n computedLocalChecked: {\n get: function get() {\n if (this.is_Child) {\n return this.$parent.localChecked;\n } else {\n return this.localChecked;\n }\n },\n set: function set(val) {\n if (this.is_Child) {\n this.$parent.localChecked = val;\n } else {\n this.localChecked = val;\n }\n }\n },\n is_Child: function is_Child() {\n return Boolean(this.$parent && this.$parent.is_RadioCheckGroup);\n },\n is_Disabled: function is_Disabled() {\n // Child can be disabled while parent isn't\n return Boolean(this.is_Child ? this.$parent.disabled || this.disabled : this.disabled);\n },\n is_Required: function is_Required() {\n return Boolean(this.is_Child ? this.$parent.required : this.required);\n },\n is_Plain: function is_Plain() {\n return Boolean(this.is_Child ? this.$parent.plain : this.plain);\n },\n is_Custom: function is_Custom() {\n return !this.is_Plain;\n },\n get_Size: function get_Size() {\n return this.is_Child ? this.$parent.size : this.size;\n },\n get_State: function get_State() {\n // This is a tri-state prop (true, false, null)\n if (this.is_Child && typeof this.$parent.get_State === 'boolean') {\n return this.$parent.get_State;\n }\n return this.computedState;\n },\n get_StateClass: function get_StateClass() {\n // This is a tri-state prop (true, false, null)\n return typeof this.get_State === 'boolean' ? this.get_State ? 'is-valid' : 'is-invalid' : '';\n },\n is_Stacked: function is_Stacked() {\n return Boolean(this.is_Child && this.$parent.stacked);\n },\n is_Inline: function is_Inline() {\n return !this.is_Stacked;\n },\n is_ButtonMode: function is_ButtonMode() {\n return Boolean(this.is_Child && this.$parent.buttons);\n },\n get_ButtonVariant: function get_ButtonVariant() {\n // Local variant trumps parent variant\n return this.buttonVariant || (this.is_Child ? this.$parent.buttonVariant : null) || 'secondary';\n },\n get_Name: function get_Name() {\n return (this.is_Child ? this.$parent.name || this.$parent.safeId() : this.name) || null;\n },\n buttonClasses: function buttonClasses() {\n // Same for radio & check\n return ['btn', 'btn-' + this.get_ButtonVariant, this.get_Size ? 'btn-' + this.get_Size : '',\n // 'disabled' class makes \"button\" look disabled\n this.is_Disabled ? 'disabled' : '',\n // 'active' class makes \"button\" look pressed\n this.is_Checked ? 'active' : '',\n // Focus class makes button look focused\n this.hasFocus ? 'focus' : ''];\n }\n },\n methods: {\n handleFocus: function handleFocus(evt) {\n // When in buttons mode, we need to add 'focus' class to label when radio focused\n if (this.is_ButtonMode && evt.target) {\n if (evt.type === 'focus') {\n this.hasFocus = true;\n } else if (evt.type === 'blur') {\n this.hasFocus = false;\n }\n }\n }\n }\n};","export default {\n props: {\n name: {\n type: String\n },\n id: {\n type: String\n },\n disabled: {\n type: Boolean\n },\n required: {\n type: Boolean,\n default: false\n }\n }\n};","export default {\n props: {\n size: {\n type: String,\n default: null\n }\n },\n computed: {\n sizeFormClass: function sizeFormClass() {\n return [this.size ? \"form-control-\" + this.size : null];\n },\n sizeBtnClass: function sizeBtnClass() {\n return [this.size ? \"btn-\" + this.size : null];\n }\n }\n};","export default {\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n },\n props: {\n plain: {\n type: Boolean,\n default: false\n }\n }\n};","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { isArray } from './array';\nimport { keys } from './object';\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject(obj) {\n return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object';\n}\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n * Returns boolean true or false\n */\nfunction looseEqual(a, b) {\n if (a === b) return true;\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i]);\n });\n } else if (!isArrayA && !isArrayB) {\n var keysA = keys(a);\n var keysB = keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key]);\n });\n } else {\n return false;\n }\n } catch (e) {\n return false;\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b);\n } else {\n return false;\n }\n}\n\nexport default looseEqual;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formOptionsMixin from '../../mixins/form-options';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\n\nimport bFormCheckbox from './form-checkbox';\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin, formCustomMixin, formOptionsMixin],\n components: { bFormCheckbox: bFormCheckbox },\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n\n var checks = this.formOptions.map(function (option, idx) {\n return h('b-form-checkbox', {\n key: 'check_' + idx + '_opt',\n props: {\n id: _this.safeId('_BV_check_' + idx + '_opt_'),\n name: _this.name,\n value: option.value,\n required: _this.name && _this.required,\n disabled: option.disabled\n }\n }, [h('span', { domProps: { innerHTML: option.text } })]);\n });\n return h('div', {\n class: this.groupClasses,\n attrs: {\n id: this.safeId(),\n role: 'group',\n tabindex: '-1',\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n }\n }, [$slots.first, checks, $slots.default]);\n },\n data: function data() {\n return {\n localChecked: this.checked || [],\n // Flag for children\n is_RadioCheckGroup: true\n };\n },\n\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n checked: {\n type: [String, Number, Object, Array, Boolean],\n default: null\n },\n validated: {\n type: Boolean,\n default: false\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n stacked: {\n type: Boolean,\n default: false\n },\n buttons: {\n // Render as button style\n type: Boolean,\n default: false\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: 'secondary'\n }\n },\n watch: {\n checked: function checked(newVal, oldVal) {\n this.localChecked = this.checked;\n },\n localChecked: function localChecked(newVal, oldVal) {\n this.$emit('input', newVal);\n }\n },\n computed: {\n groupClasses: function groupClasses() {\n if (this.buttons) {\n return ['btn-group-toggle', this.stacked ? 'btn-group-vertical' : 'btn-group', this.size ? 'btn-group-' + this.size : '', this.validated ? 'was-validated' : ''];\n }\n return [this.sizeFormClass, this.stacked && this.custom ? 'custom-controls-stacked' : '', this.validated ? 'was-validated' : ''];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (this.ariaInvalid === true || this.ariaInvalid === 'true' || this.ariaInvalid === '') {\n return 'true';\n }\n return this.get_State === false ? 'true' : null;\n },\n get_State: function get_State() {\n // Child radios sniff this value\n return this.computedState;\n }\n }\n};","import { isArray } from '../utils/array';\nimport { keys } from '../utils/object';\n\nfunction isObject(obj) {\n return obj && {}.toString.call(obj) === '[object Object]';\n}\n\nexport default {\n\n props: {\n options: {\n type: [Array, Object],\n default: function _default() {\n return [];\n }\n },\n valueField: {\n type: String,\n default: 'value'\n },\n textField: {\n type: String,\n default: 'text'\n },\n disabledField: {\n type: String,\n default: 'disabled'\n }\n },\n computed: {\n formOptions: function formOptions() {\n var options = this.options;\n\n var valueField = this.valueField;\n var textField = this.textField;\n var disabledField = this.disabledField;\n\n if (isArray(options)) {\n // Normalize flat-ish arrays to Array of Objects\n return options.map(function (option) {\n if (isObject(option)) {\n return {\n value: option[valueField],\n text: String(option[textField]),\n disabled: option[disabledField] || false\n };\n }\n return {\n value: option,\n text: String(option),\n disabled: false\n };\n });\n } else {\n // options is Object\n // Normalize Objects to Array of Objects\n return keys(options).map(function (key) {\n var option = options[key] || {};\n if (isObject(option)) {\n var value = option[valueField];\n var text = option[textField];\n return {\n value: typeof value === 'undefined' ? key : value,\n text: typeof text === 'undefined' ? key : String(text),\n disabled: option[disabledField] || false\n };\n }\n return {\n value: key,\n text: String(option),\n disabled: false\n };\n });\n }\n }\n }\n};","import bFormRadio from './form-radio';\nimport bFormRadioGroup from './form-radio-group';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormRadio: bFormRadio,\n bRadio: bFormRadio,\n bFormRadioGroup: bFormRadioGroup,\n bRadioGroup: bFormRadioGroup\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formStateMixin from '../../mixins/form-state';\nimport formRadioCheckMixin from '../../mixins/form-radio-check';\nimport looseEqual from '../../utils/loose-equal';\n\nexport default {\n mixins: [idMixin, formRadioCheckMixin, formMixin, formStateMixin],\n render: function render(h) {\n var _this = this;\n\n var input = h('input', {\n ref: 'radio',\n class: [this.is_ButtonMode ? '' : this.is_Plain ? 'form-check-input' : 'custom-control-input', this.get_StateClass],\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.computedLocalChecked,\n expression: 'computedLocalChecked'\n }],\n attrs: {\n id: this.safeId(),\n type: 'radio',\n name: this.get_Name,\n required: this.get_Name && this.is_Required,\n disabled: this.is_Disabled,\n autocomplete: 'off'\n },\n domProps: {\n value: this.value,\n checked: looseEqual(this.computedLocalChecked, this.value)\n },\n on: {\n focus: this.handleFocus,\n blur: this.handleFocus,\n change: this.emitChange,\n __c: function __c(evt) {\n _this.computedLocalChecked = _this.value;\n }\n }\n });\n\n var description = h(this.is_ButtonMode ? 'span' : 'label', {\n class: this.is_ButtonMode ? null : this.is_Plain ? 'form-check-label' : 'custom-control-label',\n attrs: { for: this.is_ButtonMode ? null : this.safeId() }\n }, [this.$slots.default]);\n\n if (!this.is_ButtonMode) {\n return h('div', {\n class: [this.is_Plain ? 'form-check' : this.labelClasses, { 'form-check-inline': this.is_Plain && !this.is_Stacked }, { 'custom-control-inline': !this.is_Plain && !this.is_Stacked }]\n }, [input, description]);\n } else {\n return h('label', { class: [this.buttonClasses] }, [input, description]);\n }\n },\n\n watch: {\n // Radio Groups can only have a single value, so our watchers are simple\n checked: function checked(newVal, oldVal) {\n this.computedLocalChecked = newVal;\n },\n computedLocalChceked: function computedLocalChceked(newVal, oldVal) {\n this.$emit('input', this.computedLocalChceked);\n }\n },\n computed: {\n is_Checked: function is_Checked() {\n return looseEqual(this.value, this.computedLocalChecked);\n },\n labelClasses: function labelClasses() {\n // Specific to radio\n return [this.get_Size ? 'form-control-' + this.get_Size : '', 'custom-control', 'custom-radio', this.get_StateClass];\n }\n },\n methods: {\n emitChange: function emitChange(_ref) {\n var checked = _ref.target.checked;\n\n // Change is only emitted on user interaction\n this.$emit('change', checked ? this.value : null);\n // If this is a child of form-radio-group, we emit a change event on it as well\n if (this.is_Child) {\n this.$parent.$emit('change', this.computedLocalChecked);\n }\n }\n }\n};","import idMixin from '../../mixins/id';\nimport formOptionsMixin from '../../mixins/form-options';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\nimport bFormRadio from './form-radio';\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin, formCustomMixin, formOptionsMixin],\n components: { bFormRadio: bFormRadio },\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n\n var radios = this.formOptions.map(function (option, idx) {\n return h('b-form-radio', {\n key: 'radio_' + idx + '_opt',\n props: {\n id: _this.safeId('_BV_radio_' + idx + '_opt_'),\n name: _this.name,\n value: option.value,\n required: Boolean(_this.name && _this.required),\n disabled: option.disabled\n }\n }, [h('span', { domProps: { innerHTML: option.text } })]);\n });\n return h('div', {\n class: this.groupClasses,\n attrs: {\n id: this.safeId(),\n role: 'radiogroup',\n tabindex: '-1',\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n }\n }, [$slots.first, radios, $slots.default]);\n },\n data: function data() {\n return {\n localChecked: this.checked,\n // Flag for children\n is_RadioCheckGroup: true\n };\n },\n\n model: {\n prop: 'checked',\n event: 'input'\n },\n props: {\n checked: {\n type: [String, Object, Number, Boolean],\n default: null\n },\n validated: {\n // Used for applying hte `was-validated` class to the group\n type: Boolean,\n default: false\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n stacked: {\n type: Boolean,\n default: false\n },\n buttons: {\n // Render as button style\n type: Boolean,\n default: false\n },\n buttonVariant: {\n // Only applicable when rendered with button style\n type: String,\n default: 'secondary'\n }\n },\n watch: {\n checked: function checked(newVal, oldVal) {\n this.localChecked = this.checked;\n },\n localChecked: function localChecked(newVal, oldVal) {\n this.$emit('input', newVal);\n }\n },\n computed: {\n groupClasses: function groupClasses() {\n if (this.buttons) {\n return ['btn-group-toggle', this.stacked ? 'btn-group-vertical' : 'btn-group', this.size ? 'btn-group-' + this.size : '', this.validated ? 'was-validated' : ''];\n }\n return [this.sizeFormClass, this.stacked && this.custom ? 'custom-controls-stacked' : '', this.validated ? 'was-validated' : ''];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (this.ariaInvalid === true || this.ariaInvalid === 'true' || this.ariaInvalid === '') {\n return 'true';\n }\n return this.get_State === false ? 'true' : null;\n },\n get_State: function get_State() {\n // Required by child radios\n return this.computedState;\n }\n }\n};","import bFormInput from './form-input';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormInput: bFormInput,\n bInput: bFormInput\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport { arrayIncludes } from '../../utils/array';\n\n// Import styles\nimport './form-input.css';\n\n// Valid supported input types\nvar TYPES = ['text', 'password', 'email', 'number', 'url', 'tel', 'search', 'range', 'color', 'date', 'time', 'datetime', 'datetime-local', 'month', 'week'];\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin],\n render: function render(h) {\n return h('input', {\n ref: 'input',\n class: this.inputClass,\n domProps: { value: this.localValue },\n attrs: {\n id: this.safeId(),\n name: this.name,\n type: this.localType,\n disabled: this.disabled,\n required: this.required,\n readonly: this.readonly || this.plaintext,\n placeholder: this.placeholder,\n autocomplete: this.autocomplete || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n },\n on: {\n input: this.onInput,\n change: this.onChange\n }\n });\n },\n data: function data() {\n return {\n localValue: this.value\n };\n },\n\n props: {\n value: {\n default: null\n },\n type: {\n type: String,\n default: 'text',\n validator: function validator(type) {\n return arrayIncludes(TYPES, type);\n }\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n readonly: {\n type: Boolean,\n default: false\n },\n plaintext: {\n type: Boolean,\n default: false\n },\n autocomplete: {\n type: String,\n default: null\n },\n placeholder: {\n type: String,\n default: null\n },\n formatter: {\n type: Function\n },\n lazyFormatter: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n localType: function localType() {\n // We only allow certain types\n return arrayIncludes(TYPES, this.type) ? this.type : 'text';\n },\n inputClass: function inputClass() {\n return [this.plaintext ? 'form-control-plaintext' : 'form-control', this.sizeFormClass, this.stateClass];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (!this.ariaInvalid || this.ariaInvalid === 'false') {\n // this.ariaInvalid is null or false or 'false'\n return this.computedState === false ? 'true' : null;\n }\n if (this.ariaInvalid === true) {\n // User wants explicit aria-invalid=true\n return 'true';\n }\n // Most likely a string value (which could be 'true')\n return this.ariaInvalid;\n }\n },\n watch: {\n value: function value(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.localValue = newVal;\n }\n },\n localValue: function localValue(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('input', newVal);\n }\n }\n },\n methods: {\n format: function format(value, e) {\n if (this.formatter) {\n var formattedValue = this.formatter(value, e);\n if (formattedValue !== value) {\n return formattedValue;\n }\n }\n return value;\n },\n onInput: function onInput(evt) {\n var value = evt.target.value;\n if (this.lazyFormatter) {\n // Update the model with the current unformated value\n this.localValue = value;\n } else {\n this.localValue = this.format(value, evt);\n }\n },\n onChange: function onChange(evt) {\n this.localValue = this.format(evt.target.value, evt);\n this.$emit('change', this.localValue);\n },\n focus: function focus() {\n if (!this.disabled) {\n this.$el.focus();\n }\n }\n }\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/index.js!./form-input.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"ec8a0cc6\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../css-loader/index.js!./form-input.css\", function() {\n var newContent = require(\"!!../../../../css-loader/index.js!./form-input.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* Special styling for type=range and type=color input */\\ninput.form-control[type=\\\"range\\\"],\\ninput.form-control[type=\\\"color\\\"] {\\n height: 2.25rem;\\n}\\ninput.form-control.form-control-sm[type=\\\"range\\\"],\\ninput.form-control.form-control-sm[type=\\\"color\\\"] {\\n height: 1.9375rem;\\n}\\ninput.form-control.form-control-lg[type=\\\"range\\\"],\\ninput.form-control.form-control-lg[type=\\\"color\\\"] {\\n height: 3rem;\\n}\\n\\n/* Less padding on type=color */\\ninput.form-control[type=\\\"color\\\"] {\\n padding: 0.25rem 0.25rem;\\n}\\ninput.form-control.form-control-sm[type=\\\"color\\\"] {\\n padding: 0.125rem 0.125rem;\\n}\\n\", \"\"]);\n\n// exports\n","import bFormTextarea from './form-textarea';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormTextarea: bFormTextarea,\n bTextarea: bFormTextarea\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin],\n render: function render(h) {\n var _this = this;\n\n return h('textarea', {\n ref: 'input',\n class: this.inputClass,\n style: this.inputStyle,\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.localValue,\n expression: 'localValue'\n }],\n domProps: { value: this.value },\n attrs: {\n id: this.safeId(),\n name: this.name,\n disabled: this.disabled,\n placeholder: this.placeholder,\n required: this.required,\n autocomplete: this.autocomplete || null,\n readonly: this.readonly || this.plaintext,\n rows: this.rowsCount,\n wrap: this.wrap || null,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n },\n on: {\n input: function input(evt) {\n _this.localValue = evt.target.value;\n }\n }\n });\n },\n data: function data() {\n return {\n localValue: this.value\n };\n },\n\n props: {\n value: {\n type: String,\n default: ''\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n },\n readonly: {\n type: Boolean,\n default: false\n },\n plaintext: {\n type: Boolean,\n default: false\n },\n autocomplete: {\n type: String,\n default: null\n },\n placeholder: {\n type: String,\n default: null\n },\n rows: {\n type: [Number, String],\n default: null\n },\n maxRows: {\n type: [Number, String],\n default: null\n },\n wrap: {\n // 'soft', 'hard' or 'off'. Browser default is 'soft'\n type: String,\n default: 'soft'\n },\n noResize: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n rowsCount: function rowsCount() {\n // A better option could be based on https://codepen.io/vsync/pen/frudD\n // As linebreaks aren't added until the input is submitted\n var rows = parseInt(this.rows, 10) || 1;\n var maxRows = parseInt(this.maxRows, 10) || 0;\n var lines = (this.localValue || '').toString().split('\\n').length;\n return maxRows ? Math.min(maxRows, Math.max(rows, lines)) : Math.max(rows, lines);\n },\n inputClass: function inputClass() {\n return [this.plaintext ? 'form-control-plaintext' : 'form-control', this.sizeFormClass, this.stateClass];\n },\n inputStyle: function inputStyle() {\n // We set width 100% in plaintext mode to get around a shortcoming in bootstrap CSS\n // setting noResize to true will disable the ability for the user to resize the textarea\n return {\n width: this.plaintext ? '100%' : null,\n resize: this.noResize ? 'none' : null\n };\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (!this.ariaInvalid || this.ariaInvalid === 'false') {\n // this.ariaInvalid is null or false or 'false'\n return this.computedState === false ? 'true' : null;\n }\n if (this.ariaInvalid === true) {\n // User wants explicit aria-invalid=true\n return 'true';\n }\n // Most likely a string value (which could be the string 'true')\n return this.ariaInvalid;\n }\n },\n watch: {\n value: function value(newVal, oldVal) {\n // Update our localValue\n if (newVal !== oldVal) {\n this.localValue = newVal;\n }\n },\n localValue: function localValue(newVal, oldVal) {\n // update Parent value\n if (newVal !== oldVal) {\n this.$emit('input', newVal);\n }\n }\n },\n methods: {\n focus: function focus() {\n // For external handler that may want a focus method\n if (!this.disabled) {\n this.$el.focus();\n }\n }\n }\n};","import bFormFile from './form-file';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormFile: bFormFile,\n bFile: bFormFile\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formMixin from '../../mixins/form';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\nimport { from as arrayFrom } from '../../utils/array';\n\nexport default {\n mixins: [idMixin, formMixin, formStateMixin, formCustomMixin],\n render: function render(h) {\n // Form Input\n var input = h('input', {\n ref: 'input',\n class: [{\n 'form-control-file': this.plain,\n 'custom-file-input': this.custom,\n focus: this.custom && this.hasFocus\n }, this.stateClass],\n attrs: {\n type: 'file',\n id: this.safeId(),\n name: this.name,\n disabled: this.disabled,\n required: this.required,\n capture: this.capture || null,\n accept: this.accept || null,\n multiple: this.multiple,\n webkitdirectory: this.directory,\n 'aria-required': this.required ? 'true' : null,\n 'aria-describedby': this.plain ? null : this.safeId('_BV_file_control_')\n },\n on: {\n change: this.onFileChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler\n }\n });\n\n if (this.plain) {\n return input;\n }\n\n // Overlay Labels\n var label = h('label', {\n class: ['custom-file-label', this.dragging ? 'dragging' : null],\n attrs: {\n id: this.safeId('_BV_file_control_')\n }\n }, this.selectLabel);\n\n // Return rendered custom file input\n return h('div', {\n class: ['custom-file', 'b-form-file', this.stateClass],\n attrs: { id: this.safeId('_BV_file_outer_') },\n on: { dragover: this.dragover }\n }, [input, label]);\n },\n data: function data() {\n return {\n selectedFile: null,\n dragging: false,\n hasFocus: false\n };\n },\n\n props: {\n accept: {\n type: String,\n default: ''\n },\n // Instruct input to capture from camera\n capture: {\n type: Boolean,\n default: false\n },\n placeholder: {\n type: String,\n default: undefined\n },\n multiple: {\n type: Boolean,\n default: false\n },\n directory: {\n type: Boolean,\n default: false\n },\n noTraverse: {\n type: Boolean,\n default: false\n },\n noDrop: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n selectLabel: function selectLabel() {\n // No file choosen\n if (!this.selectedFile || this.selectedFile.length === 0) {\n return this.placeholder;\n }\n\n // Multiple files\n if (this.multiple) {\n if (this.selectedFile.length === 1) {\n return this.selectedFile[0].name;\n }\n return this.selectedFile.map(function (file) {\n return file.name;\n }).join(', ');\n }\n\n // Single file\n return this.selectedFile.name;\n }\n },\n watch: {\n selectedFile: function selectedFile(newVal, oldVal) {\n if (newVal === oldVal) {\n return;\n }\n if (!newVal && this.multiple) {\n this.$emit('input', []);\n } else {\n this.$emit('input', newVal);\n }\n }\n },\n methods: {\n focusHandler: function focusHandler(evt) {\n // Boostrap v4.beta doesn't have focus styling for custom file input\n // Firefox has a borked '[type=file]:focus ~ sibling' selector issue,\n // So we add a 'focus' class to get around these \"bugs\"\n if (this.plain || evt.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n reset: function reset() {\n try {\n // Wrapped in try in case IE < 11 craps out\n this.$refs.input.value = '';\n } catch (e) {}\n // IE < 11 doesn't support setting input.value to '' or null\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well.\n this.$refs.input.type = '';\n this.$refs.input.type = 'file';\n this.selectedFile = this.multiple ? [] : null;\n },\n onFileChange: function onFileChange(evt) {\n var _this = this;\n\n // Always emit original event\n this.$emit('change', evt);\n // Check if special `items` prop is available on event (drop mode)\n // Can be disabled by setting no-traverse\n var items = evt.dataTransfer && evt.dataTransfer.items;\n if (items && !this.noTraverse) {\n var queue = [];\n for (var i = 0; i < items.length; i++) {\n var item = items[i].webkitGetAsEntry();\n if (item) {\n queue.push(this.traverseFileTree(item));\n }\n }\n Promise.all(queue).then(function (filesArr) {\n _this.setFiles(arrayFrom(filesArr));\n });\n return;\n }\n // Normal handling\n this.setFiles(evt.target.files || evt.dataTransfer.files);\n },\n setFiles: function setFiles(files) {\n if (!files) {\n this.selectedFile = null;\n return;\n }\n if (!this.multiple) {\n this.selectedFile = files[0];\n return;\n }\n // Convert files to array\n var filesArray = [];\n for (var i = 0; i < files.length; i++) {\n if (files[i].type.match(this.accept)) {\n filesArray.push(files[i]);\n }\n }\n this.selectedFile = filesArray;\n },\n dragover: function dragover(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (this.noDrop || !this.custom) {\n return;\n }\n this.dragging = true;\n evt.dataTransfer.dropEffect = 'copy';\n },\n dragleave: function dragleave(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n this.dragging = false;\n },\n drop: function drop(evt) {\n evt.preventDefault();\n evt.stopPropagation();\n if (this.noDrop) {\n return;\n }\n this.dragging = false;\n if (evt.dataTransfer.files && evt.dataTransfer.files.length > 0) {\n this.onFileChange(evt);\n }\n },\n traverseFileTree: function traverseFileTree(item, path) {\n var _this2 = this;\n\n // Based on http://stackoverflow.com/questions/3590058\n return new Promise(function (resolve) {\n path = path || '';\n if (item.isFile) {\n // Get file\n item.file(function (file) {\n file.$path = path; // Inject $path to file obj\n resolve(file);\n });\n } else if (item.isDirectory) {\n // Get folder contents\n item.createReader().readEntries(function (entries) {\n var queue = [];\n for (var i = 0; i < entries.length; i++) {\n queue.push(_this2.traverseFileTree(entries[i], path + item.name + '/'));\n }\n Promise.all(queue).then(function (filesArr) {\n resolve(arrayFrom(filesArr));\n });\n });\n }\n });\n }\n }\n};","import bFormSelect from './form-select';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bFormSelect: bFormSelect,\n bSelect: bFormSelect\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import idMixin from '../../mixins/id';\nimport formOptionsMixin from '../../mixins/form-options';\nimport formMixin from '../../mixins/form';\nimport formSizeMixin from '../../mixins/form-size';\nimport formStateMixin from '../../mixins/form-state';\nimport formCustomMixin from '../../mixins/form-custom';\nimport { from as arrayFrom } from '../../utils/array';\n\nexport default {\n mixins: [idMixin, formMixin, formSizeMixin, formStateMixin, formCustomMixin, formOptionsMixin],\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n var options = this.formOptions.map(function (option, index) {\n return h('option', {\n key: 'option_' + index + '_opt',\n attrs: { disabled: Boolean(option.disabled) },\n domProps: { innerHTML: option.text, value: option.value }\n });\n });\n return h('select', {\n ref: 'input',\n class: this.inputClass,\n directives: [{\n name: 'model',\n rawName: 'v-model',\n value: this.localValue,\n expression: 'localValue'\n }],\n attrs: {\n id: this.safeId(),\n name: this.name,\n multiple: this.multiple || null,\n size: this.computedSelectSize,\n disabled: this.disabled,\n required: this.required,\n 'aria-required': this.required ? 'true' : null,\n 'aria-invalid': this.computedAriaInvalid\n },\n on: {\n change: function change(evt) {\n var target = evt.target;\n var selectedVal = arrayFrom(target.options).filter(function (o) {\n return o.selected;\n }).map(function (o) {\n return '_value' in o ? o._value : o.value;\n });\n _this.localValue = target.multiple ? selectedVal : selectedVal[0];\n _this.$emit('change', _this.localValue);\n }\n }\n }, [$slots.first, options, $slots.default]);\n },\n data: function data() {\n return {\n localValue: this.value\n };\n },\n\n watch: {\n value: function value(newVal, oldVal) {\n this.localValue = newVal;\n },\n localValue: function localValue(newVal, oldVal) {\n this.$emit('input', this.localValue);\n }\n },\n props: {\n value: {},\n multiple: {\n type: Boolean,\n default: false\n },\n selectSize: {\n // Browsers default size to 0, which shows 4 rows in most browsers in multiple mode\n // Size of 1 can bork out firefox\n type: Number,\n default: 0\n },\n ariaInvalid: {\n type: [Boolean, String],\n default: false\n }\n },\n computed: {\n computedSelectSize: function computedSelectSize() {\n // Custom selects with a size of zero causes the arrows to be hidden,\n // so dont render the size attribute in this case\n return !this.plain && this.selectSize === 0 ? null : this.selectSize;\n },\n inputClass: function inputClass() {\n return ['form-control', this.stateClass, this.sizeFormClass,\n // Awaiting for https://github.com/twbs/bootstrap/issues/23058\n this.plain ? null : 'custom-select', this.plain || !this.size ? null : 'custom-select-' + this.size];\n },\n computedAriaInvalid: function computedAriaInvalid() {\n if (this.ariaInvalid === true || this.ariaInvalid === 'true') {\n return 'true';\n }\n return this.stateClass === 'is-invalid' ? 'true' : null;\n }\n }\n};","import bImg from './img';\nimport bImgLazy from './img-lazy';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bImg: bImg,\n bImgLazy: bImgLazy\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import bImg from './img';\nimport { isVisible, getBCR, eventOn, eventOff } from '../../utils/dom';\nvar THROTTLE = 100;\n\nexport default {\n components: { bImg: bImg },\n render: function render(h) {\n return h('b-img', {\n props: {\n src: this.computedSrc,\n alt: this.alt,\n blank: this.computedBlank,\n blankColor: this.blankColor,\n width: this.computedWidth,\n height: this.computedHeight,\n fluid: this.fluid,\n fluidGrow: this.fluidGrow,\n block: this.block,\n thumbnail: this.thumbnail,\n rounded: this.rounded,\n left: this.left,\n right: this.right,\n center: this.center\n }\n });\n },\n data: function data() {\n return {\n isShown: false,\n scrollTimeout: null\n };\n },\n\n props: {\n src: {\n type: String,\n default: null,\n required: true\n },\n alt: {\n type: String,\n default: null\n },\n width: {\n type: [Number, String],\n default: null\n },\n height: {\n type: [Number, String],\n default: null\n },\n blankSrc: {\n // If null, a blank image is generated\n type: String,\n default: null\n },\n blankColor: {\n type: String,\n default: 'transparent'\n },\n blankWidth: {\n type: [Number, String],\n default: null\n },\n blankHeight: {\n type: [Number, String],\n default: null\n },\n fluid: {\n type: Boolean,\n default: false\n },\n fluidGrow: {\n type: Boolean,\n default: false\n },\n block: {\n type: Boolean,\n default: false\n },\n thumbnail: {\n type: Boolean,\n default: false\n },\n rounded: {\n type: [Boolean, String],\n default: false\n },\n left: {\n type: Boolean,\n default: false\n },\n right: {\n type: Boolean,\n default: false\n },\n center: {\n type: Boolean,\n default: false\n },\n offset: {\n type: [Number, String],\n default: 360\n },\n throttle: {\n type: [Number, String],\n default: THROTTLE\n }\n },\n computed: {\n computedSrc: function computedSrc() {\n return !this.blankSrc || this.isShown ? this.src : this.blankSrc;\n },\n computedBlank: function computedBlank() {\n return !(this.isShown || this.blankSrc);\n },\n computedWidth: function computedWidth() {\n return this.isShown ? this.width : this.blankWidth || this.width;\n },\n computedHeight: function computedHeight() {\n return this.isShown ? this.height : this.blankHeight || this.height;\n }\n },\n mounted: function mounted() {\n this.setListeners(true);\n this.checkView();\n },\n activated: function activated() {\n this.setListeners(true);\n this.checkView();\n },\n deactivated: function deactivated() {\n this.setListeners(false);\n },\n beforeDdestroy: function beforeDdestroy() {\n this.setListeners(false);\n },\n\n methods: {\n setListeners: function setListeners(on) {\n clearTimeout(this.scrollTimer);\n this.scrollTimeout = null;\n var root = window;\n if (on) {\n eventOn(root, 'scroll', this.onScroll);\n eventOn(root, 'resize', this.onScroll);\n eventOn(root, 'orientationchange', this.onScroll);\n } else {\n eventOff(root, 'scroll', this.onScroll);\n eventOff(root, 'resize', this.onScroll);\n eventOff(root, 'orientationchange', this.onScroll);\n }\n },\n checkView: function checkView() {\n // check bounding box + offset to see if we should show\n if (!isVisible(this.$el)) {\n // Element is hidden, so skip for now\n return;\n }\n var offset = parseInt(this.offset, 10) || 0;\n var docElement = document.documentElement;\n var view = {\n l: 0 - offset,\n t: 0 - offset,\n b: docElement.clientHeight + offset,\n r: docElement.clientWidth + offset\n };\n var box = getBCR(this.$el);\n if (box.right >= view.l && box.bottom >= view.t && box.left <= view.r && box.top <= view.b) {\n // image is in view (or about to be in view)\n this.isShown = true;\n this.setListeners(false);\n }\n },\n onScroll: function onScroll() {\n if (this.isShown) {\n this.setListeners(false);\n } else {\n clearTimeout(this.scrollTimeout);\n this.scrollTimeout = setTimeout(this.checkView, parseInt(this.throttle, 10) || THROTTLE);\n }\n }\n }\n};","import bJumbotron from './jumbotron';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bJumbotron: bJumbotron\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport Container from '../layout/container';\n\nexport var props = {\n fluid: {\n type: Boolean,\n default: false\n },\n containerFluid: {\n type: Boolean,\n default: false\n },\n header: {\n type: String,\n default: null\n },\n headerTag: {\n type: String,\n default: 'h1'\n },\n headerLevel: {\n type: [Number, String],\n default: '3'\n },\n lead: {\n type: String,\n default: null\n },\n leadTag: {\n type: String,\n default: 'p'\n },\n tag: {\n type: String,\n default: 'div'\n },\n bgVariant: {\n type: String,\n default: null\n },\n borderVariant: {\n type: String,\n default: null\n },\n textVariant: {\n type: String,\n default: null\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class2;\n\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots;\n\n // The order of the conditionals matter.\n // We are building the component markup in order.\n var childNodes = [];\n var $slots = slots();\n\n // Header\n if (props.header || $slots.header) {\n childNodes.push(h(props.headerTag, {\n class: _defineProperty({}, 'display-' + props.headerLevel, Boolean(props.headerLevel))\n }, $slots.header || props.header));\n }\n\n // Lead\n if (props.lead || $slots.lead) {\n childNodes.push(h(props.leadTag, { staticClass: 'lead' }, $slots.lead || props.lead));\n }\n\n // Default slot\n if ($slots.default) {\n childNodes.push($slots.default);\n }\n\n // If fluid, wrap content in a container/container-fluid\n if (props.fluid) {\n // Children become a child of a container\n childNodes = [h(Container, { props: { 'fluid': props.containerFluid } }, childNodes)];\n }\n // Return the jumbotron\n return h(props.tag, mergeData(data, {\n staticClass: 'jumbotron',\n class: (_class2 = {\n 'jumbotron-fluid': props.fluid\n }, _defineProperty(_class2, 'text-' + props.textVariant, Boolean(props.textVariant)), _defineProperty(_class2, 'bg-' + props.bgVariant, Boolean(props.bgVariant)), _defineProperty(_class2, 'border-' + props.borderVariant, Boolean(props.borderVariant)), _defineProperty(_class2, 'border', Boolean(props.borderVariant)), _class2)\n }), childNodes);\n }\n};","import bLink from './link';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bLink: bLink\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import bListGroup from './list-group';\nimport bListGroupItem from './list-group-item';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bListGroup: bListGroup,\n bListGroupItem: bListGroupItem\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n flush: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var componentData = {\n staticClass: 'list-group',\n class: { 'list-group-flush': props.flush }\n };\n\n return h(props.tag, mergeData(data, componentData), children);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\nimport { arrayIncludes } from '../../utils/array';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nvar actionTags = ['a', 'router-link', 'button', 'b-link'];\nvar linkProps = linkPropsFactory();\ndelete linkProps.href.default;\ndelete linkProps.to.default;\n\nexport var props = assign({\n tag: {\n type: String,\n default: 'div'\n },\n action: {\n type: Boolean,\n default: null\n },\n button: {\n type: Boolean,\n default: null\n },\n variant: {\n type: String,\n default: null\n }\n}, linkProps);\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var tag = props.button ? 'button' : !props.href && !props.to ? props.tag : Link;\n var isAction = Boolean(props.href || props.to || props.action || props.button || arrayIncludes(actionTags, props.tag));\n var componentData = {\n staticClass: 'list-group-item',\n class: (_class = {}, _defineProperty(_class, 'list-group-item-' + props.variant, Boolean(props.variant)), _defineProperty(_class, 'list-group-item-action', isAction), _defineProperty(_class, 'active', props.active), _defineProperty(_class, 'disabled', props.disabled), _class),\n attrs: tag === 'button' && props.disabled ? { disabled: true } : {},\n props: props.button ? {} : pluckProps(linkProps, props)\n };\n\n return h(tag, mergeData(data, componentData), children);\n }\n};","import bMedia from './media';\nimport bMediaAside from './media-aside';\nimport bMediaBody from './media-body';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bMedia: bMedia,\n bMediaAside: bMediaAside,\n bMediaBody: bMediaBody\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\nimport MediaBody from './media-body';\nimport MediaAside from './media-aside';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n rightAlign: {\n type: Boolean,\n default: false\n },\n verticalAlign: {\n type: String,\n default: 'top'\n },\n noBody: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n children = _ref.children;\n\n var childNodes = props.noBody ? children : [];\n var $slots = slots();\n\n if (!props.noBody) {\n if ($slots.aside && !props.rightAlign) {\n childNodes.push(h(MediaAside, { staticClass: 'mr-3', props: { verticalAlign: props.verticalAlign } }, $slots.aside));\n }\n\n childNodes.push(h(MediaBody, $slots.default));\n\n if ($slots.aside && props.rightAlign) {\n childNodes.push(h(MediaAside, { staticClass: 'ml-3', props: { verticalAlign: props.verticalAlign } }, $slots.aside));\n }\n }\n\n return h(props.tag, mergeData(data, { staticClass: 'media' }), childNodes);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media-body'\n }), children);\n }\n};","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'div'\n },\n verticalAlign: {\n type: String,\n default: 'top'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'd-flex',\n class: _defineProperty({}, 'align-self-' + props.verticalAlign, props.verticalAlign)\n }), children);\n }\n};","import bModal from './modal';\nimport modalPlugin from '../../directives/modal';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bModal: bModal\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n Vue.use(modalPlugin);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport bBtn from '../button/button';\nimport bBtnClose from '../button/button-close';\nimport idMixin from '../../mixins/id';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\nimport observeDom from '../../utils/observe-dom';\nimport warn from '../../utils/warn';\nimport KeyCodes from '../../utils/key-codes';\nimport BvEvent from '../../utils/bv-event.class';\n\nimport { isVisible, selectAll, select, getBCR, addClass, removeClass, hasClass, setAttr, removeAttr, getAttr, hasAttr, eventOn, eventOff } from '../../utils/dom';\n\n// Selectors for padding/margin adjustments\nvar Selector = {\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n NAVBAR_TOGGLER: '.navbar-toggler'\n\n // ObserveDom config\n};var OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['style', 'class']\n};\n\nexport default {\n mixins: [idMixin, listenOnRootMixin],\n components: { bBtn: bBtn, bBtnClose: bBtnClose },\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n // Modal Header\n var header = h(false);\n if (!this.hideHeader) {\n var modalHeader = $slots['modal-header'];\n if (!modalHeader) {\n var closeButton = h(false);\n if (!this.hideHeaderClose) {\n closeButton = h('b-btn-close', {\n props: {\n disabled: this.is_transitioning,\n ariaLabel: this.headerCloseLabel,\n textVariant: this.headerTextVariant\n },\n on: {\n click: function click(evt) {\n _this.hide('header-close');\n }\n }\n }, [$slots['modal-header-close']]);\n }\n modalHeader = [h(this.titleTag, { class: ['modal-title'] }, [$slots['modal-title'] || this.title]), closeButton];\n }\n header = h('header', {\n ref: 'header',\n class: this.headerClasses,\n attrs: { id: this.safeId('__BV_modal_header_') }\n }, [modalHeader]);\n }\n // Modal Body\n var body = h('div', {\n ref: 'body',\n class: this.bodyClasses,\n attrs: { id: this.safeId('__BV_modal_body_') }\n }, [$slots.default]);\n // Modal Footer\n var footer = h(false);\n if (!this.hideFooter) {\n var modalFooter = $slots['modal-footer'];\n if (!modalFooter) {\n var cancelButton = h(false);\n if (!this.okOnly) {\n cancelButton = h('b-btn', {\n props: {\n variant: this.cancelVariant,\n size: this.buttonSize,\n disabled: this.cancelDisabled || this.busy || this.is_transitioning\n },\n on: {\n click: function click(evt) {\n _this.hide('cancel');\n }\n }\n }, [$slots['modal-cancel'] || this.cancelTitle]);\n }\n var okButton = h('b-btn', {\n props: {\n variant: this.okVariant,\n size: this.buttonSize,\n disabled: this.okDisabled || this.busy || this.is_transitioning\n },\n on: {\n click: function click(evt) {\n _this.hide('ok');\n }\n }\n }, [$slots['modal-ok'] || this.okTitle]);\n modalFooter = [cancelButton, okButton];\n }\n footer = h('footer', {\n ref: 'footer',\n class: this.footerClasses,\n attrs: { id: this.safeId('__BV_modal_footer_') }\n }, [modalFooter]);\n }\n // Assemble Modal Content\n var modalContent = h('div', {\n ref: 'content',\n class: ['modal-content'],\n attrs: {\n tabindex: '-1',\n role: 'document',\n 'aria-labelledby': this.hideHeader ? null : this.safeId('__BV_modal_header_'),\n 'aria-describedby': this.safeId('__BV_modal_body_')\n },\n on: {\n focusout: this.onFocusout,\n click: function click(evt) {\n evt.stopPropagation();\n // https://github.com/bootstrap-vue/bootstrap-vue/issues/1528\n _this.$root.$emit('bv::dropdown::shown');\n }\n }\n }, [header, body, footer]);\n // Modal Dialog wrapper\n var modalDialog = h('div', { class: this.dialogClasses }, [modalContent]);\n // Modal\n var modal = h('div', {\n ref: 'modal',\n class: this.modalClasses,\n directives: [{\n name: 'show',\n rawName: 'v-show',\n value: this.is_visible,\n expression: 'is_visible'\n }],\n attrs: {\n id: this.safeId(),\n role: 'dialog',\n 'aria-hidden': this.is_visible ? null : 'true'\n },\n on: {\n click: this.onClickOut,\n keydown: this.onEsc\n }\n }, [modalDialog]);\n // Wrap modal in transition\n modal = h('transition', {\n props: {\n enterClass: '',\n enterToClass: '',\n enterActiveClass: '',\n leaveClass: '',\n leaveActiveClass: '',\n leaveToClass: ''\n },\n on: {\n 'before-enter': this.onBeforeEnter,\n enter: this.onEnter,\n 'after-enter': this.onAfterEnter,\n 'before-leave': this.onBeforeLeave,\n leave: this.onLeave,\n 'after-leave': this.onAfterLeave\n }\n }, [modal]);\n // Modal Backdrop\n var backdrop = h(false);\n if (!this.hideBackdrop && (this.is_visible || this.is_transitioning)) {\n backdrop = h('div', {\n class: this.backdropClasses,\n attrs: { id: this.safeId('__BV_modal_backdrop_') }\n });\n }\n // Assemble modal and backdrop\n var outer = h(false);\n if (!this.is_hidden) {\n outer = h('div', { attrs: { id: this.safeId('__BV_modal_outer_') } }, [modal, backdrop]);\n }\n // Wrap in DIV to maintain thi.$el reference for hide/show method aceess\n return h('div', {}, [outer]);\n },\n data: function data() {\n return {\n is_hidden: this.lazy || false,\n is_visible: false,\n is_transitioning: false,\n is_show: false,\n is_block: false,\n scrollbarWidth: 0,\n isBodyOverflowing: false,\n return_focus: this.returnFocus || null\n };\n },\n\n model: {\n prop: 'visible',\n event: 'change'\n },\n props: {\n title: {\n type: String,\n default: ''\n },\n titleTag: {\n type: String,\n default: 'h5'\n },\n size: {\n type: String,\n default: 'md'\n },\n centered: {\n type: Boolean,\n default: false\n },\n buttonSize: {\n type: String,\n default: ''\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noCloseOnBackdrop: {\n type: Boolean,\n default: false\n },\n noCloseOnEsc: {\n type: Boolean,\n default: false\n },\n noEnforceFocus: {\n type: Boolean,\n default: false\n },\n headerBgVariant: {\n type: String,\n default: null\n },\n headerBorderVariant: {\n type: String,\n default: null\n },\n headerTextVariant: {\n type: String,\n default: null\n },\n headerClass: {\n type: [String, Array],\n default: null\n },\n bodyBgVariant: {\n type: String,\n default: null\n },\n bodyTextVariant: {\n type: String,\n default: null\n },\n modalClass: {\n type: [String, Array],\n default: null\n },\n bodyClass: {\n type: [String, Array],\n default: null\n },\n footerBgVariant: {\n type: String,\n default: null\n },\n footerBorderVariant: {\n type: String,\n default: null\n },\n footerTextVariant: {\n type: String,\n default: null\n },\n footerClass: {\n type: [String, Array],\n default: null\n },\n hideHeader: {\n type: Boolean,\n default: false\n },\n hideFooter: {\n type: Boolean,\n default: false\n },\n hideHeaderClose: {\n type: Boolean,\n default: false\n },\n hideBackdrop: {\n type: Boolean,\n default: false\n },\n okOnly: {\n type: Boolean,\n default: false\n },\n okDisabled: {\n type: Boolean,\n default: false\n },\n cancelDisabled: {\n type: Boolean,\n default: false\n },\n visible: {\n type: Boolean,\n default: false\n },\n returnFocus: {\n default: null\n },\n headerCloseLabel: {\n type: String,\n default: 'Close'\n },\n cancelTitle: {\n type: String,\n default: 'Cancel'\n },\n okTitle: {\n type: String,\n default: 'OK'\n },\n cancelVariant: {\n type: String,\n default: 'secondary'\n },\n okVariant: {\n type: String,\n default: 'primary'\n },\n lazy: {\n type: Boolean,\n default: false\n },\n busy: {\n type: Boolean,\n default: false\n }\n },\n computed: {\n modalClasses: function modalClasses() {\n return ['modal', {\n fade: !this.noFade,\n show: this.is_show,\n 'd-block': this.is_block\n }, this.modalClass];\n },\n dialogClasses: function dialogClasses() {\n var _ref;\n\n return ['modal-dialog', (_ref = {}, _defineProperty(_ref, 'modal-' + this.size, Boolean(this.size)), _defineProperty(_ref, 'modal-dialog-centered', this.centered), _ref)];\n },\n backdropClasses: function backdropClasses() {\n return ['modal-backdrop', {\n fade: !this.noFade,\n show: this.is_show || this.noFade\n }];\n },\n headerClasses: function headerClasses() {\n var _ref2;\n\n return ['modal-header', (_ref2 = {}, _defineProperty(_ref2, 'bg-' + this.headerBgVariant, Boolean(this.headerBgVariant)), _defineProperty(_ref2, 'text-' + this.headerTextVariant, Boolean(this.headerTextVariant)), _defineProperty(_ref2, 'border-' + this.headerBorderVariant, Boolean(this.headerBorderVariant)), _ref2), this.headerClass];\n },\n bodyClasses: function bodyClasses() {\n var _ref3;\n\n return ['modal-body', (_ref3 = {}, _defineProperty(_ref3, 'bg-' + this.bodyBgVariant, Boolean(this.bodyBgVariant)), _defineProperty(_ref3, 'text-' + this.bodyTextVariant, Boolean(this.bodyTextVariant)), _ref3), this.bodyClass];\n },\n footerClasses: function footerClasses() {\n var _ref4;\n\n return ['modal-footer', (_ref4 = {}, _defineProperty(_ref4, 'bg-' + this.footerBgVariant, Boolean(this.footerBgVariant)), _defineProperty(_ref4, 'text-' + this.footerTextVariant, Boolean(this.footerTextVariant)), _defineProperty(_ref4, 'border-' + this.footerBorderVariant, Boolean(this.footerBorderVariant)), _ref4), this.footerClass];\n }\n },\n watch: {\n visible: function visible(newVal, oldVal) {\n if (newVal === oldVal) {\n return;\n }\n this[newVal ? 'show' : 'hide']();\n }\n },\n methods: {\n // Public Methods\n show: function show() {\n if (this.is_visible) {\n return;\n }\n var showEvt = new BvEvent('show', {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.modal,\n relatedTarget: null\n });\n this.emitEvent(showEvt);\n if (showEvt.defaultPrevented || this.is_visible) {\n // Don't show if canceled\n return;\n }\n if (hasClass(document.body, 'modal-open')) {\n // If another modal is already open, wait for it to close\n this.$root.$once('bv::modal::hidden', this.doShow);\n } else {\n // Show the modal\n this.doShow();\n }\n },\n hide: function hide(trigger) {\n if (!this.is_visible) {\n return;\n }\n var hideEvt = new BvEvent('hide', {\n cancelable: true,\n vueTarget: this,\n target: this.$refs.modal,\n // this could be the trigger element/component reference\n relatedTarget: null,\n isOK: trigger || null,\n trigger: trigger || null,\n cancel: function cancel() {\n // Backwards compatibility\n warn('b-modal: evt.cancel() is deprecated. Please use evt.preventDefault().');\n this.preventDefault();\n }\n });\n if (trigger === 'ok') {\n this.$emit('ok', hideEvt);\n } else if (trigger === 'cancel') {\n this.$emit('cancel', hideEvt);\n }\n this.emitEvent(hideEvt);\n // Hide if not canceled\n if (hideEvt.defaultPrevented || !this.is_visible) {\n return;\n }\n // stop observing for content changes\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n this.is_visible = false;\n this.$emit('change', false);\n },\n\n // Private method to finish showing modal\n doShow: function doShow() {\n var _this2 = this;\n\n // Plce modal in DOM if lazy\n this.is_hidden = false;\n this.$nextTick(function () {\n // We do this in nextTick to ensure the modal is in DOM first before we show it\n _this2.is_visible = true;\n _this2.$emit('change', true);\n // Observe changes in modal content and adjust if necessary\n _this2._observer = observeDom(_this2.$refs.content, _this2.adjustDialog.bind(_this2), OBSERVER_CONFIG);\n });\n },\n\n // Transition Handlers\n onBeforeEnter: function onBeforeEnter() {\n this.is_transitioning = true;\n this.checkScrollbar();\n this.setScrollbar();\n this.adjustDialog();\n addClass(document.body, 'modal-open');\n this.setResizeEvent(true);\n },\n onEnter: function onEnter() {\n this.is_block = true;\n this.$refs.modal.scrollTop = 0;\n },\n onAfterEnter: function onAfterEnter() {\n var _this3 = this;\n\n this.is_show = true;\n this.is_transitioning = false;\n this.$nextTick(function () {\n _this3.focusFirst();\n var shownEvt = new BvEvent('shown', {\n cancelable: false,\n vueTarget: _this3,\n target: _this3.$refs.modal,\n relatedTarget: null\n });\n _this3.emitEvent(shownEvt);\n });\n },\n onBeforeLeave: function onBeforeLeave() {\n this.is_transitioning = true;\n this.setResizeEvent(false);\n },\n onLeave: function onLeave() {\n // Remove the 'show' class\n this.is_show = false;\n },\n onAfterLeave: function onAfterLeave() {\n var _this4 = this;\n\n this.is_block = false;\n this.resetAdjustments();\n this.resetScrollbar();\n this.is_transitioning = false;\n removeClass(document.body, 'modal-open');\n this.$nextTick(function () {\n _this4.is_hidden = _this4.lazy || false;\n _this4.returnFocusTo();\n var hiddenEvt = new BvEvent('hidden', {\n cancelable: false,\n vueTarget: _this4,\n target: _this4.lazy ? null : _this4.$refs.modal,\n relatedTarget: null\n });\n _this4.emitEvent(hiddenEvt);\n });\n },\n\n // Event emitter\n emitEvent: function emitEvent(bvEvt) {\n var type = bvEvt.type;\n this.$emit(type, bvEvt);\n this.$root.$emit('bv::modal::' + type, bvEvt);\n },\n\n // UI Event Handlers\n onClickOut: function onClickOut(evt) {\n // If backdrop clicked, hide modal\n if (this.is_visible && !this.noCloseOnBackdrop) {\n this.hide('backdrop');\n }\n },\n onEsc: function onEsc(evt) {\n // If ESC pressed, hide modal\n if (evt.keyCode === KeyCodes.ESC && this.is_visible && !this.noCloseOnEsc) {\n this.hide('esc');\n }\n },\n onFocusout: function onFocusout(evt) {\n // If focus leaves modal, bring it back\n // 'focusout' Event Listener bound on content\n var content = this.$refs.content;\n if (!this.noEnforceFocus && this.is_visible && content && !content.contains(evt.relatedTarget)) {\n content.focus();\n }\n },\n\n // Resize Listener\n setResizeEvent: function setResizeEvent(on) {\n var _this5 = this;\n\n ;['resize', 'orientationchange'].forEach(function (evtName) {\n if (on) {\n eventOn(window, evtName, _this5.adjustDialog);\n } else {\n eventOff(window, evtName, _this5.adjustDialog);\n }\n });\n },\n\n // Root Listener handlers\n showHandler: function showHandler(id, triggerEl) {\n if (id === this.id) {\n this.return_focus = triggerEl || null;\n this.show();\n }\n },\n hideHandler: function hideHandler(id) {\n if (id === this.id) {\n this.hide();\n }\n },\n modalListener: function modalListener(bvEvt) {\n // If another modal opens, close this one\n if (bvEvt.vueTarget !== this) {\n this.hide();\n }\n },\n\n // Focus control handlers\n focusFirst: function focusFirst() {\n // Don't try and focus if we are SSR\n if (typeof document === 'undefined') {\n return;\n }\n var content = this.$refs.content;\n var modal = this.$refs.modal;\n var activeElement = document.activeElement;\n if (activeElement && content && content.contains(activeElement)) {\n // If activeElement is child of content, no need to change focus\n } else if (content) {\n if (modal) {\n modal.scrollTop = 0;\n }\n // Focus the modal content wrapper\n content.focus();\n }\n },\n returnFocusTo: function returnFocusTo() {\n // Prefer returnFocus prop over event specified return_focus value\n var el = this.returnFocus || this.return_focus || null;\n if (typeof el === 'string') {\n // CSS Selector\n el = select(el);\n }\n if (el) {\n el = el.$el || el;\n if (isVisible(el)) {\n el.focus();\n }\n }\n },\n\n // Utility methods\n getScrollbarWidth: function getScrollbarWidth() {\n var scrollDiv = document.createElement('div');\n scrollDiv.className = 'modal-scrollbar-measure';\n document.body.appendChild(scrollDiv);\n this.scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n },\n adjustDialog: function adjustDialog() {\n if (!this.is_visible) {\n return;\n }\n var modal = this.$refs.modal;\n var isModalOverflowing = modal.scrollHeight > document.documentElement.clientHeight;\n if (!this.isBodyOverflowing && isModalOverflowing) {\n modal.style.paddingLeft = this.scrollbarWidth + 'px';\n }\n if (this.isBodyOverflowing && !isModalOverflowing) {\n modal.style.paddingRight = this.scrollbarWidth + 'px';\n }\n },\n resetAdjustments: function resetAdjustments() {\n var modal = this.$refs.modal;\n if (modal) {\n modal.style.paddingLeft = '';\n modal.style.paddingRight = '';\n }\n },\n checkScrollbar: function checkScrollbar() {\n var rect = getBCR(document.body);\n this.isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n },\n setScrollbar: function setScrollbar() {\n if (this.isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n var computedStyle = window.getComputedStyle;\n var body = document.body;\n var scrollbarWidth = this.scrollbarWidth;\n // Adjust fixed content padding\n selectAll(Selector.FIXED_CONTENT).forEach(function (el) {\n var actualPadding = el.style.paddingRight;\n var calculatedPadding = computedStyle(el).paddingRight || 0;\n setAttr(el, 'data-padding-right', actualPadding);\n el.style.paddingRight = parseFloat(calculatedPadding) + scrollbarWidth + 'px';\n });\n // Adjust sticky content margin\n selectAll(Selector.STICKY_CONTENT).forEach(function (el) {\n var actualMargin = el.style.marginRight;\n var calculatedMargin = computedStyle(el).marginRight || 0;\n setAttr(el, 'data-margin-right', actualMargin);\n el.style.marginRight = parseFloat(calculatedMargin) - scrollbarWidth + 'px';\n });\n // Adjust navbar-toggler margin\n selectAll(Selector.NAVBAR_TOGGLER).forEach(function (el) {\n var actualMargin = el.style.marginRight;\n var calculatedMargin = computedStyle(el).marginRight || 0;\n setAttr(el, 'data-margin-right', actualMargin);\n el.style.marginRight = parseFloat(calculatedMargin) + scrollbarWidth + 'px';\n });\n // Adjust body padding\n var actualPadding = body.style.paddingRight;\n var calculatedPadding = computedStyle(body).paddingRight;\n setAttr(body, 'data-padding-right', actualPadding);\n body.style.paddingRight = parseFloat(calculatedPadding) + scrollbarWidth + 'px';\n }\n },\n resetScrollbar: function resetScrollbar() {\n // Restore fixed content padding\n selectAll(Selector.FIXED_CONTENT).forEach(function (el) {\n if (hasAttr(el, 'data-padding-right')) {\n el.style.paddingRight = getAttr(el, 'data-padding-right') || '';\n removeAttr(el, 'data-padding-right');\n }\n });\n // Restore sticky content and navbar-toggler margin\n selectAll(Selector.STICKY_CONTENT + ', ' + Selector.NAVBAR_TOGGLER).forEach(function (el) {\n if (hasAttr(el, 'data-margin-right')) {\n el.style.marginRight = getAttr(el, 'data-margin-right') || '';\n removeAttr(el, 'data-margin-right');\n }\n });\n // Restore body padding\n var body = document.body;\n if (hasAttr(body, 'data-padding-right')) {\n body.style.paddingRight = getAttr(body, 'data-padding-right') || '';\n removeAttr(body, 'data-padding-right');\n }\n }\n },\n created: function created() {\n // create non-reactive property\n this._observer = null;\n },\n mounted: function mounted() {\n // Measure scrollbar\n this.getScrollbarWidth();\n // Listen for events from others to either open or close ourselves\n this.listenOnRoot('bv::show::modal', this.showHandler);\n this.listenOnRoot('bv::hide::modal', this.hideHandler);\n // Listen for bv:modal::show events, and close ourselves if the opening modal not us\n this.listenOnRoot('bv::modal::show', this.modalListener);\n // Initially show modal?\n if (this.visible === true) {\n this.show();\n }\n },\n beforeDestroy: function beforeDestroy() {\n // Ensure everything is back to normal\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n this.setResizeEvent(false);\n // Re-adjust body/navbar/fixed padding/margins (if needed)\n removeClass(document.body, 'modal-open');\n this.resetAdjustments();\n this.resetScrollbar();\n }\n};","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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nimport { assign, defineProperty, defineProperties, readonlyDescriptor } from '../utils/object';\n\nvar BvEvent = function () {\n function BvEvent(type) {\n var eventInit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n _classCallCheck(this, BvEvent);\n\n // Start by emulating native Event constructor.\n if (!type) {\n throw new TypeError('Failed to construct \\'' + this.constructor.name + '\\'. 1 argument required, ' + arguments.length + ' given.');\n }\n // Assign defaults first, the eventInit,\n // and the type last so it can't be overwritten.\n assign(this, BvEvent.defaults(), eventInit, { type: type });\n // Freeze some props as readonly, but leave them enumerable.\n defineProperties(this, {\n type: readonlyDescriptor(),\n cancelable: readonlyDescriptor(),\n nativeEvent: readonlyDescriptor(),\n target: readonlyDescriptor(),\n relatedTarget: readonlyDescriptor(),\n vueTarget: readonlyDescriptor()\n });\n // Create a private variable using closure scoping.\n var defaultPrevented = false;\n // Recreate preventDefault method. One way setter.\n this.preventDefault = function preventDefault() {\n if (this.cancelable) {\n defaultPrevented = true;\n }\n };\n // Create 'defaultPrevented' publicly accessible prop\n // that can only be altered by the preventDefault method.\n defineProperty(this, 'defaultPrevented', {\n enumerable: true,\n get: function get() {\n return defaultPrevented;\n }\n });\n }\n\n _createClass(BvEvent, null, [{\n key: 'defaults',\n value: function defaults() {\n return {\n type: '',\n cancelable: true,\n nativeEvent: null,\n target: null,\n relatedTarget: null,\n vueTarget: null\n };\n }\n }]);\n\n return BvEvent;\n}();\n\nexport default BvEvent;","import bModal from './modal';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bModal: bModal\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { bindTargets, unbindTargets } from '../../utils/target';\nimport { setAttr, removeAttr } from '../../utils/dom';\n\nvar listenTypes = { click: true };\n\nexport default {\n // eslint-disable-next-line no-shadow-restricted-names\n bind: function bind(el, binding, vnode) {\n bindTargets(vnode, binding, listenTypes, function (_ref) {\n var targets = _ref.targets,\n vnode = _ref.vnode;\n\n targets.forEach(function (target) {\n vnode.context.$root.$emit('bv::show::modal', target, vnode.elm);\n });\n });\n if (el.tagName !== 'BUTTON') {\n // If element is not a button, we add `role=\"button\"` for accessibility\n setAttr(el, 'role', 'button');\n }\n },\n unbind: function unbind(el, binding, vnode) {\n unbindTargets(vnode, binding, listenTypes);\n if (el.tagName !== 'BUTTON') {\n // If element is not a button, we add `role=\"button\"` for accessibility\n removeAttr(el, 'role', 'button');\n }\n }\n};","import bNav from './nav';\nimport bNavItem from './nav-item';\nimport bNavText from './nav-text';\nimport bNavForm from './nav-form';\nimport bNavItemDropdown from './nav-item-dropdown';\nimport dropdownPlugin from '../dropdown';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bNav: bNav,\n bNavItem: bNavItem,\n bNavText: bNavText,\n bNavForm: bNavForm,\n bNavItemDropdown: bNavItemDropdown,\n bNavItemDd: bNavItemDropdown,\n bNavDropdown: bNavItemDropdown,\n bNavDd: bNavItemDropdown\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n Vue.use(dropdownPlugin);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import { mergeData } from 'vue-functional-data-merge';\nimport warn from '../../utils/warn';\n\nexport var props = {\n tag: {\n type: String,\n default: 'ul'\n },\n fill: {\n type: Boolean,\n default: false\n },\n justified: {\n type: Boolean,\n default: false\n },\n tabs: {\n type: Boolean,\n default: false\n },\n pills: {\n type: Boolean,\n default: false\n },\n vertical: {\n type: Boolean,\n default: false\n },\n isNavBar: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n if (props.isNavBar) {\n warn(\"b-nav: Prop 'is-nav-bar' is deprecated. Please use component '<b-navbar-nav>' instead.\");\n }\n return h(props.tag, mergeData(data, {\n class: {\n 'nav': !props.isNavBar,\n 'navbar-nav': props.isNavBar,\n 'nav-tabs': props.tabs && !props.isNavBar,\n 'nav-pills': props.pills && !props.isNavBar,\n 'flex-column': props.vertical && !props.isNavBar,\n 'nav-fill': props.fill,\n 'nav-justified': props.justified\n }\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\nimport Link, { propsFactory as linkPropsFactory } from '../link/link';\n\nexport var props = linkPropsFactory();\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h('li', mergeData(data, {\n staticClass: 'nav-item'\n }), [h(Link, { staticClass: 'nav-link', props: props }, children)]);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'span'\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, { staticClass: 'navbar-text' }), children);\n }\n};","import Form from '../form/form';\nimport { mergeData } from 'vue-functional-data-merge';\n\nexport default {\n functional: true,\n props: {\n id: {\n type: String,\n default: null\n }\n },\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(Form, mergeData(data, { attrs: { id: props.id }, props: { inline: true } }), children);\n }\n};","import idMixin from '../../mixins/id';\nimport dropdownMixin from '../../mixins/dropdown';\n\nexport default {\n mixins: [idMixin, dropdownMixin],\n render: function render(h) {\n var button = h('a', {\n class: this.toggleClasses,\n ref: 'toggle',\n attrs: {\n href: '#',\n id: this.safeId('_BV_button_'),\n disabled: this.disabled,\n 'aria-haspopup': 'true',\n 'aria-expanded': this.visible ? 'true' : 'false'\n },\n on: {\n click: this.toggle,\n keydown: this.toggle // space, enter, down\n }\n }, [this.$slots['button-content'] || this.$slots.text || h('span', { domProps: { innerHTML: this.text } })]);\n var menu = h('div', {\n class: this.menuClasses,\n ref: 'menu',\n attrs: { 'aria-labelledby': this.safeId('_BV_button_') },\n on: {\n mouseover: this.onMouseOver,\n keydown: this.onKeydown // tab, up, down, esc\n }\n }, [this.$slots.default]);\n return h('li', { attrs: { id: this.safeId() }, class: this.dropdownClasses }, [button, menu]);\n },\n\n computed: {\n isNav: function isNav() {\n // Signal to dropdown mixin that we are in a navbar\n return true;\n },\n dropdownClasses: function dropdownClasses() {\n return ['nav-item', 'b-nav-dropdown', 'dropdown', this.dropup ? 'dropup' : '', this.visible ? 'show' : ''];\n },\n toggleClasses: function toggleClasses() {\n return ['nav-link', this.noCaret ? '' : 'dropdown-toggle', this.disabled ? 'disabled' : '', this.extraToggleClasses ? this.extraToggleClasses : ''];\n },\n menuClasses: function menuClasses() {\n return ['dropdown-menu', this.right ? 'dropdown-menu-right' : 'dropdown-menu-left', this.visible ? 'show' : '', this.extraMenuClasses ? this.extraMenuClasses : ''];\n }\n },\n props: {\n noCaret: {\n type: Boolean,\n default: false\n },\n extraToggleClasses: {\n // Extra Toggle classes\n type: String,\n default: ''\n },\n extraMenuClasses: {\n // Extra Menu classes\n type: String,\n default: ''\n },\n role: {\n type: String,\n default: 'menu'\n }\n }\n};","import bNavbar from './navbar';\nimport bNavbarNav from './navbar-nav';\nimport bNavbarBrand from './navbar-brand';\nimport bNavbarToggle from './navbar-toggle';\nimport navPlugin from '../nav';\nimport collapsePlugin from '../collapse';\nimport dropdownPlugin from '../dropdown';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bNavbar: bNavbar,\n bNavbarNav: bNavbarNav,\n bNavbarBrand: bNavbarBrand,\n bNavbarToggle: bNavbarToggle,\n bNavToggle: bNavbarToggle\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n Vue.use(navPlugin);\n Vue.use(collapsePlugin);\n Vue.use(dropdownPlugin);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'nav'\n },\n type: {\n type: String,\n default: 'light'\n },\n variant: {\n type: String\n },\n toggleable: {\n type: [Boolean, String],\n default: false\n },\n toggleBreakpoint: {\n // Deprecated. Set toggleable to a string breakpoint\n type: String,\n default: null\n },\n fixed: {\n type: String\n },\n sticky: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var _class;\n\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var breakpoint = props.toggleBreakpoint || (props.toggleable === true ? 'sm' : props.toggleable) || 'sm';\n return h(props.tag, mergeData(data, {\n staticClass: 'navbar',\n class: (_class = {}, _defineProperty(_class, 'navbar-' + props.type, Boolean(props.type)), _defineProperty(_class, 'bg-' + props.variant, Boolean(props.variant)), _defineProperty(_class, 'fixed-' + props.fixed, Boolean(props.fixed)), _defineProperty(_class, 'sticky-top', props.sticky), _defineProperty(_class, 'navbar-expand-' + breakpoint, props.toggleable !== false), _class)\n }), children);\n }\n};","import { mergeData } from 'vue-functional-data-merge';\n\nexport var props = {\n tag: {\n type: String,\n default: 'ul'\n },\n fill: {\n type: Boolean,\n default: false\n },\n justified: {\n type: Boolean,\n default: false\n }\n};\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n return h(props.tag, mergeData(data, {\n staticClass: 'navbar-nav',\n class: {\n 'nav-fill': props.fill,\n 'nav-justified': props.justified\n }\n }), children);\n }\n};","import Link, { propsFactory } from '../link/link';\nimport { mergeData } from 'vue-functional-data-merge';\nimport pluckProps from '../../utils/pluck-props';\nimport { assign } from '../../utils/object';\n\nvar linkProps = propsFactory();\nlinkProps.href.default = undefined;\nlinkProps.to.default = undefined;\n\nexport var props = assign(linkProps, {\n tag: {\n type: String,\n default: 'div'\n }\n});\n\nexport default {\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n\n var isLink = Boolean(props.to || props.href);\n var tag = isLink ? Link : props.tag;\n\n return h(tag, mergeData(data, {\n staticClass: 'navbar-brand',\n props: isLink ? pluckProps(linkProps, props) : {}\n }), children);\n }\n};","import listenOnRootMixin from '../../mixins/listen-on-root';\n\nexport default {\n mixins: [listenOnRootMixin],\n render: function render(h) {\n return h('button', {\n class: ['navbar-toggler'],\n attrs: {\n type: 'button',\n 'aria-label': this.label,\n 'aria-controls': this.target,\n 'aria-expanded': this.toggleState ? 'true' : 'false'\n },\n on: { click: this.onClick }\n }, [this.$slots.default || h('span', { class: ['navbar-toggler-icon'] })]);\n },\n data: function data() {\n return {\n toggleState: false\n };\n },\n\n props: {\n label: {\n type: String,\n default: 'Toggle navigation'\n },\n target: {\n type: String,\n required: true\n }\n },\n methods: {\n onClick: function onClick() {\n this.$root.$emit('bv::toggle::collapse', this.target);\n },\n handleStateEvt: function handleStateEvt(id, state) {\n if (id === this.target) {\n this.toggleState = state;\n }\n }\n },\n created: function created() {\n this.listenOnRoot('bv::collapse::state', this.handleStateEvt);\n }\n};","import bPagination from './pagination';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bPagination: bPagination\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import paginationMixin from '../../mixins/pagination';\nimport { isVisible } from '../../utils/dom';\n\nvar props = {\n perPage: {\n type: Number,\n default: 20\n },\n totalRows: {\n type: Number,\n default: 20\n },\n ariaControls: {\n type: String,\n default: null\n }\n\n // Our render function is brought in from the pagination mixin\n};export default {\n mixins: [paginationMixin],\n props: props,\n computed: {\n numberOfPages: function numberOfPages() {\n var result = Math.ceil(this.totalRows / this.perPage);\n return result < 1 ? 1 : result;\n }\n },\n methods: {\n // These methods are used by the render function\n onClick: function onClick(num, evt) {\n var _this = this;\n\n // Handle edge cases where number of pages has changed (i.e. if perPage changes)\n if (num > this.numberOfPages) {\n num = this.numberOfPages;\n } else if (num < 1) {\n num = 1;\n }\n this.currentPage = num;\n this.$nextTick(function () {\n // Keep the current button focused if possible\n var target = evt.target;\n if (isVisible(target) && _this.$el.contains(target) && target.focus) {\n target.focus();\n } else {\n _this.focusCurrent();\n }\n });\n this.$emit('change', this.currentPage);\n },\n makePage: function makePage(pagenum) {\n return pagenum;\n },\n linkProps: function linkProps(pagenum) {\n return { href: '#' };\n }\n }\n};","/*\n * Comon props, computed, data, render function, and methods for b-pagination and b-pagination-nav\n */\n\nimport range from '../utils/range';\nimport KeyCodes from '../utils/key-codes';\nimport { isVisible, isDisabled, selectAll, getAttr } from '../utils/dom';\nimport bLink from '../components/link/link';\n\n// Make an array of N to N+X\nfunction makePageArray(startNum, numPages) {\n return range(numPages).map(function (value, index) {\n return { number: index + startNum, className: null };\n });\n}\n\n// Threshold of limit size when we start/stop showing ellipsis\nvar ELLIPSIS_THRESHOLD = 3;\n\n// Props object\nvar props = {\n disabled: {\n type: Boolean,\n default: false\n },\n value: {\n type: Number,\n default: 1\n },\n limit: {\n type: Number,\n default: 5\n },\n size: {\n type: String,\n default: 'md'\n },\n align: {\n type: String,\n default: 'left'\n },\n hideGotoEndButtons: {\n type: Boolean,\n default: false\n },\n ariaLabel: {\n type: String,\n default: 'Pagination'\n },\n labelFirstPage: {\n type: String,\n default: 'Goto first page'\n },\n firstText: {\n type: String,\n default: '«'\n },\n labelPrevPage: {\n type: String,\n default: 'Goto previous page'\n },\n prevText: {\n type: String,\n default: '‹'\n },\n labelNextPage: {\n type: String,\n default: 'Goto next page'\n },\n nextText: {\n type: String,\n default: '›'\n },\n labelLastPage: {\n type: String,\n default: 'Goto last page'\n },\n lastText: {\n type: String,\n default: '»'\n },\n labelPage: {\n type: String,\n default: 'Goto page'\n },\n hideEllipsis: {\n type: Boolean,\n default: false\n },\n ellipsisText: {\n type: String,\n default: '…'\n }\n};\n\nexport default {\n components: { bLink: bLink },\n data: function data() {\n return {\n showFirstDots: false,\n showLastDots: false,\n currentPage: this.value\n };\n },\n\n props: props,\n render: function render(h) {\n var _this = this;\n\n var buttons = [];\n\n // Factory function for prev/next/first/last buttons\n var makeEndBtns = function makeEndBtns(linkTo, ariaLabel, btnText, pageTest) {\n var button = void 0;\n pageTest = pageTest || linkTo; // Page # to test against to disable\n if (_this.disabled || _this.isActive(pageTest)) {\n button = h('li', {\n class: ['page-item', 'disabled'],\n attrs: { role: 'none presentation', 'aria-hidden': 'true' }\n }, [h('span', {\n class: ['page-link'],\n domProps: { innerHTML: btnText }\n })]);\n } else {\n button = h('li', {\n class: ['page-item'],\n attrs: { role: 'none presentation' }\n }, [h('b-link', {\n class: ['page-link'],\n props: _this.linkProps(linkTo),\n attrs: {\n role: 'menuitem',\n tabindex: '-1',\n 'aria-label': ariaLabel,\n 'aria-controls': _this.ariaControls || null\n },\n on: {\n click: function click(evt) {\n _this.onClick(linkTo, evt);\n },\n keydown: function keydown(evt) {\n // Links don't normally respond to SPACE, so we add that functionality\n if (evt.keyCode === KeyCodes.SPACE) {\n evt.preventDefault();\n _this.onClick(linkTo, evt);\n }\n }\n }\n }, [h('span', {\n attrs: { 'aria-hidden': 'true' },\n domProps: { innerHTML: btnText }\n })])]);\n }\n return button;\n };\n\n // Ellipsis factory\n var makeEllipsis = function makeEllipsis() {\n return h('li', {\n class: ['page-item', 'disabled', 'd-none', 'd-sm-flex'],\n attrs: { role: 'separator' }\n }, [h('span', {\n class: ['page-link'],\n domProps: { innerHTML: _this.ellipsisText }\n })]);\n };\n\n // Goto First Page button\n buttons.push(this.hideGotoEndButtons ? h(false) : makeEndBtns(1, this.labelFirstPage, this.firstText));\n\n // Goto Previous page button\n buttons.push(makeEndBtns(this.currentPage - 1, this.labelPrevPage, this.prevText, 1));\n\n // First Ellipsis Bookend\n buttons.push(this.showFirstDots ? makeEllipsis() : h(false));\n\n // Individual Page links\n this.pageList.forEach(function (page) {\n var inner = void 0;\n var pageNum = _this.makePage(page.number);\n if (_this.disabled) {\n inner = h('span', {\n class: ['page-link'],\n domProps: { innerHTML: pageNum }\n });\n } else {\n var active = _this.isActive(page.number);\n inner = h('b-link', {\n class: _this.pageLinkClasses(page),\n props: _this.linkProps(page.number),\n attrs: {\n role: 'menuitemradio',\n tabindex: active ? '0' : '-1',\n 'aria-controls': _this.ariaControls || null,\n 'aria-label': _this.labelPage + ' ' + page.number,\n 'aria-checked': active ? 'true' : 'false',\n 'aria-posinset': page.number,\n 'aria-setsize': _this.numberOfPages\n },\n domProps: { innerHTML: pageNum },\n on: {\n click: function click(evt) {\n _this.onClick(page.number, evt);\n },\n keydown: function keydown(evt) {\n if (evt.keyCode === KeyCodes.SPACE) {\n evt.preventDefault();\n _this.onClick(page.number, evt);\n }\n }\n }\n });\n }\n buttons.push(h('li', {\n key: page.number,\n class: _this.pageItemClasses(page),\n attrs: { role: 'none presentation' }\n }, [inner]));\n });\n\n // Last Ellipsis Bookend\n buttons.push(this.showLastDots ? makeEllipsis() : h(false));\n\n // Goto Next page button\n buttons.push(makeEndBtns(this.currentPage + 1, this.labelNextPage, this.nextText, this.numberOfPages));\n\n // Goto Last Page button\n buttons.push(this.hideGotoEndButtons ? h(false) : makeEndBtns(this.numberOfPages, this.labelLastPage, this.lastText));\n\n // Assemble the paginatiom buttons\n var pagination = h('ul', {\n ref: 'ul',\n class: ['pagination', 'b-pagination', this.btnSize, this.alignment],\n attrs: {\n role: 'menubar',\n 'aria-disabled': this.disabled ? 'true' : 'false',\n 'aria-label': this.ariaLabel || null\n },\n on: {\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n var shift = evt.shiftKey;\n if (keyCode === KeyCodes.LEFT) {\n evt.preventDefault();\n shift ? _this.focusFirst() : _this.focusPrev();\n } else if (keyCode === KeyCodes.RIGHT) {\n evt.preventDefault();\n shift ? _this.focusLast() : _this.focusNext();\n }\n }\n }\n }, buttons);\n\n // if we are pagination-nav, wrap in '<nav>' wrapper\n return this.isNav ? h('nav', {}, [pagination]) : pagination;\n },\n\n watch: {\n currentPage: function currentPage(newPage, oldPage) {\n if (newPage !== oldPage) {\n this.$emit('input', newPage);\n }\n },\n value: function value(newValue, oldValue) {\n if (newValue !== oldValue) {\n this.currentPage = newValue;\n }\n }\n },\n computed: {\n btnSize: function btnSize() {\n return this.size ? 'pagination-' + this.size : '';\n },\n alignment: function alignment() {\n if (this.align === 'center') {\n return 'justify-content-center';\n } else if (this.align === 'end' || this.align === 'right') {\n return 'justify-content-end';\n }\n return '';\n },\n pageList: function pageList() {\n // Sanity checks\n if (this.currentPage > this.numberOfPages) {\n this.currentPage = this.numberOfPages;\n } else if (this.currentPage < 1) {\n this.currentPage = 1;\n }\n // - Hide first ellipsis marker\n this.showFirstDots = false;\n // - Hide last ellipsis marker\n this.showLastDots = false;\n var numLinks = this.limit;\n var startNum = 1;\n if (this.numberOfPages <= this.limit) {\n // Special Case: Less pages available than the limit of displayed pages\n numLinks = this.numberOfPages;\n } else if (this.currentPage < this.limit - 1 && this.limit > ELLIPSIS_THRESHOLD) {\n // We are near the beginning of the page list\n if (!this.hideEllipsis) {\n numLinks = this.limit - 1;\n this.showLastDots = true;\n }\n } else if (this.numberOfPages - this.currentPage + 2 < this.limit && this.limit > ELLIPSIS_THRESHOLD) {\n // We are near the end of the list\n if (!this.hideEllipsis) {\n this.showFirstDots = true;\n numLinks = this.limit - 1;\n }\n startNum = this.numberOfPages - numLinks + 1;\n } else {\n // We are somewhere in the middle of the page list\n if (this.limit > ELLIPSIS_THRESHOLD && !this.hideEllipsis) {\n this.showFirstDots = true;\n this.showLastDots = true;\n numLinks = this.limit - 2;\n }\n startNum = this.currentPage - Math.floor(numLinks / 2);\n }\n // Sanity checks\n if (startNum < 1) {\n startNum = 1;\n } else if (startNum > this.numberOfPages - numLinks) {\n startNum = this.numberOfPages - numLinks + 1;\n }\n // Generate list of page numbers\n var pages = makePageArray(startNum, numLinks);\n // We limit to a total of 3 page buttons on small screens\n // Ellipsis will also be hidden on small screens\n if (pages.length > 3) {\n var idx = this.currentPage - startNum;\n if (idx === 0) {\n // Keep leftmost 3 buttons visible\n for (var i = 3; i < pages.length; i++) {\n pages[i].className = 'd-none d-sm-flex';\n }\n } else if (idx === pages.length - 1) {\n // Keep rightmost 3 buttons visible\n for (var _i = 0; _i < pages.length - 3; _i++) {\n pages[_i].className = 'd-none d-sm-flex';\n }\n } else {\n // hide left button(s)\n for (var _i2 = 0; _i2 < idx - 1; _i2++) {\n pages[_i2].className = 'd-none d-sm-flex';\n }\n // hide right button(s)\n for (var _i3 = pages.length - 1; _i3 > idx + 1; _i3--) {\n pages[_i3].className = 'd-none d-sm-flex';\n }\n }\n }\n return pages;\n }\n },\n methods: {\n isActive: function isActive(pagenum) {\n return pagenum === this.currentPage;\n },\n pageItemClasses: function pageItemClasses(page) {\n return ['page-item', this.disabled ? 'disabled' : '', this.isActive(page.number) ? 'active' : '', page.className];\n },\n pageLinkClasses: function pageLinkClasses(page) {\n return ['page-link', this.disabled ? 'disabled' : '',\n // Interim workaround to get better focus styling of active button\n // See https://github.com/twbs/bootstrap/issues/24838\n this.isActive(page.number) ? 'btn-primary' : ''];\n },\n getButtons: function getButtons() {\n // Return only buttons that are visible\n return selectAll('a.page-link', this.$el).filter(function (btn) {\n return isVisible(btn);\n });\n },\n setBtnFocus: function setBtnFocus(btn) {\n this.$nextTick(function () {\n btn.focus();\n });\n },\n focusCurrent: function focusCurrent() {\n var _this2 = this;\n\n var btn = this.getButtons().find(function (el) {\n return parseInt(getAttr(el, 'aria-posinset'), 10) === _this2.currentPage;\n });\n if (btn && btn.focus) {\n this.setBtnFocus(btn);\n } else {\n // Fallback if current page is not in button list\n this.focusFirst();\n }\n },\n focusFirst: function focusFirst() {\n var btn = this.getButtons().find(function (el) {\n return !isDisabled(el);\n });\n if (btn && btn.focus && btn !== document.activeElement) {\n this.setBtnFocus(btn);\n }\n },\n focusLast: function focusLast() {\n var btn = this.getButtons().reverse().find(function (el) {\n return !isDisabled(el);\n });\n if (btn && btn.focus && btn !== document.activeElement) {\n this.setBtnFocus(btn);\n }\n },\n focusPrev: function focusPrev() {\n var buttons = this.getButtons();\n var idx = buttons.indexOf(document.activeElement);\n if (idx > 0 && !isDisabled(buttons[idx - 1]) && buttons[idx - 1].focus) {\n this.setBtnFocus(buttons[idx - 1]);\n }\n },\n focusNext: function focusNext() {\n var buttons = this.getButtons();\n var idx = buttons.indexOf(document.activeElement);\n var cnt = buttons.length - 1;\n if (idx < cnt && !isDisabled(buttons[idx + 1]) && buttons[idx + 1].focus) {\n this.setBtnFocus(buttons[idx + 1]);\n }\n }\n }\n};","/**\n * @param {number} length\n * @return {Array}\n */\nexport default (function (length) {\n return Array.apply(null, { length: length });\n});","import bPaginationNav from './pagination-nav';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bPaginationNav: bPaginationNav\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport { assign } from '../../utils/object';\nimport paginationMixin from '../../mixins/pagination';\nimport { pickLinkProps } from '../link/link';\n\n// Props needed for router links\nvar routerProps = pickLinkProps('activeClass', 'exactActiveClass', 'append', 'exact', 'replace', 'target', 'rel');\n\n// Props object\nvar props = assign(\n// pagination-nav specific props\n{\n numberOfPages: {\n type: Number,\n default: 1\n },\n baseUrl: {\n type: String,\n default: '/'\n },\n useRouter: {\n type: Boolean,\n default: false\n },\n linkGen: {\n type: Function,\n default: null\n },\n pageGen: {\n type: Function,\n default: null\n }\n},\n// Router specific props\nrouterProps);\n// Our render function is brought in via the pagination mixin\nexport default {\n mixins: [paginationMixin],\n props: props,\n computed: {\n // Used by render function to trigger wraping in '<nav>' element\n isNav: function isNav() {\n return true;\n }\n },\n methods: {\n onClick: function onClick(pageNum, evt) {\n this.currentPage = pageNum;\n },\n makePage: function makePage(pagenum) {\n if (this.pageGen && typeof this.pageGen === 'function') {\n return this.pageGen(pagenum);\n }\n return pagenum;\n },\n makeLink: function makeLink(pagenum) {\n if (this.linkGen && typeof this.linkGen === 'function') {\n return this.linkGen(pagenum);\n }\n var link = '' + this.baseUrl + pagenum;\n return this.useRouter ? { path: link } : link;\n },\n linkProps: function linkProps(pagenum) {\n var link = this.makeLink(pagenum);\n var props = {\n href: typeof link === 'string' ? link : void 0,\n target: this.target || null,\n rel: this.rel || null,\n disabled: this.disabled\n };\n if (this.useRouter || (typeof link === 'undefined' ? 'undefined' : _typeof(link)) === 'object') {\n props = assign(props, {\n to: link,\n exact: this.exact,\n activeClass: this.activeClass,\n exactActiveClass: this.exactActiveClass,\n append: this.append,\n replace: this.replace\n });\n }\n return props;\n }\n }\n};","import bPopover from './popover';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bPopover: bPopover\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import PopOver from '../../utils/popover.class';\nimport warn from '../../utils/warn';\nimport toolpopMixin from '../../mixins/toolpop';\n\nexport default {\n mixins: [toolpopMixin],\n render: function render(h) {\n return h('div', {\n class: ['d-none'],\n style: { display: 'none' },\n attrs: { 'aria-hidden': true }\n }, [h('div', { ref: 'title' }, this.$slots.title), h('div', { ref: 'content' }, this.$slots.default)]);\n },\n data: function data() {\n return {};\n },\n\n props: {\n title: {\n type: String,\n default: ''\n },\n content: {\n type: String,\n default: ''\n },\n triggers: {\n type: [String, Array],\n default: 'click'\n },\n placement: {\n type: String,\n default: 'right'\n }\n },\n methods: {\n createToolpop: function createToolpop() {\n // getTarget is in toolpop mixin\n var target = this.getTarget();\n if (target) {\n this._toolpop = new PopOver(target, this.getConfig(), this.$root);\n } else {\n this._toolpop = null;\n warn(\"b-popover: 'target' element not found!\");\n }\n return this._toolpop;\n }\n }\n};","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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\nimport ToolTip from './tooltip.class';\nimport { assign } from './object';\nimport { select, addClass, removeClass, getAttr } from './dom';\n\nvar NAME = 'popover';\nvar CLASS_PREFIX = 'bs-popover';\nvar BSCLS_PREFIX_REGEX = new RegExp('\\\\b' + CLASS_PREFIX + '\\\\S+', 'g');\n\nvar Defaults = assign({}, ToolTip.Default, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '<div class=\"popover\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<h3 class=\"popover-header\"></h3>' + '<div class=\"popover-body\"></div></div>'\n});\n\nvar ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n};\n\nvar Selector = {\n TITLE: '.popover-header',\n CONTENT: '.popover-body'\n\n /* istanbul ignore next: dificult to test in Jest/JSDOM environment */\n};\nvar PopOver = function (_ToolTip) {\n _inherits(PopOver, _ToolTip);\n\n function PopOver() {\n _classCallCheck(this, PopOver);\n\n return _possibleConstructorReturn(this, (PopOver.__proto__ || Object.getPrototypeOf(PopOver)).apply(this, arguments));\n }\n\n _createClass(PopOver, [{\n key: 'isWithContent',\n\n\n // Method overrides\n\n value: function isWithContent(tip) {\n tip = tip || this.$tip;\n if (!tip) {\n return false;\n }\n var hasTitle = Boolean((select(Selector.TITLE, tip) || {}).innerHTML);\n var hasContent = Boolean((select(Selector.CONTENT, tip) || {}).innerHTML);\n return hasTitle || hasContent;\n }\n }, {\n key: 'addAttachmentClass',\n value: function addAttachmentClass(attachment) {\n addClass(this.getTipElement(), CLASS_PREFIX + '-' + attachment);\n }\n }, {\n key: 'setContent',\n value: function setContent(tip) {\n // we use append for html objects to maintain js events/components\n this.setElementContent(select(Selector.TITLE, tip), this.getTitle());\n this.setElementContent(select(Selector.CONTENT, tip), this.getContent());\n\n removeClass(tip, ClassName.FADE);\n removeClass(tip, ClassName.SHOW);\n }\n\n // This method may look identical to ToolTip version, but it uses a different RegEx defined above\n\n }, {\n key: 'cleanTipClass',\n value: function cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.className.match(BSCLS_PREFIX_REGEX);\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.forEach(function (cls) {\n removeClass(tip, cls);\n });\n }\n }\n }, {\n key: 'getTitle',\n value: function getTitle() {\n var title = this.$config.title || '';\n if (typeof title === 'function') {\n title = title(this.$element);\n }\n if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object' && title.nodeType && !title.innerHTML.trim()) {\n // We have a dom node, but without inner content, so just return an empty string\n title = '';\n }\n if (typeof title === 'string') {\n title = title.trim();\n }\n if (!title) {\n // Try and grab element's title attribute\n title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || '';\n title = title.trim();\n }\n return title;\n }\n\n // New methods\n\n }, {\n key: 'getContent',\n value: function getContent() {\n var content = this.$config.content || '';\n if (typeof content === 'function') {\n content = content(this.$element);\n }\n if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && content.nodeType && !content.innerHTML.trim()) {\n // We have a dom node, but without inner content, so just return an empty string\n content = '';\n }\n if (typeof content === 'string') {\n content = content.trim();\n }\n return content;\n }\n }], [{\n key: 'Default',\n\n // Getter overrides\n\n get: function get() {\n return Defaults;\n }\n }, {\n key: 'NAME',\n get: function get() {\n return NAME;\n }\n }]);\n\n return PopOver;\n}(ToolTip);\n\nexport default PopOver;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\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\nimport Popper from 'popper.js';\nimport BvEvent from './bv-event.class';\nimport { assign } from './object';\nimport { from as arrayFrom } from './array';\nimport { closest, select, isVisible, isDisabled, getCS, addClass, removeClass, hasClass, setAttr, removeAttr, getAttr, eventOn, eventOff } from './dom';\n\nvar NAME = 'tooltip';\nvar CLASS_PREFIX = 'bs-tooltip';\nvar BSCLS_PREFIX_REGEX = new RegExp('\\\\b' + CLASS_PREFIX + '\\\\S+', 'g');\n\nvar TRANSITION_DURATION = 150;\n\n// Modal $root hidden event\nvar MODAL_CLOSE_EVENT = 'bv::modal::hidden';\n// Modal container for appending tip/popover\nvar MODAL_CLASS = '.modal-content';\n\nvar AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left',\n TOPLEFT: 'top',\n TOPRIGHT: 'top',\n RIGHTTOP: 'right',\n RIGHTBOTTOM: 'right',\n BOTTOMLEFT: 'bottom',\n BOTTOMRIGHT: 'bottom',\n LEFTTOP: 'left',\n LEFTBOTTOM: 'left'\n};\n\nvar OffsetMap = {\n AUTO: 0,\n TOPLEFT: -1,\n TOP: 0,\n TOPRIGHT: +1,\n RIGHTTOP: -1,\n RIGHT: 0,\n RIGHTBOTTOM: +1,\n BOTTOMLEFT: -1,\n BOTTOM: 0,\n BOTTOMRIGHT: +1,\n LEFTTOP: -1,\n LEFT: 0,\n LEFTBOTTOM: +1\n};\n\nvar HoverState = {\n SHOW: 'show',\n OUT: 'out'\n};\n\nvar ClassName = {\n FADE: 'fade',\n SHOW: 'show'\n};\n\nvar Selector = {\n TOOLTIP: '.tooltip',\n TOOLTIP_INNER: '.tooltip-inner',\n ARROW: '.arrow'\n\n // ESLINT: Not used\n // const Trigger = {\n // HOVER: 'hover',\n // FOCUS: 'focus',\n // CLICK: 'click',\n // BLUR: 'blur',\n // MANUAL: 'manual'\n // }\n\n};var Defaults = {\n animation: true,\n template: '<div class=\"tooltip\" role=\"tooltip\">' + '<div class=\"arrow\"></div>' + '<div class=\"tooltip-inner\"></div>' + '</div>',\n trigger: 'hover focus',\n title: '',\n delay: 0,\n html: false,\n placement: 'top',\n offset: 0,\n arrowPadding: 6,\n container: false,\n fallbackPlacement: 'flip',\n callbacks: {},\n boundary: 'scrollParent'\n\n // Transition Event names\n};var TransitionEndEvents = {\n WebkitTransition: ['webkitTransitionEnd'],\n MozTransition: ['transitionend'],\n OTransition: ['otransitionend', 'oTransitionEnd'],\n transition: ['transitionend']\n\n // Client Side Tip ID counter for aria-describedby attribute\n // Could use Alex's uid generator util\n // Each tooltip requires a unique client side ID\n};var NEXTID = 1;\n/* istanbul ignore next */\nfunction generateId(name) {\n return '__BV_' + name + '_' + NEXTID++ + '__';\n}\n\n/*\n * ToolTip Class definition\n */\n/* istanbul ignore next: difficult to test in Jest/JSDOM environment */\n\nvar ToolTip = function () {\n // Main constructor\n function ToolTip(element, config, $root) {\n _classCallCheck(this, ToolTip);\n\n // New tooltip object\n this.$isEnabled = true;\n this.$fadeTimeout = null;\n this.$hoverTimeout = null;\n this.$visibleInterval = null;\n this.$hoverState = '';\n this.$activeTrigger = {};\n this.$popper = null;\n this.$element = element;\n this.$tip = null;\n this.$id = generateId(this.constructor.NAME);\n this.$root = $root || null;\n this.$routeWatcher = null;\n // We use a bound version of the following handlers for root/modal listeners to maintain the 'this' context\n this.$forceHide = this.forceHide.bind(this);\n this.$doHide = this.doHide.bind(this);\n this.$doShow = this.doShow.bind(this);\n this.$doDisable = this.doDisable.bind(this);\n this.$doEnable = this.doEnable.bind(this);\n // Set the configuration\n this.updateConfig(config);\n }\n\n // NOTE: Overridden by PopOver class\n\n\n _createClass(ToolTip, [{\n key: 'updateConfig',\n\n\n // Update config\n value: function updateConfig(config) {\n // Merge config into defaults. We use \"this\" here because PopOver overrides Default\n var updatedConfig = assign({}, this.constructor.Default, config);\n\n // Sanitize delay\n if (config.delay && typeof config.delay === 'number') {\n updatedConfig.delay = {\n show: config.delay,\n hide: config.delay\n };\n }\n\n // Title for tooltip and popover\n if (config.title && typeof config.title === 'number') {\n updatedConfig.title = config.title.toString();\n }\n\n // Content only for popover\n if (config.content && typeof config.content === 'number') {\n updatedConfig.content = config.content.toString();\n }\n\n // Hide element original title if needed\n this.fixTitle();\n // Update the config\n this.$config = updatedConfig;\n // Stop/Restart listening\n this.unListen();\n this.listen();\n }\n\n // Destroy this instance\n\n }, {\n key: 'destroy',\n value: function destroy() {\n // Stop listening to trigger events\n this.unListen();\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n // Clear any timeouts\n clearTimeout(this.$hoverTimeout);\n this.$hoverTimeout = null;\n clearTimeout(this.$fadeTimeout);\n this.$fadeTimeout = null;\n // Remove popper\n if (this.$popper) {\n this.$popper.destroy();\n }\n this.$popper = null;\n // Remove tip from document\n if (this.$tip && this.$tip.parentElement) {\n this.$tip.parentElement.removeChild(this.$tip);\n }\n this.$tip = null;\n // Null out other properties\n this.$id = null;\n this.$isEnabled = null;\n this.$root = null;\n this.$element = null;\n this.$config = null;\n this.$hoverState = null;\n this.$activeTrigger = null;\n this.$forceHide = null;\n this.$doHide = null;\n this.$doShow = null;\n this.$doDisable = null;\n this.$doEnable = null;\n }\n }, {\n key: 'enable',\n value: function enable() {\n // Create a non-cancelable BvEvent\n var enabledEvt = new BvEvent('enabled', {\n cancelable: false,\n target: this.$element,\n relatedTarget: null\n });\n this.$isEnabled = true;\n this.emitEvent(enabledEvt);\n }\n }, {\n key: 'disable',\n value: function disable() {\n // Create a non-cancelable BvEvent\n var disabledEvt = new BvEvent('disabled', {\n cancelable: false,\n target: this.$element,\n relatedTarget: null\n });\n this.$isEnabled = false;\n this.emitEvent(disabledEvt);\n }\n\n // Click toggler\n\n }, {\n key: 'toggle',\n value: function toggle(event) {\n if (!this.$isEnabled) {\n return;\n }\n if (event) {\n this.$activeTrigger.click = !this.$activeTrigger.click;\n\n if (this.isWithActiveTrigger()) {\n this.enter(null);\n } else {\n this.leave(null);\n }\n } else {\n if (hasClass(this.getTipElement(), ClassName.SHOW)) {\n this.leave(null);\n } else {\n this.enter(null);\n }\n }\n }\n\n // Show tooltip\n\n }, {\n key: 'show',\n value: function show() {\n var _this = this;\n\n if (!document.body.contains(this.$element) || !isVisible(this.$element)) {\n // If trigger element isn't in the DOM or is not visible\n return;\n }\n // Build tooltip element (also sets this.$tip)\n var tip = this.getTipElement();\n this.fixTitle();\n this.setContent(tip);\n if (!this.isWithContent(tip)) {\n // if No content, don't bother showing\n this.$tip = null;\n return;\n }\n\n // Set ID on tip and aria-describedby on element\n setAttr(tip, 'id', this.$id);\n this.addAriaDescribedby();\n\n // Set animation on or off\n if (this.$config.animation) {\n addClass(tip, ClassName.FADE);\n } else {\n removeClass(tip, ClassName.FADE);\n }\n\n var placement = this.getPlacement();\n var attachment = this.constructor.getAttachment(placement);\n this.addAttachmentClass(attachment);\n\n // Create a cancelable BvEvent\n var showEvt = new BvEvent('show', {\n cancelable: true,\n target: this.$element,\n relatedTarget: tip\n });\n this.emitEvent(showEvt);\n if (showEvt.defaultPrevented) {\n // Don't show if event cancelled\n this.$tip = null;\n return;\n }\n\n // Insert tooltip if needed\n var container = this.getContainer();\n if (!document.body.contains(tip)) {\n container.appendChild(tip);\n }\n\n // Refresh popper\n this.removePopper();\n this.$popper = new Popper(this.$element, tip, this.getPopperConfig(placement, tip));\n\n // Transitionend Callback\n var complete = function complete() {\n if (_this.$config.animation) {\n _this.fixTransition(tip);\n }\n var prevHoverState = _this.$hoverState;\n _this.$hoverState = null;\n if (prevHoverState === HoverState.OUT) {\n _this.leave(null);\n }\n // Create a non-cancelable BvEvent\n var shownEvt = new BvEvent('shown', {\n cancelable: false,\n target: _this.$element,\n relatedTarget: tip\n });\n _this.emitEvent(shownEvt);\n };\n\n // Enable while open listeners/watchers\n this.setWhileOpenListeners(true);\n\n // Show tip\n addClass(tip, ClassName.SHOW);\n\n // Start the transition/animation\n this.transitionOnce(tip, complete);\n }\n\n // handler for periodic visibility check\n\n }, {\n key: 'visibleCheck',\n value: function visibleCheck(on) {\n var _this2 = this;\n\n clearInterval(this.$visibleInterval);\n this.$visibleInterval = null;\n if (on) {\n this.$visibleInterval = setInterval(function () {\n var tip = _this2.getTipElement();\n if (tip && !isVisible(_this2.$element) && hasClass(tip, ClassName.SHOW)) {\n // Element is no longer visible, so force-hide the tooltip\n _this2.forceHide();\n }\n }, 100);\n }\n }\n }, {\n key: 'setWhileOpenListeners',\n value: function setWhileOpenListeners(on) {\n // Modal close events\n this.setModalListener(on);\n // Periodic $element visibility check\n // For handling when tip is in <keepalive>, tabs, carousel, etc\n this.visibleCheck(on);\n // Route change events\n this.setRouteWatcher(on);\n // Ontouch start listeners\n this.setOnTouchStartListener(on);\n if (on && /(focus|blur)/.test(this.$config.trigger)) {\n // If focus moves between trigger element and tip container, dont close\n eventOn(this.$tip, 'focusout', this);\n } else {\n eventOff(this.$tip, 'focusout', this);\n }\n }\n\n // force hide of tip (internal method)\n\n }, {\n key: 'forceHide',\n value: function forceHide() {\n if (!this.$tip || !hasClass(this.$tip, ClassName.SHOW)) {\n return;\n }\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n // Clear any hover enter/leave event\n clearTimeout(this.$hoverTimeout);\n this.$hoverTimeout = null;\n this.$hoverState = '';\n // Hide the tip\n this.hide(null, true);\n }\n\n // Hide tooltip\n\n }, {\n key: 'hide',\n value: function hide(callback, force) {\n var _this3 = this;\n\n var tip = this.$tip;\n if (!tip) {\n return;\n }\n\n // Create a canelable BvEvent\n var hideEvt = new BvEvent('hide', {\n // We disable cancelling if force is true\n cancelable: !force,\n target: this.$element,\n relatedTarget: tip\n });\n this.emitEvent(hideEvt);\n if (hideEvt.defaultPrevented) {\n // Don't hide if event cancelled\n return;\n }\n\n // Transitionend Callback\n /* istanbul ignore next */\n var complete = function complete() {\n if (_this3.$hoverState !== HoverState.SHOW && tip.parentNode) {\n // Remove tip from dom, and force recompile on next show\n tip.parentNode.removeChild(tip);\n _this3.removeAriaDescribedby();\n _this3.removePopper();\n _this3.$tip = null;\n }\n if (callback) {\n callback();\n }\n // Create a non-cancelable BvEvent\n var hiddenEvt = new BvEvent('hidden', {\n cancelable: false,\n target: _this3.$element,\n relatedTarget: null\n });\n _this3.emitEvent(hiddenEvt);\n };\n\n // Disable while open listeners/watchers\n this.setWhileOpenListeners(false);\n\n // If forced close, disable animation\n if (force) {\n removeClass(tip, ClassName.FADE);\n }\n // Hide tip\n removeClass(tip, ClassName.SHOW);\n\n this.$activeTrigger.click = false;\n this.$activeTrigger.focus = false;\n this.$activeTrigger.hover = false;\n\n // Start the hide transition\n this.transitionOnce(tip, complete);\n\n this.$hoverState = '';\n }\n }, {\n key: 'emitEvent',\n value: function emitEvent(evt) {\n var evtName = evt.type;\n if (this.$root && this.$root.$emit) {\n // Emit an event on $root\n this.$root.$emit('bv::' + this.constructor.NAME + '::' + evtName, evt);\n }\n var callbacks = this.$config.callbacks || {};\n if (typeof callbacks[evtName] === 'function') {\n callbacks[evtName](evt);\n }\n }\n }, {\n key: 'getContainer',\n value: function getContainer() {\n var container = this.$config.container;\n var body = document.body;\n // If we are in a modal, we append to the modal instead of body, unless a container is specified\n return container === false ? closest(MODAL_CLASS, this.$element) || body : select(container, body) || body;\n }\n\n // Will be overritten by popover if needed\n\n }, {\n key: 'addAriaDescribedby',\n value: function addAriaDescribedby() {\n // Add aria-describedby on trigger element, without removing any other IDs\n var desc = getAttr(this.$element, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).concat(this.$id).join(' ').trim();\n setAttr(this.$element, 'aria-describedby', desc);\n }\n\n // Will be overritten by popover if needed\n\n }, {\n key: 'removeAriaDescribedby',\n value: function removeAriaDescribedby() {\n var _this4 = this;\n\n var desc = getAttr(this.$element, 'aria-describedby') || '';\n desc = desc.split(/\\s+/).filter(function (d) {\n return d !== _this4.$id;\n }).join(' ').trim();\n if (desc) {\n setAttr(this.$element, 'aria-describedby', desc);\n } else {\n removeAttr(this.$element, 'aria-describedby');\n }\n }\n }, {\n key: 'removePopper',\n value: function removePopper() {\n if (this.$popper) {\n this.$popper.destroy();\n }\n this.$popper = null;\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'transitionOnce',\n value: function transitionOnce(tip, complete) {\n var _this5 = this;\n\n var transEvents = this.getTransitionEndEvents();\n var called = false;\n clearTimeout(this.$fadeTimeout);\n this.$fadeTimeout = null;\n var fnOnce = function fnOnce() {\n if (called) {\n return;\n }\n called = true;\n clearTimeout(_this5.$fadeTimeout);\n _this5.$fadeTimeout = null;\n transEvents.forEach(function (evtName) {\n eventOff(tip, evtName, fnOnce);\n });\n // Call complete callback\n complete();\n };\n if (hasClass(tip, ClassName.FADE)) {\n transEvents.forEach(function (evtName) {\n eventOn(tip, evtName, fnOnce);\n });\n // Fallback to setTimeout\n this.$fadeTimeout = setTimeout(fnOnce, TRANSITION_DURATION);\n } else {\n fnOnce();\n }\n }\n\n // What transitionend event(s) to use? (returns array of event names)\n\n }, {\n key: 'getTransitionEndEvents',\n value: function getTransitionEndEvents() {\n for (var name in TransitionEndEvents) {\n if (this.$element.style[name] !== undefined) {\n return TransitionEndEvents[name];\n }\n }\n // fallback\n return [];\n }\n }, {\n key: 'update',\n value: function update() {\n if (this.$popper !== null) {\n this.$popper.scheduleUpdate();\n }\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'isWithContent',\n value: function isWithContent(tip) {\n tip = tip || this.$tip;\n if (!tip) {\n return false;\n }\n return Boolean((select(Selector.TOOLTIP_INNER, tip) || {}).innerHTML);\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'addAttachmentClass',\n value: function addAttachmentClass(attachment) {\n addClass(this.getTipElement(), CLASS_PREFIX + '-' + attachment);\n }\n }, {\n key: 'getTipElement',\n value: function getTipElement() {\n if (!this.$tip) {\n // Try and compile user supplied template, or fallback to default template\n this.$tip = this.compileTemplate(this.$config.template) || this.compileTemplate(this.constructor.Default.template);\n }\n // Add tab index so tip can be focused, and to allow it to be set as relatedTargt in focusin/out events\n this.$tip.tabIndex = -1;\n return this.$tip;\n }\n }, {\n key: 'compileTemplate',\n value: function compileTemplate(html) {\n if (!html || typeof html !== 'string') {\n return null;\n }\n var div = document.createElement('div');\n div.innerHTML = html.trim();\n var node = div.firstElementChild ? div.removeChild(div.firstElementChild) : null;\n div = null;\n return node;\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'setContent',\n value: function setContent(tip) {\n this.setElementContent(select(Selector.TOOLTIP_INNER, tip), this.getTitle());\n removeClass(tip, ClassName.FADE);\n removeClass(tip, ClassName.SHOW);\n }\n }, {\n key: 'setElementContent',\n value: function setElementContent(container, content) {\n if (!container) {\n // If container element doesn't exist, just return\n return;\n }\n var allowHtml = this.$config.html;\n if ((typeof content === 'undefined' ? 'undefined' : _typeof(content)) === 'object' && content.nodeType) {\n // content is a DOM node\n if (allowHtml) {\n if (content.parentElement !== container) {\n container.innerHtml = '';\n container.appendChild(content);\n }\n } else {\n container.innerText = content.innerText;\n }\n } else {\n // We have a plain HTML string or Text\n container[allowHtml ? 'innerHTML' : 'innerText'] = content;\n }\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'getTitle',\n value: function getTitle() {\n var title = this.$config.title || '';\n if (typeof title === 'function') {\n // Call the function to get the title value\n title = title(this.$element);\n }\n if ((typeof title === 'undefined' ? 'undefined' : _typeof(title)) === 'object' && title.nodeType && !title.innerHTML.trim()) {\n // We have a DOM node, but without inner content, so just return empty string\n title = '';\n }\n if (typeof title === 'string') {\n title = title.trim();\n }\n if (!title) {\n // If an explicit title is not given, try element's title atributes\n title = getAttr(this.$element, 'title') || getAttr(this.$element, 'data-original-title') || '';\n title = title.trim();\n }\n\n return title;\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this6 = this;\n\n var triggers = this.$config.trigger.trim().split(/\\s+/);\n var el = this.$element;\n\n // Listen for global show/hide events\n this.setRootListener(true);\n\n // Using 'this' as the handler will get automagically directed to this.handleEvent\n // And maintain our binding to 'this'\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n eventOn(el, 'click', _this6);\n } else if (trigger === 'focus') {\n eventOn(el, 'focusin', _this6);\n eventOn(el, 'focusout', _this6);\n } else if (trigger === 'blur') {\n // Used to close $tip when element looses focus\n eventOn(el, 'focusout', _this6);\n } else if (trigger === 'hover') {\n eventOn(el, 'mouseenter', _this6);\n eventOn(el, 'mouseleave', _this6);\n }\n }, this);\n }\n }, {\n key: 'unListen',\n value: function unListen() {\n var _this7 = this;\n\n var events = ['click', 'focusin', 'focusout', 'mouseenter', 'mouseleave'];\n // Using \"this\" as the handler will get automagically directed to this.handleEvent\n events.forEach(function (evt) {\n eventOff(_this7.$element, evt, _this7);\n }, this);\n\n // Stop listening for global show/hide/enable/disable events\n this.setRootListener(false);\n }\n }, {\n key: 'handleEvent',\n value: function handleEvent(e) {\n // This special method allows us to use \"this\" as the event handlers\n if (isDisabled(this.$element)) {\n // If disabled, don't do anything. Note: if tip is shown before element gets\n // disabled, then tip not close until no longer disabled or forcefully closed.\n return;\n }\n if (!this.$isEnabled) {\n // If not enable\n return;\n }\n var type = e.type;\n var target = e.target;\n var relatedTarget = e.relatedTarget;\n var $element = this.$element;\n var $tip = this.$tip;\n if (type === 'click') {\n this.toggle(e);\n } else if (type === 'focusin' || type === 'mouseenter') {\n this.enter(e);\n } else if (type === 'focusout') {\n // target is the element which is loosing focus\n // And relatedTarget is the element gaining focus\n if ($tip && $element && $element.contains(target) && $tip.contains(relatedTarget)) {\n // If focus moves from $element to $tip, don't trigger a leave\n return;\n }\n if ($tip && $element && $tip.contains(target) && $element.contains(relatedTarget)) {\n // If focus moves from $tip to $element, don't trigger a leave\n return;\n }\n if ($tip && $tip.contains(target) && $tip.contains(relatedTarget)) {\n // If focus moves within $tip, don't trigger a leave\n return;\n }\n if ($element && $element.contains(target) && $element.contains(relatedTarget)) {\n // If focus moves within $element, don't trigger a leave\n return;\n }\n // Otherwise trigger a leave\n this.leave(e);\n } else if (type === 'mouseleave') {\n this.leave(e);\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'setRouteWatcher',\n value: function setRouteWatcher(on) {\n var _this8 = this;\n\n if (on) {\n this.setRouteWatcher(false);\n if (this.$root && Boolean(this.$root.$route)) {\n this.$routeWatcher = this.$root.$watch('$route', function (newVal, oldVal) {\n if (newVal === oldVal) {\n return;\n }\n // If route has changed, we force hide the tooltip/popover\n _this8.forceHide();\n });\n }\n } else {\n if (this.$routeWatcher) {\n // cancel the route watcher by calling hte stored reference\n this.$routeWatcher();\n this.$routeWatcher = null;\n }\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'setModalListener',\n value: function setModalListener(on) {\n var modal = closest(MODAL_CLASS, this.$element);\n if (!modal) {\n // If we are not in a modal, don't worry. be happy\n return;\n }\n // We can listen for modal hidden events on $root\n if (this.$root) {\n this.$root[on ? '$on' : '$off'](MODAL_CLOSE_EVENT, this.$forceHide);\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'setRootListener',\n value: function setRootListener(on) {\n // Listen for global 'bv::{hide|show}::{tooltip|popover}' hide request event\n if (this.$root) {\n this.$root[on ? '$on' : '$off']('bv::hide::' + this.constructor.NAME, this.$doHide);\n this.$root[on ? '$on' : '$off']('bv::show::' + this.constructor.NAME, this.$doShow);\n this.$root[on ? '$on' : '$off']('bv::disable::' + this.constructor.NAME, this.$doDisable);\n this.$root[on ? '$on' : '$off']('bv::enable::' + this.constructor.NAME, this.$doEnable);\n }\n }\n }, {\n key: 'doHide',\n value: function doHide(id) {\n // Programmatically hide tooltip or popover\n if (!id) {\n // Close all tooltips or popovers\n this.forceHide();\n } else if (this.$element && this.$element.id && this.$element.id === id) {\n // Close this specific tooltip or popover\n this.hide();\n }\n }\n }, {\n key: 'doShow',\n value: function doShow(id) {\n // Programmatically show tooltip or popover\n if (!id) {\n // Open all tooltips or popovers\n this.show();\n } else if (id && this.$element && this.$element.id && this.$element.id === id) {\n // Show this specific tooltip or popover\n this.show();\n }\n }\n }, {\n key: 'doDisable',\n value: function doDisable(id) {\n // Programmatically disable tooltip or popover\n if (!id) {\n // Disable all tooltips or popovers\n this.disable();\n } else if (this.$element && this.$element.id && this.$element.id === id) {\n // Disable this specific tooltip or popover\n this.disable();\n }\n }\n }, {\n key: 'doEnable',\n value: function doEnable(id) {\n // Programmatically enable tooltip or popover\n if (!id) {\n // Enable all tooltips or popovers\n this.enable();\n } else if (this.$element && this.$element.id && this.$element.id === id) {\n // Enable this specific tooltip or popover\n this.enable();\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: 'setOnTouchStartListener',\n value: function setOnTouchStartListener(on) {\n var _this9 = this;\n\n // if this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n arrayFrom(document.body.children).forEach(function (el) {\n if (on) {\n eventOn(el, 'mouseover', _this9._noop);\n } else {\n eventOff(el, 'mouseover', _this9._noop);\n }\n });\n }\n }\n\n /* istanbul ignore next */\n\n }, {\n key: '_noop',\n value: function _noop() {\n // Empty noop handler for ontouchstart devices\n }\n }, {\n key: 'fixTitle',\n value: function fixTitle() {\n var el = this.$element;\n var titleType = _typeof(getAttr(el, 'data-original-title'));\n if (getAttr(el, 'title') || titleType !== 'string') {\n setAttr(el, 'data-original-title', getAttr(el, 'title') || '');\n setAttr(el, 'title', '');\n }\n }\n\n // Enter handler\n /* istanbul ignore next */\n\n }, {\n key: 'enter',\n value: function enter(e) {\n var _this10 = this;\n\n if (e) {\n this.$activeTrigger[e.type === 'focusin' ? 'focus' : 'hover'] = true;\n }\n if (hasClass(this.getTipElement(), ClassName.SHOW) || this.$hoverState === HoverState.SHOW) {\n this.$hoverState = HoverState.SHOW;\n return;\n }\n clearTimeout(this.$hoverTimeout);\n this.$hoverState = HoverState.SHOW;\n if (!this.$config.delay || !this.$config.delay.show) {\n this.show();\n return;\n }\n this.$hoverTimeout = setTimeout(function () {\n if (_this10.$hoverState === HoverState.SHOW) {\n _this10.show();\n }\n }, this.$config.delay.show);\n }\n\n // Leave handler\n /* istanbul ignore next */\n\n }, {\n key: 'leave',\n value: function leave(e) {\n var _this11 = this;\n\n if (e) {\n this.$activeTrigger[e.type === 'focusout' ? 'focus' : 'hover'] = false;\n if (e.type === 'focusout' && /blur/.test(this.$config.trigger)) {\n // Special case for `blur`: we clear out the other triggers\n this.$activeTrigger.click = false;\n this.$activeTrigger.hover = false;\n }\n }\n if (this.isWithActiveTrigger()) {\n return;\n }\n clearTimeout(this.$hoverTimeout);\n this.$hoverState = HoverState.OUT;\n if (!this.$config.delay || !this.$config.delay.hide) {\n this.hide();\n return;\n }\n this.$hoverTimeout = setTimeout(function () {\n if (_this11.$hoverState === HoverState.OUT) {\n _this11.hide();\n }\n }, this.$config.delay.hide);\n }\n }, {\n key: 'getPopperConfig',\n value: function getPopperConfig(placement, tip) {\n var _this12 = this;\n\n return {\n placement: this.constructor.getAttachment(placement),\n modifiers: {\n offset: { offset: this.getOffset(placement, tip) },\n flip: { behavior: this.$config.fallbackPlacement },\n arrow: { element: '.arrow' },\n preventOverflow: { boundariesElement: this.$config.boundary }\n },\n onCreate: function onCreate(data) {\n // Handle flipping arrow classes\n if (data.originalPlacement !== data.placement) {\n _this12.handlePopperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n // Handle flipping arrow classes\n _this12.handlePopperPlacementChange(data);\n }\n };\n }\n }, {\n key: 'getOffset',\n value: function getOffset(placement, tip) {\n if (!this.$config.offset) {\n var arrow = select(Selector.ARROW, tip);\n var arrowOffset = parseFloat(getCS(arrow).width) + parseFloat(this.$config.arrowPadding);\n switch (OffsetMap[placement.toUpperCase()]) {\n case +1:\n return '+50%p - ' + arrowOffset + 'px';\n case -1:\n return '-50%p + ' + arrowOffset + 'px';\n default:\n return 0;\n }\n }\n return this.$config.offset;\n }\n }, {\n key: 'getPlacement',\n value: function getPlacement() {\n var placement = this.$config.placement;\n if (typeof placement === 'function') {\n return placement.call(this, this.$tip, this.$element);\n }\n return placement;\n }\n }, {\n key: 'isWithActiveTrigger',\n value: function isWithActiveTrigger() {\n for (var trigger in this.$activeTrigger) {\n if (this.$activeTrigger[trigger]) {\n return true;\n }\n }\n return false;\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'cleanTipClass',\n value: function cleanTipClass() {\n var tip = this.getTipElement();\n var tabClass = tip.className.match(BSCLS_PREFIX_REGEX);\n if (tabClass !== null && tabClass.length > 0) {\n tabClass.forEach(function (cls) {\n removeClass(tip, cls);\n });\n }\n }\n }, {\n key: 'handlePopperPlacementChange',\n value: function handlePopperPlacementChange(data) {\n this.cleanTipClass();\n this.addAttachmentClass(this.constructor.getAttachment(data.placement));\n }\n }, {\n key: 'fixTransition',\n value: function fixTransition(tip) {\n var initConfigAnimation = this.$config.animation || false;\n if (getAttr(tip, 'x-placement') !== null) {\n return;\n }\n removeClass(tip, ClassName.FADE);\n this.$config.animation = false;\n this.hide();\n this.show();\n this.$config.animation = initConfigAnimation;\n }\n }], [{\n key: 'getAttachment',\n value: function getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n }\n }, {\n key: 'Default',\n get: function get() {\n return Defaults;\n }\n\n // NOTE: Overridden by PopOver class\n\n }, {\n key: 'NAME',\n get: function get() {\n return NAME;\n }\n }]);\n\n return ToolTip;\n}();\n\nexport default ToolTip;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*\n * Tooltip/Popover component mixin\n * Common props\n */\nimport { isArray } from '../utils/array';\nimport { assign } from '../utils/object';\nimport { isElement, getById } from '../utils/dom';\nimport { HTMLElement } from '../utils/ssr';\nimport observeDom from '../utils/observe-dom';\n\nvar PLACEMENTS = {\n top: 'top',\n topleft: 'topleft',\n topright: 'topright',\n right: 'right',\n righttop: 'righttop',\n rightbottom: 'rightbottom',\n bottom: 'bottom',\n bottomleft: 'bottomleft',\n bottomright: 'bottomright',\n left: 'left',\n lefttop: 'lefttop',\n leftbottom: 'leftbottom',\n auto: 'auto'\n};\n\nvar OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['class', 'style']\n};\n\nexport default {\n props: {\n target: {\n // String ID of element, or element/component reference\n type: [String, Object, HTMLElement, Function]\n },\n delay: {\n type: [Number, Object, String],\n default: 0\n },\n offset: {\n type: [Number, String],\n default: 0\n },\n noFade: {\n type: Boolean,\n default: false\n },\n container: {\n // String ID of container, if null body is used (default)\n type: String,\n default: null\n },\n boundary: {\n // String: scrollParent, window, or viewport\n // Element: element reference\n type: [String, Object],\n default: 'scrollParent'\n },\n show: {\n type: Boolean,\n default: false\n },\n disabled: {\n type: Boolean,\n default: false\n }\n },\n watch: {\n show: function show(_show, old) {\n if (_show === old) {\n return;\n }\n _show ? this.onOpen() : this.onClose();\n },\n disabled: function disabled(_disabled, old) {\n if (_disabled === old) {\n return;\n }\n _disabled ? this.onDisable() : this.onEnable();\n }\n },\n created: function created() {\n // Create non-reactive property\n this._toolpop = null;\n this._obs_title = null;\n this._obs_content = null;\n },\n mounted: function mounted() {\n var _this = this;\n\n // We do this in a next tick to ensure DOM has rendered first\n this.$nextTick(function () {\n // Instantiate ToolTip/PopOver on target\n // The createToolpop method must exist in main component\n if (_this.createToolpop()) {\n if (_this.disabled) {\n // Initially disabled\n _this.onDisable();\n }\n // Listen to open signals from others\n _this.$on('open', _this.onOpen);\n // Listen to close signals from others\n _this.$on('close', _this.onClose);\n // Listen to disable signals from others\n _this.$on('disable', _this.onDisable);\n // Listen to disable signals from others\n _this.$on('enable', _this.onEnable);\n // Observe content Child changes so we can notify popper of possible size change\n _this.setObservers(true);\n // Set intially open state\n if (_this.show) {\n _this.onOpen();\n }\n }\n });\n },\n updated: function updated() {\n // If content/props changes, etc\n if (this._toolpop) {\n this._toolpop.updateConfig(this.getConfig());\n }\n },\n\n /* istanbul ignore next: not easy to test */\n activated: function activated() {\n // Called when component is inside a <keep-alive> and component brought offline\n this.setObservers(true);\n },\n\n /* istanbul ignore next: not easy to test */\n deactivated: function deactivated() {\n // Called when component is inside a <keep-alive> and component taken offline\n if (this._toolpop) {\n this.setObservers(false);\n this._toolpop.hide();\n }\n },\n\n /* istanbul ignore next: not easy to test */\n beforeDestroy: function beforeDestroy() {\n // Shutdown our local event listeners\n this.$off('open', this.onOpen);\n this.$off('close', this.onClose);\n this.$off('disable', this.onDisable);\n this.$off('enable', this.onEnable);\n this.setObservers(false);\n // bring our content back if needed\n this.bringItBack();\n if (this._toolpop) {\n this._toolpop.destroy();\n this._toolpop = null;\n }\n },\n\n computed: {\n baseConfig: function baseConfig() {\n var cont = this.container;\n var delay = _typeof(this.delay) === 'object' ? this.delay : parseInt(this.delay, 10) || 0;\n return {\n // Title prop\n title: (this.title || '').trim() || '',\n // Contnt prop (if popover)\n content: (this.content || '').trim() || '',\n // Tooltip/Popover placement\n placement: PLACEMENTS[this.placement] || 'auto',\n // Container curently needs to be an ID with '#' prepended, if null then body is used\n container: cont ? /^#/.test(cont) ? cont : '#' + cont : false,\n // boundariesElement passed to popper\n boundary: this.boundary,\n // Show/Hide delay\n delay: delay || 0,\n // Offset can be css distance. if no units, pixels are assumed\n offset: this.offset || 0,\n // Disable fade Animation?\n animation: !this.noFade,\n // Open/Close Trigger(s)\n trigger: isArray(this.triggers) ? this.triggers.join(' ') : this.triggers,\n // Callbacks so we can trigger events on component\n callbacks: {\n show: this.onShow,\n shown: this.onShown,\n hide: this.onHide,\n hidden: this.onHidden,\n enabled: this.onEnabled,\n disabled: this.onDisabled\n }\n };\n }\n },\n methods: {\n getConfig: function getConfig() {\n var cfg = assign({}, this.baseConfig);\n if (this.$refs.title && this.$refs.title.innerHTML.trim()) {\n // If slot has content, it overrides 'title' prop\n // We use the DOM node as content to allow components!\n cfg.title = this.$refs.title;\n cfg.html = true;\n }\n if (this.$refs.content && this.$refs.content.innerHTML.trim()) {\n // If slot has content, it overrides 'content' prop\n // We use the DOM node as content to allow components!\n cfg.content = this.$refs.content;\n cfg.html = true;\n }\n return cfg;\n },\n onOpen: function onOpen() {\n if (this._toolpop) {\n this._toolpop.show();\n }\n },\n onClose: function onClose(callback) {\n if (this._toolpop) {\n this._toolpop.hide(callback);\n } else if (typeof callback === 'function') {\n callback();\n }\n },\n onDisable: function onDisable() {\n if (this._toolpop) {\n this._toolpop.disable();\n }\n },\n onEnable: function onEnable() {\n if (this._toolpop) {\n this._toolpop.enable();\n }\n },\n updatePosition: function updatePosition() {\n if (this._toolpop) {\n // Instruct popper to reposition popover if necessary\n this._toolpop.update();\n }\n },\n getTarget: function getTarget() {\n var target = this.target;\n if (typeof target === 'function') {\n target = target();\n }\n if (typeof target === 'string') {\n // Assume ID of element\n return getById(target);\n } else if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && isElement(target.$el)) {\n // Component reference\n return target.$el;\n } else if ((typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && isElement(target)) {\n // Element reference\n return target;\n }\n return null;\n },\n onShow: function onShow(evt) {\n this.$emit('show', evt);\n },\n onShown: function onShown(evt) {\n this.setObservers(true);\n this.$emit('update:show', true);\n this.$emit('shown', evt);\n },\n onHide: function onHide(evt) {\n this.$emit('hide', evt);\n },\n onHidden: function onHidden(evt) {\n this.setObservers(false);\n // bring our content back if needed to keep Vue happy\n // Tooltip class will move it back to tip when shown again\n this.bringItBack();\n this.$emit('update:show', false);\n this.$emit('hidden', evt);\n },\n onEnabled: function onEnabled(evt) {\n if (!evt || evt.type !== 'enabled') {\n // Prevent possible endless loop if user mistakienly fires enabled instead of enable\n return;\n }\n this.$emit('update:disabled', false);\n this.$emit('disabled');\n },\n onDisabled: function onDisabled(evt) {\n if (!evt || evt.type !== 'disabled') {\n // Prevent possible endless loop if user mistakienly fires disabled instead of disable\n return;\n }\n this.$emit('update:disabled', true);\n this.$emit('enabled');\n },\n bringItBack: function bringItBack() {\n // bring our content back if needed to keep Vue happy\n if (this.$el && this.$refs.title) {\n this.$el.appendChild(this.$refs.title);\n }\n if (this.$el && this.$refs.content) {\n this.$el.appendChild(this.$refs.content);\n }\n },\n\n /* istanbul ignore next: not easy to test */\n setObservers: function setObservers(on) {\n if (on) {\n if (this.$refs.title) {\n this._obs_title = observeDom(this.$refs.title, this.updatePosition.bind(this), OBSERVER_CONFIG);\n }\n if (this.$refs.content) {\n this._obs_content = observeDom(this.$refs.content, this.updatePosition.bind(this), OBSERVER_CONFIG);\n }\n } else {\n if (this._obs_title) {\n this._obs_title.disconnect();\n this._obs_title = null;\n }\n if (this._obs_content) {\n this._obs_content.disconnect();\n this._obs_content = null;\n }\n }\n }\n }\n};","// Polyfills for SSR\n\nvar isSSR = typeof window === 'undefined';\n\nexport var HTMLElement = isSSR ? Object : window.HTMLElement;","import bProgress from './progress';\nimport bProgressBar from './progress-bar';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bProgress: bProgress,\n bProgressBar: bProgressBar\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import bProgressBar from './progress-bar';\n\nexport default {\n components: { bProgressBar: bProgressBar },\n render: function render(h) {\n var childNodes = this.$slots.default;\n if (!childNodes) {\n childNodes = h('b-progress-bar', {\n props: {\n value: this.value,\n max: this.max,\n precision: this.precision,\n variant: this.variant,\n animated: this.animated,\n striped: this.striped,\n showProgress: this.showProgress,\n showValue: this.showValue\n }\n });\n }\n return h('div', { class: ['progress'], style: this.progressHeight }, [childNodes]);\n },\n\n props: {\n // These props can be inherited via the child b-progress-bar(s)\n variant: {\n type: String,\n default: null\n },\n striped: {\n type: Boolean,\n default: false\n },\n animated: {\n type: Boolean,\n default: false\n },\n height: {\n type: String,\n default: null\n },\n precision: {\n type: Number,\n default: 0\n },\n showProgress: {\n type: Boolean,\n default: false\n },\n showValue: {\n type: Boolean,\n default: false\n },\n max: {\n type: Number,\n default: 100\n },\n // This prop is not inherited by child b-progress-bar(s)\n value: {\n type: Number,\n default: 0\n }\n },\n computed: {\n progressHeight: function progressHeight() {\n return { height: this.height || null };\n }\n }\n};","export default {\n render: function render(h) {\n var childNodes = h(false);\n if (this.$slots.default) {\n childNodes = this.$slots.default;\n } else if (this.label) {\n childNodes = h('span', { domProps: { innerHTML: this.label } });\n } else if (this.computedShowProgress) {\n childNodes = this.progress.toFixed(this.computedPrecision);\n } else if (this.computedShowValue) {\n childNodes = this.value.toFixed(this.computedPrecision);\n }\n return h('div', {\n class: this.progressBarClasses,\n style: this.progressBarStyles,\n attrs: {\n role: 'progressbar',\n 'aria-valuemin': '0',\n 'aria-valuemax': this.computedMax.toString(),\n 'aria-valuenow': this.value.toFixed(this.computedPrecision)\n }\n }, [childNodes]);\n },\n\n computed: {\n progressBarClasses: function progressBarClasses() {\n return ['progress-bar', this.computedVariant ? 'bg-' + this.computedVariant : '', this.computedStriped || this.computedAnimated ? 'progress-bar-striped' : '', this.computedAnimated ? 'progress-bar-animated' : ''];\n },\n progressBarStyles: function progressBarStyles() {\n return {\n width: 100 * (this.value / this.computedMax) + '%'\n };\n },\n progress: function progress() {\n var p = Math.pow(10, this.computedPrecision);\n return Math.round(100 * p * this.value / this.computedMax) / p;\n },\n computedMax: function computedMax() {\n // Prefer our max over parent setting\n return typeof this.max === 'number' ? this.max : this.$parent.max || 100;\n },\n computedVariant: function computedVariant() {\n // Prefer our variant over parent setting\n return this.variant || this.$parent.variant;\n },\n computedPrecision: function computedPrecision() {\n // Prefer our precision over parent setting\n return typeof this.precision === 'number' ? this.precision : this.$parent.precision || 0;\n },\n computedStriped: function computedStriped() {\n // Prefer our striped over parent setting\n return typeof this.striped === 'boolean' ? this.striped : this.$parent.striped || false;\n },\n computedAnimated: function computedAnimated() {\n // Prefer our animated over parent setting\n return typeof this.animated === 'boolean' ? this.animated : this.$parent.animated || false;\n },\n computedShowProgress: function computedShowProgress() {\n // Prefer our showProgress over parent setting\n return typeof this.showProgress === 'boolean' ? this.showProgress : this.$parent.showProgress || false;\n },\n computedShowValue: function computedShowValue() {\n // Prefer our showValue over parent setting\n return typeof this.showValue === 'boolean' ? this.showValue : this.$parent.showValue || false;\n }\n },\n props: {\n value: {\n type: Number,\n default: 0\n },\n label: {\n type: String,\n default: null\n },\n // $parent prop values take precedence over the following props\n // Which is why they are defaulted to null\n max: {\n type: Number,\n default: null\n },\n precision: {\n type: Number,\n default: null\n },\n variant: {\n type: String,\n default: null\n },\n striped: {\n type: Boolean,\n default: null\n },\n animated: {\n type: Boolean,\n default: null\n },\n showProgress: {\n type: Boolean,\n default: null\n },\n showValue: {\n type: Boolean,\n default: null\n }\n }\n};","import bTable from './table';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bTable: bTable\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport startCase from 'lodash.startcase';\nimport get from 'lodash.get';\nimport looseEqual from '../../utils/loose-equal';\nimport stableSort from '../../utils/stable-sort';\nimport KeyCodes from '../../utils/key-codes';\nimport warn from '../../utils/warn';\nimport { keys, assign } from '../../utils/object';\nimport { isArray } from '../../utils/array';\nimport idMixin from '../../mixins/id';\nimport listenOnRootMixin from '../../mixins/listen-on-root';\n\n// Import styles\nimport './table.css';\n\nfunction toString(v) {\n if (!v) {\n return '';\n }\n if (v instanceof Object) {\n return keys(v).map(function (k) {\n return toString(v[k]);\n }).join(' ');\n }\n return String(v);\n}\n\nfunction recToString(obj) {\n if (!(obj instanceof Object)) {\n return '';\n }\n return toString(keys(obj).reduce(function (o, k) {\n // Ignore fields that start with _\n if (!/^_/.test(k)) {\n o[k] = obj[k];\n }\n return o;\n }, {}));\n}\n\nfunction defaultSortCompare(a, b, sortBy) {\n if (typeof a[sortBy] === 'number' && typeof b[sortBy] === 'number') {\n return a[sortBy] < b[sortBy] && -1 || a[sortBy] > b[sortBy] && 1 || 0;\n }\n return toString(a[sortBy]).localeCompare(toString(b[sortBy]), undefined, {\n numeric: true\n });\n}\n\nfunction processField(key, value) {\n var field = null;\n if (typeof value === 'string') {\n // Label shortcut\n field = { key: key, label: value };\n } else if (typeof value === 'function') {\n // Formatter shortcut\n field = { key: key, formatter: value };\n } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n field = assign({}, value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n field = { key: key };\n }\n return field;\n}\n\nexport default {\n mixins: [idMixin, listenOnRootMixin],\n render: function render(h) {\n var _this = this;\n\n var $slots = this.$slots;\n var $scoped = this.$scopedSlots;\n var fields = this.computedFields;\n var items = this.computedItems;\n\n // Build the caption\n var caption = h(false);\n if (this.caption || $slots['table-caption']) {\n var data = { style: this.captionStyles };\n if (!$slots['table-caption']) {\n data.domProps = { innerHTML: this.caption };\n }\n caption = h('caption', data, $slots['table-caption']);\n }\n\n // Build the colgroup\n var colgroup = $slots['table-colgroup'] ? h('colgroup', {}, $slots['table-colgroup']) : h(false);\n\n // factory function for thead and tfoot cells (th's)\n var makeHeadCells = function makeHeadCells() {\n var isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n return fields.map(function (field, colIndex) {\n var data = {\n key: field.key,\n class: _this.fieldClasses(field),\n style: field.thStyle || {},\n attrs: {\n tabindex: field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': String(colIndex + 1),\n 'aria-label': field.sortable ? _this.localSortDesc && _this.localSortBy === field.key ? _this.labelSortAsc : _this.labelSortDesc : null,\n 'aria-sort': field.sortable && _this.localSortBy === field.key ? _this.localSortDesc ? 'descending' : 'ascending' : null\n },\n on: {\n click: function click(evt) {\n evt.stopPropagation();\n evt.preventDefault();\n _this.headClicked(evt, field);\n },\n keydown: function keydown(evt) {\n var keyCode = evt.keyCode;\n if (keyCode === KeyCodes.ENTER || keyCode === KeyCodes.SPACE) {\n evt.stopPropagation();\n evt.preventDefault();\n _this.headClicked(evt, field);\n }\n }\n }\n };\n var slot = isFoot && $scoped['FOOT_' + field.key] ? $scoped['FOOT_' + field.key] : $scoped['HEAD_' + field.key];\n if (slot) {\n slot = [slot({ label: field.label, column: field.key, field: field })];\n } else {\n data.domProps = { innerHTML: field.label };\n }\n return h('th', data, slot);\n });\n };\n\n // Build the thead\n var thead = h(false);\n if (this.isStacked !== true) {\n // If in always stacked mode (this.isStacked === true), then we don't bother rendering the thead\n thead = h('thead', { class: this.headClasses }, [h('tr', { class: this.theadTrClass }, makeHeadCells(false))]);\n }\n\n // Build the tfoot\n var tfoot = h(false);\n if (this.footClone && this.isStacked !== true) {\n // If in always stacked mode (this.isStacked === true), then we don't bother rendering the tfoot\n tfoot = h('tfoot', { class: this.footClasses }, [h('tr', { class: this.tfootTrClass }, makeHeadCells(true))]);\n }\n\n // Prepare the tbody rows\n var rows = [];\n\n // Add static Top Row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in always stacked mode, we don't bother rendering the row\n if ($scoped['top-row'] && this.isStacked !== true) {\n rows.push(h('tr', { key: 'top-row', class: ['b-table-top-row', this.tbodyTrClass] }, [$scoped['top-row']({ columns: fields.length, fields: fields })]));\n } else {\n rows.push(h(false));\n }\n\n // Add the item data rows\n items.forEach(function (item, rowIndex) {\n var detailsSlot = $scoped['row-details'];\n var rowShowDetails = Boolean(item._showDetails && detailsSlot);\n var detailsId = rowShowDetails ? _this.safeId('_details_' + rowIndex + '_') : null;\n var toggleDetailsFn = function toggleDetailsFn() {\n if (detailsSlot) {\n _this.$set(item, '_showDetails', !item._showDetails);\n }\n };\n // For each item data field in row\n var tds = fields.map(function (field, colIndex) {\n var data = {\n key: 'row-' + rowIndex + '-cell-' + colIndex,\n class: _this.tdClasses(field, item),\n attrs: _this.tdAttrs(field, item, colIndex),\n domProps: {}\n };\n var childNodes = void 0;\n if ($scoped[field.key]) {\n childNodes = [$scoped[field.key]({\n item: item,\n index: rowIndex,\n field: field,\n unformatted: get(item, field.key),\n value: _this.getFormattedValue(item, field),\n toggleDetails: toggleDetailsFn,\n detailsShowing: Boolean(item._showDetails)\n })];\n if (_this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n childNodes = [h('div', {}, [childNodes])];\n }\n } else {\n var formatted = _this.getFormattedValue(item, field);\n if (_this.isStacked) {\n // We innerHTML a DIV to ensure rendered as a single cell when visually stacked!\n childNodes = [h('div', formatted)];\n } else {\n // Non stacked\n childNodes = formatted;\n }\n }\n // Render either a td or th cell\n return h(field.isRowHeader ? 'th' : 'td', data, childNodes);\n });\n // Calculate the row number in the dataset (indexed from 1)\n var ariaRowIndex = null;\n if (_this.currentPage && _this.perPage && _this.perPage > 0) {\n ariaRowIndex = (_this.currentPage - 1) * _this.perPage + rowIndex + 1;\n }\n // Assemble and add the row\n rows.push(h('tr', {\n key: 'row-' + rowIndex,\n class: [_this.rowClasses(item), { 'b-table-has-details': rowShowDetails }],\n attrs: {\n 'aria-describedby': detailsId,\n 'aria-rowindex': ariaRowIndex,\n role: _this.isStacked ? 'row' : null\n },\n on: {\n click: function click(evt) {\n _this.rowClicked(evt, item, rowIndex);\n },\n dblclick: function dblclick(evt) {\n _this.rowDblClicked(evt, item, rowIndex);\n },\n mouseenter: function mouseenter(evt) {\n _this.rowHovered(evt, item, rowIndex);\n }\n }\n }, tds));\n // Row Details slot\n if (rowShowDetails) {\n var tdAttrs = { colspan: String(fields.length) };\n var trAttrs = { id: detailsId };\n if (_this.isStacked) {\n tdAttrs['role'] = 'cell';\n trAttrs['role'] = 'row';\n }\n var details = h('td', { attrs: tdAttrs }, [detailsSlot({\n item: item,\n index: rowIndex,\n fields: fields,\n toggleDetails: toggleDetailsFn\n })]);\n rows.push(h('tr', {\n key: 'details-' + rowIndex,\n class: ['b-table-details', _this.tbodyTrClass],\n attrs: trAttrs\n }, [details]));\n } else if (detailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n rows.push(h(false));\n }\n });\n\n // Empty Items / Empty Filtered Row slot\n if (this.showEmpty && (!items || items.length === 0)) {\n var empty = this.filter ? $slots['emptyfiltered'] : $slots['empty'];\n if (!empty) {\n empty = h('div', {\n class: ['text-center', 'my-2'],\n domProps: { innerHTML: this.filter ? this.emptyFilteredText : this.emptyText }\n });\n }\n empty = h('td', {\n attrs: {\n colspan: String(fields.length),\n role: this.isStacked ? 'cell' : null\n }\n }, [h('div', { attrs: { role: 'alert', 'aria-live': 'polite' } }, [empty])]);\n rows.push(h('tr', {\n key: 'empty-row',\n class: ['b-table-empty-row', this.tbodyTrClass],\n attrs: this.isStacked ? { role: 'row' } : {}\n }, [empty]));\n } else {\n rows.push(h(false));\n }\n\n // Static bottom row slot (hidden in visibly stacked mode as we can't control the data-label)\n // If in always stacked mode, we don't bother rendering the row\n if ($scoped['bottom-row'] && this.isStacked !== true) {\n rows.push(h('tr', { key: 'bottom-row', class: ['b-table-bottom-row', this.tbodyTrClass] }, [$scoped['bottom-row']({ columns: fields.length, fields: fields })]));\n } else {\n rows.push(h(false));\n }\n\n // Assemble the rows into the tbody\n var tbody = h('tbody', { class: this.bodyClasses, attrs: this.isStacked ? { role: 'rowgroup' } : {} }, rows);\n\n // Assemble table\n var table = h('table', {\n class: this.tableClasses,\n attrs: {\n id: this.safeId(),\n role: this.isStacked ? 'table' : null,\n 'aria-busy': this.computedBusy ? 'true' : 'false',\n 'aria-colcount': String(fields.length),\n 'aria-rowcount': this.$attrs['aria-rowcount'] || this.perPage && this.perPage > 0 ? '-1' : null\n }\n }, [caption, colgroup, thead, tfoot, tbody]);\n\n // Add responsive wrapper if needed and return table\n return this.isResponsive ? h('div', { class: this.responsiveClass }, [table]) : table;\n },\n data: function data() {\n return {\n localSortBy: this.sortBy || '',\n localSortDesc: this.sortDesc || false,\n localItems: [],\n // Note: filteredItems only used to determine if # of items changed\n filteredItems: [],\n localBusy: false\n };\n },\n\n props: {\n items: {\n type: [Array, Function],\n default: function _default() {\n return [];\n }\n },\n fields: {\n type: [Object, Array],\n default: null\n },\n sortBy: {\n type: String,\n default: null\n },\n sortDesc: {\n type: Boolean,\n default: false\n },\n caption: {\n type: String,\n default: null\n },\n captionTop: {\n type: Boolean,\n default: false\n },\n striped: {\n type: Boolean,\n default: false\n },\n bordered: {\n type: Boolean,\n default: false\n },\n outlined: {\n type: Boolean,\n default: false\n },\n dark: {\n type: Boolean,\n default: function _default() {\n if (this && typeof this.inverse === 'boolean') {\n // Deprecate inverse\n warn(\"b-table: prop 'inverse' has been deprecated. Use 'dark' instead\");\n return this.dark;\n }\n return false;\n }\n },\n inverse: {\n // Deprecated in v1.0.0 in favor of `dark`\n type: Boolean,\n default: null\n },\n hover: {\n type: Boolean,\n default: false\n },\n small: {\n type: Boolean,\n default: false\n },\n fixed: {\n type: Boolean,\n default: false\n },\n footClone: {\n type: Boolean,\n default: false\n },\n responsive: {\n type: [Boolean, String],\n default: false\n },\n stacked: {\n type: [Boolean, String],\n default: false\n },\n headVariant: {\n type: String,\n default: ''\n },\n footVariant: {\n type: String,\n default: ''\n },\n theadClass: {\n type: [String, Array],\n default: null\n },\n theadTrClass: {\n type: [String, Array],\n default: null\n },\n tbodyClass: {\n type: [String, Array],\n default: null\n },\n tbodyTrClass: {\n type: [String, Array],\n default: null\n },\n tfootClass: {\n type: [String, Array],\n default: null\n },\n tfootTrClass: {\n type: [String, Array],\n default: null\n },\n perPage: {\n type: Number,\n default: 0\n },\n currentPage: {\n type: Number,\n default: 1\n },\n filter: {\n type: [String, RegExp, Function],\n default: null\n },\n sortCompare: {\n type: Function,\n default: null\n },\n noLocalSorting: {\n type: Boolean,\n default: false\n },\n noProviderPaging: {\n type: Boolean,\n default: false\n },\n noProviderSorting: {\n type: Boolean,\n default: false\n },\n noProviderFiltering: {\n type: Boolean,\n default: false\n },\n busy: {\n type: Boolean,\n default: false\n },\n value: {\n type: Array,\n default: function _default() {\n return [];\n }\n },\n labelSortAsc: {\n type: String,\n default: 'Click to sort Ascending'\n },\n labelSortDesc: {\n type: String,\n default: 'Click to sort Descending'\n },\n showEmpty: {\n type: Boolean,\n default: false\n },\n emptyText: {\n type: String,\n default: 'There are no records to show'\n },\n emptyFilteredText: {\n type: String,\n default: 'There are no records matching your request'\n },\n apiUrl: {\n // Passthrough prop. Passed to the context object. Not used by b-table directly\n type: String,\n default: ''\n }\n },\n watch: {\n items: function items(newVal, oldVal) {\n if (oldVal !== newVal) {\n this._providerUpdate();\n }\n },\n context: function context(newVal, oldVal) {\n if (!looseEqual(newVal, oldVal)) {\n this.$emit('context-changed', newVal);\n }\n },\n filteredItems: function filteredItems(newVal, oldVal) {\n if (this.localFiltering && newVal.length !== oldVal.length) {\n // Emit a filtered notification event, as number of filtered items has changed\n this.$emit('filtered', newVal);\n }\n },\n sortDesc: function sortDesc(newVal, oldVal) {\n if (newVal === this.localSortDesc) {\n return;\n }\n this.localSortDesc = newVal || false;\n },\n localSortDesc: function localSortDesc(newVal, oldVal) {\n // Emit update to sort-desc.sync\n if (newVal !== oldVal) {\n this.$emit('update:sortDesc', newVal);\n if (!this.noProviderSorting) {\n this._providerUpdate();\n }\n }\n },\n sortBy: function sortBy(newVal, oldVal) {\n if (newVal === this.localSortBy) {\n return;\n }\n this.localSortBy = newVal || null;\n },\n localSortBy: function localSortBy(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('update:sortBy', newVal);\n if (!this.noProviderSorting) {\n this._providerUpdate();\n }\n }\n },\n perPage: function perPage(newVal, oldVal) {\n if (oldVal !== newVal && !this.noProviderPaging) {\n this._providerUpdate();\n }\n },\n currentPage: function currentPage(newVal, oldVal) {\n if (oldVal !== newVal && !this.noProviderPaging) {\n this._providerUpdate();\n }\n },\n filter: function filter(newVal, oldVal) {\n if (oldVal !== newVal && !this.noProviderFiltering) {\n this._providerUpdate();\n }\n },\n localBusy: function localBusy(newVal, oldVal) {\n if (newVal !== oldVal) {\n this.$emit('update:busy', newVal);\n }\n }\n },\n mounted: function mounted() {\n var _this2 = this;\n\n this.localSortBy = this.sortBy;\n this.localSortDesc = this.sortDesc;\n if (this.hasProvider) {\n this._providerUpdate();\n }\n this.listenOnRoot('bv::refresh::table', function (id) {\n if (id === _this2.id || id === _this2) {\n _this2._providerUpdate();\n }\n });\n },\n\n computed: {\n isStacked: function isStacked() {\n return this.stacked === '' ? true : this.stacked;\n },\n isResponsive: function isResponsive() {\n var responsive = this.responsive === '' ? true : this.responsive;\n return this.isStacked ? false : responsive;\n },\n responsiveClass: function responsiveClass() {\n return this.isResponsive === true ? 'table-responsive' : this.isResponsive ? 'table-responsive-' + this.responsive : '';\n },\n tableClasses: function tableClasses() {\n return ['table', 'b-table', this.striped ? 'table-striped' : '', this.hover ? 'table-hover' : '', this.dark ? 'table-dark' : '', this.bordered ? 'table-bordered' : '', this.small ? 'table-sm' : '', this.outlined ? 'border' : '', this.fixed ? 'b-table-fixed' : '', this.isStacked === true ? 'b-table-stacked' : this.isStacked ? 'b-table-stacked-' + this.stacked : ''];\n },\n headClasses: function headClasses() {\n return [this.headVariant ? 'thead-' + this.headVariant : '', this.theadClass];\n },\n bodyClasses: function bodyClasses() {\n return [this.tbodyClass];\n },\n footClasses: function footClasses() {\n var variant = this.footVariant || this.headVariant || null;\n return [variant ? 'thead-' + variant : '', this.tfootClass];\n },\n captionStyles: function captionStyles() {\n // Move caption to top\n return this.captionTop ? { captionSide: 'top' } : {};\n },\n hasProvider: function hasProvider() {\n return this.items instanceof Function;\n },\n localFiltering: function localFiltering() {\n return this.hasProvider ? this.noProviderFiltering : true;\n },\n localSorting: function localSorting() {\n return this.hasProvider ? this.noProviderSorting : !this.noLocalSorting;\n },\n localPaging: function localPaging() {\n return this.hasProvider ? this.noProviderPaging : true;\n },\n context: function context() {\n return {\n perPage: this.perPage,\n currentPage: this.currentPage,\n filter: this.filter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n apiUrl: this.apiUrl\n };\n },\n computedFields: function computedFields() {\n var _this3 = this;\n\n // We normalize fields into an array of objects\n // [ { key:..., label:..., ...}, {...}, ..., {..}]\n var fields = [];\n if (isArray(this.fields)) {\n // Normalize array Form\n this.fields.filter(function (f) {\n return f;\n }).forEach(function (f) {\n if (typeof f === 'string') {\n fields.push({ key: f, label: startCase(f) });\n } else if ((typeof f === 'undefined' ? 'undefined' : _typeof(f)) === 'object' && f.key && typeof f.key === 'string') {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(assign({}, f));\n } else if ((typeof f === 'undefined' ? 'undefined' : _typeof(f)) === 'object' && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n var key = keys(f)[0];\n var field = processField(key, f[key]);\n if (field) {\n fields.push(field);\n }\n }\n });\n } else if (this.fields && _typeof(this.fields) === 'object' && keys(this.fields).length > 0) {\n // Normalize object Form\n keys(this.fields).forEach(function (key) {\n var field = processField(key, _this3.fields[key]);\n if (field) {\n fields.push(field);\n }\n });\n }\n // If no field provided, take a sample from first record (if exits)\n if (fields.length === 0 && this.computedItems.length > 0) {\n var sample = this.computedItems[0];\n var ignoredKeys = ['_rowVariant', '_cellVariants', '_showDetails'];\n keys(sample).forEach(function (k) {\n if (!ignoredKeys.includes(k)) {\n fields.push({ key: k, label: startCase(k) });\n }\n });\n }\n // Ensure we have a unique array of fields and that they have String labels\n var memo = {};\n return fields.filter(function (f) {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = typeof f.label === 'string' ? f.label : startCase(f.key);\n return true;\n }\n return false;\n });\n },\n computedItems: function computedItems() {\n // Grab some props/data to ensure reactivity\n var perPage = this.perPage;\n var currentPage = this.currentPage;\n var filter = this.filter;\n var sortBy = this.localSortBy;\n var sortDesc = this.localSortDesc;\n var sortCompare = this.sortCompare;\n var localFiltering = this.localFiltering;\n var localSorting = this.localSorting;\n var localPaging = this.localPaging;\n var items = this.hasProvider ? this.localItems : this.items;\n if (!items) {\n this.$nextTick(this._providerUpdate);\n return [];\n }\n // Array copy for sorting, filtering, etc.\n items = items.slice();\n // Apply local filter\n if (filter && localFiltering) {\n if (filter instanceof Function) {\n items = items.filter(filter);\n } else {\n var regex = void 0;\n if (filter instanceof RegExp) {\n regex = filter;\n } else {\n regex = new RegExp('.*' + filter + '.*', 'ig');\n }\n items = items.filter(function (item) {\n var test = regex.test(recToString(item));\n regex.lastIndex = 0;\n return test;\n });\n }\n }\n if (localFiltering) {\n // Make a local copy of filtered items to trigger filtered event\n this.filteredItems = items.slice();\n }\n // Apply local Sort\n if (sortBy && localSorting) {\n items = stableSort(items, function (a, b) {\n var ret = null;\n if (typeof sortCompare === 'function') {\n // Call user provided sortCompare routine\n ret = sortCompare(a, b, sortBy);\n }\n if (ret === null || ret === undefined) {\n // Fallback to defaultSortCompare if sortCompare not defined or returns null\n ret = defaultSortCompare(a, b, sortBy);\n }\n // Handle sorting direction\n return (ret || 0) * (sortDesc ? -1 : 1);\n });\n }\n // Apply local pagination\n if (Boolean(perPage) && localPaging) {\n // Grab the current page of data (which may be past filtered items)\n items = items.slice((currentPage - 1) * perPage, currentPage * perPage);\n }\n // Update the value model with the filtered/sorted/paginated data set\n this.$emit('input', items);\n return items;\n },\n computedBusy: function computedBusy() {\n return this.busy || this.localBusy;\n }\n },\n methods: {\n keys: keys,\n fieldClasses: function fieldClasses(field) {\n return [field.sortable ? 'sorting' : '', field.sortable && this.localSortBy === field.key ? 'sorting_' + (this.localSortDesc ? 'desc' : 'asc') : '', field.variant ? 'table-' + field.variant : '', field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n tdClasses: function tdClasses(field, item) {\n var cellVariant = '';\n if (item._cellVariants && item._cellVariants[field.key]) {\n cellVariant = (this.dark ? 'bg' : 'table') + '-' + item._cellVariants[field.key];\n }\n return [field.variant && !cellVariant ? (this.dark ? 'bg' : 'table') + '-' + field.variant : '', cellVariant, field.class ? field.class : '', this.getTdValues(item, field.key, field.tdClass, '')];\n },\n tdAttrs: function tdAttrs(field, item, colIndex) {\n var attrs = {};\n attrs['aria-colindex'] = String(colIndex + 1);\n if (this.isStacked) {\n // Generate the \"header cell\" label content in stacked mode\n attrs['data-label'] = field.label;\n if (field.isRowHeader) {\n attrs['role'] = 'rowheader';\n } else {\n attrs['role'] = 'cell';\n }\n }\n return assign({}, attrs, this.getTdValues(item, field.key, field.tdAttr, {}));\n },\n rowClasses: function rowClasses(item) {\n return [item._rowVariant ? (this.dark ? 'bg' : 'table') + '-' + item._rowVariant : '', this.tbodyTrClass];\n },\n rowClicked: function rowClicked(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return;\n }\n this.$emit('row-clicked', item, index, e);\n },\n rowDblClicked: function rowDblClicked(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return;\n }\n this.$emit('row-dblclicked', item, index, e);\n },\n rowHovered: function rowHovered(e, item, index) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return;\n }\n this.$emit('row-hovered', item, index, e);\n },\n headClicked: function headClicked(e, field) {\n if (this.stopIfBusy(e)) {\n // If table is busy (via provider) then don't propagate\n return;\n }\n var sortChanged = false;\n if (field.sortable) {\n if (field.key === this.localSortBy) {\n // Change sorting direction on current column\n this.localSortDesc = !this.localSortDesc;\n } else {\n // Start sorting this column ascending\n this.localSortBy = field.key;\n this.localSortDesc = false;\n }\n sortChanged = true;\n } else if (this.localSortBy) {\n this.localSortBy = null;\n this.localSortDesc = false;\n sortChanged = true;\n }\n this.$emit('head-clicked', field.key, field, e);\n if (sortChanged) {\n // Sorting parameters changed\n this.$emit('sort-changed', this.context);\n }\n },\n stopIfBusy: function stopIfBusy(evt) {\n if (this.computedBusy) {\n // If table is busy (via provider) then don't propagate\n evt.preventDefault();\n evt.stopPropagation();\n return true;\n }\n return false;\n },\n refresh: function refresh() {\n // Expose refresh method\n if (this.hasProvider) {\n this._providerUpdate();\n }\n },\n _providerSetLocal: function _providerSetLocal(items) {\n this.localItems = items && items.length > 0 ? items.slice() : [];\n this.localBusy = false;\n this.$emit('refreshed');\n // Deprecated root emit\n this.emitOnRoot('table::refreshed', this.id);\n // New root emit\n if (this.id) {\n this.emitOnRoot('bv::table::refreshed', this.id);\n }\n },\n _providerUpdate: function _providerUpdate() {\n var _this4 = this;\n\n // Refresh the provider items\n if (this.computedBusy || !this.hasProvider) {\n // Don't refresh remote data if we are 'busy' or if no provider\n return;\n }\n // Set internal busy state\n this.localBusy = true;\n // Call provider function with context and optional callback\n var data = this.items(this.context, this._providerSetLocal);\n if (data && data.then && typeof data.then === 'function') {\n // Provider returned Promise\n data.then(function (items) {\n _this4._providerSetLocal(items);\n });\n } else {\n // Provider returned Array data\n this._providerSetLocal(data);\n }\n },\n getTdValues: function getTdValues(item, key, tdValue, defValue) {\n var parent = this.$parent;\n if (tdValue) {\n if (typeof tdValue === 'function') {\n var value = get(item, key);\n return tdValue(value, key, item);\n } else if (typeof tdValue === 'string' && typeof parent[tdValue] === 'function') {\n var _value = get(item, key);\n return parent[tdValue](_value, key, item);\n }\n return tdValue;\n }\n return defValue;\n },\n getFormattedValue: function getFormattedValue(item, field) {\n var key = field.key;\n var formatter = field.formatter;\n var parent = this.$parent;\n var value = get(item, key);\n if (formatter) {\n if (typeof formatter === 'function') {\n value = formatter(value, key, item);\n } else if (typeof formatter === 'string' && typeof parent[formatter] === 'function') {\n value = parent[formatter](value, key, item);\n }\n }\n return value;\n }\n }\n};","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f\\\\ufe20-\\\\ufe23',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20f0',\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboMarksRange + rsComboSymbolsRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsLowerMisc = '(?:' + rsLower + '|' + rsMisc + ')',\n rsUpperMisc = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptLowerContr = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptUpperContr = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptLowerContr + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsUpperMisc + '+' + rsOptUpperContr + '(?=' + [rsBreak, rsUpper + rsLowerMisc, '$'].join('|') + ')',\n rsUpper + '?' + rsLowerMisc + '+' + rsOptLowerContr,\n rsUpper + '+' + rsOptUpperContr,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboMarksRange + rsComboSymbolsRange + rsVarRange + ']');\n\n/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2,}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 'ss'\n};\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\n/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\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 objectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\n/**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\nvar startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n});\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = startCase;\n","/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n symbolTag = '[object Symbol]';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n reLeadingDot = /^\\./,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\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\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\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 objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Symbol = root.Symbol,\n splice = arrayProto.splice;\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = isKey(path, object) ? [path] : castPath(path);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value) {\n return isArray(value) ? value : stringToPath(value);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoize(function(string) {\n string = toString(string);\n\n var result = [];\n if (reLeadingDot.test(string)) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, string) {\n result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result);\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Assign cache to `_.memoize`.\nmemoize.Cache = MapCache;\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\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 array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is classified as a `Function` object.\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 a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\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 && (type == 'object' || type == 'function');\n}\n\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 && typeof value == 'object';\n}\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) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/*\n * Consitant and stable sort function across JavsaScript platforms\n *\n * Inconsistant sorts can cause SSR problems between client and server\n * such as in <b-table> if sortBy is applied to the data on server side render.\n * Chrome and V8 native sorts are inconsistant/unstable\n *\n * This function uses native sort with fallback to index compare when the a and b\n * compare returns 0\n *\n * Algorithm bsaed on:\n * https://stackoverflow.com/questions/1427608/fast-stable-sorting-algorithm-implementation-in-javascript/45422645#45422645\n *\n * @param {array} array to sort\n * @param {function} sortcompare function\n * @return {array}\n */\n\nexport default function stableSort(array, compareFn) {\n // Using `.bind(compareFn)` on the wrapped anonymous function improves\n // performance by avoiding the function call setup. We don't use an arrow\n // function here as it binds `this` to the `stableSort` context rather than\n // the `compareFn` context, which wouldn't give us the performance increase.\n return array.map(function (a, index) {\n return [index, a];\n }).sort(function (a, b) {\n return this(a[1], b[1]) || a[0] - b[0];\n }.bind(compareFn)).map(function (e) {\n return e[1];\n });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../css-loader/index.js!./table.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c5e7f37c\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../../css-loader/index.js!./table.css\", function() {\n var newContent = require(\"!!../../../../css-loader/index.js!./table.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/* Add support for fixed layout table */\\ntable.b-table.b-table-fixed {\\n table-layout: fixed;\\n}\\n\\n/* Busy table styling */\\ntable.b-table[aria-busy='false'] {\\n opacity: 1;\\n}\\ntable.b-table[aria-busy='true'] {\\n opacity: 0.6;\\n}\\n\\n/* Sort styling */\\ntable.b-table > thead > tr > th,\\ntable.b-table > tfoot > tr > th {\\n position: relative;\\n}\\ntable.b-table > thead > tr > th.sorting,\\ntable.b-table > tfoot > tr > th.sorting {\\n padding-right: 1.5em;\\n cursor: pointer;\\n}\\ntable.b-table > thead > tr > th.sorting::before,\\ntable.b-table > thead > tr > th.sorting::after,\\ntable.b-table > tfoot > tr > th.sorting::before,\\ntable.b-table > tfoot > tr > th.sorting::after {\\n position: absolute;\\n bottom: 0;\\n display: block;\\n opacity: 0.4;\\n padding-bottom: inherit;\\n font-size: inherit;\\n line-height: 180%;\\n}\\ntable.b-table > thead > tr > th.sorting::before,\\ntable.b-table > tfoot > tr > th.sorting::before {\\n right: 0.75em;\\n content: '\\\\2191';\\n}\\ntable.b-table > thead > tr > th.sorting::after,\\ntable.b-table > tfoot > tr > th.sorting::after {\\n right: 0.25em;\\n content: '\\\\2193';\\n}\\ntable.b-table > thead > tr > th.sorting_asc::after,\\ntable.b-table > thead > tr > th.sorting_desc::before,\\ntable.b-table > tfoot > tr > th.sorting_asc::after,\\ntable.b-table > tfoot > tr > th.sorting_desc::before {\\n opacity: 1;\\n}\\n\\n/* Stacked table layout */\\n/* Derived from http://blog.adrianroselli.com/2017/11/a-responsive-accessible-table.html */\\n/* Always stacked */\\ntable.b-table.b-table-stacked {\\n width: 100%;\\n}\\ntable.b-table.b-table-stacked,\\ntable.b-table.b-table-stacked > tbody,\\ntable.b-table.b-table-stacked > tbody > tr,\\ntable.b-table.b-table-stacked > tbody > tr > td,\\ntable.b-table.b-table-stacked > tbody > tr > th,\\ntable.b-table.b-table-stacked > caption {\\n display: block;\\n}\\n\\n/* Hide stuff we can't deal with, or shouldn't show */\\ntable.b-table.b-table-stacked > thead,\\ntable.b-table.b-table-stacked > tfoot,\\ntable.b-table.b-table-stacked > tbody > tr.b-table-top-row,\\ntable.b-table.b-table-stacked > tbody > tr.b-table-bottom-row {\\n display: none;\\n}\\n\\n/* inter-row top border */\\ntable.b-table.b-table-stacked > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n}\\n\\n/* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\ntable.b-table.b-table-stacked > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n}\\n\\n/* generate row cell \\\"heading\\\" */\\ntable.b-table.b-table-stacked > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n}\\n\\n@media all and (max-width: 575.99px) {\\n /* Under SM */\\n table.b-table.b-table-stacked-sm {\\n width: 100%;\\n }\\n table.b-table.b-table-stacked-sm,\\n table.b-table.b-table-stacked-sm > tbody,\\n table.b-table.b-table-stacked-sm > tbody > tr,\\n table.b-table.b-table-stacked-sm > tbody > tr > td,\\n table.b-table.b-table-stacked-sm > tbody > tr > th,\\n table.b-table.b-table-stacked-sm > caption {\\n display: block;\\n }\\n /* hide stuff we can't deal with, or shouldn't show */\\n table.b-table.b-table-stacked-sm > thead,\\n table.b-table.b-table-stacked-sm > tfoot,\\n table.b-table.b-table-stacked-sm > tbody > tr.b-table-top-row,\\n table.b-table.b-table-stacked-sm > tbody > tr.b-table-bottom-row {\\n display: none;\\n }\\n /* inter-row top border */\\n table.b-table.b-table-stacked-sm > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n }\\n /* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\n table.b-table.b-table-stacked-sm > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n }\\n /* generate row cell \\\"heading\\\" */\\n table.b-table.b-table-stacked-sm > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n }\\n}\\n\\n@media all and (max-width: 767.99px) {\\n /* under MD */\\n table.b-table.b-table-stacked-md {\\n width: 100%;\\n }\\n table.b-table.b-table-stacked-md,\\n table.b-table.b-table-stacked-md > tbody,\\n table.b-table.b-table-stacked-md > tbody > tr,\\n table.b-table.b-table-stacked-md > tbody > tr > td,\\n table.b-table.b-table-stacked-md > tbody > tr > th,\\n table.b-table.b-table-stacked-md > caption {\\n display: block;\\n }\\n /* hide stuff we can't deal with, or shouldn't show */\\n table.b-table.b-table-stacked-md > thead,\\n table.b-table.b-table-stacked-md > tfoot,\\n table.b-table.b-table-stacked-md > tbody > tr.b-table-top-row,\\n table.b-table.b-table-stacked-md > tbody > tr.b-table-bottom-row {\\n display: none;\\n }\\n /* inter-row top border */\\n table.b-table.b-table-stacked-md > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n }\\n /* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\n table.b-table.b-table-stacked-md > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n }\\n /* generate row cell \\\"heading\\\" */\\n table.b-table.b-table-stacked-md > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n }\\n}\\n\\n@media all and (max-width: 991.99px) {\\n /* under LG */\\n table.b-table.b-table-stacked-lg {\\n width: 100%;\\n }\\n table.b-table.b-table-stacked-lg,\\n table.b-table.b-table-stacked-lg > tbody,\\n table.b-table.b-table-stacked-lg > tbody > tr,\\n table.b-table.b-table-stacked-lg > tbody > tr > td,\\n table.b-table.b-table-stacked-lg > tbody > tr > th,\\n table.b-table.b-table-stacked-lg > caption {\\n display: block;\\n }\\n /* hide stuff we can't deal with, or shouldn't show */\\n table.b-table.b-table-stacked-lg > thead,\\n table.b-table.b-table-stacked-lg > tfoot,\\n table.b-table.b-table-stacked-lg > tbody > tr.b-table-top-row,\\n table.b-table.b-table-stacked-lg > tbody > tr.b-table-bottom-row {\\n display: none;\\n }\\n /* inter-row top border */\\n table.b-table.b-table-stacked-lg > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n }\\n /* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\n table.b-table.b-table-stacked-lg > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n }\\n /* generate row cell \\\"heading\\\" */\\n table.b-table.b-table-stacked-lg > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n }\\n}\\n\\n@media all and (max-width: 1199.99px) {\\n /* under XL */\\n table.b-table.b-table-stacked-xl {\\n width: 100%;\\n }\\n table.b-table.b-table-stacked-xl,\\n table.b-table.b-table-stacked-xl > tbody,\\n table.b-table.b-table-stacked-xl > tbody > tr,\\n table.b-table.b-table-stacked-xl > tbody > tr > td,\\n table.b-table.b-table-stacked-xl > tbody > tr > th,\\n table.b-table.b-table-stacked-xl > caption {\\n display: block;\\n }\\n /* hide stuff we can't deal with, or shouldn't show */\\n table.b-table.b-table-stacked-xl > thead,\\n table.b-table.b-table-stacked-xl > tfoot,\\n table.b-table.b-table-stacked-xl > tbody > tr.b-table-top-row,\\n table.b-table.b-table-stacked-xl > tbody > tr.b-table-bottom-row {\\n display: none;\\n }\\n /* inter-row top border */\\n table.b-table.b-table-stacked-xl > tbody > tr > :first-child {\\n border-top-width: 0.4rem;\\n }\\n /* convert TD/TH contents to \\\"cells\\\". Caveat: child elements become cells! */\\n table.b-table.b-table-stacked-xl > tbody > tr > [data-label] {\\n display: grid;\\n grid-template-columns: 40% auto;\\n grid-gap: 0.25rem 1rem;\\n }\\n /* generate row cell \\\"heading\\\" */\\n table.b-table.b-table-stacked-xl > tbody > tr > [data-label]::before {\\n content: attr(data-label);\\n display: inline;\\n text-align: right;\\n overflow-wrap: break-word;\\n font-weight: bold;\\n font-style: normal;\\n }\\n}\\n\\n/* Details row styling */\\ntable.b-table > tbody > tr.b-table-details > td {\\n border-top: none;\\n}\\n\", \"\"]);\n\n// exports\n","import bTabs from './tabs';\nimport bTab from './tab';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bTabs: bTabs,\n bTab: bTab\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport KeyCodes from '../../utils/key-codes';\nimport observeDom from '../../utils/observe-dom';\nimport idMixin from '../../mixins/id';\n\n// Helper component\nvar bTabButtonHelper = {\n name: 'bTabButtonHelper',\n props: {\n content: { type: [String, Array], default: '' },\n href: { type: String, default: '#' },\n posInSet: { type: Number, default: null },\n setSize: { type: Number, default: null },\n controls: { type: String, default: null },\n id: { type: String, default: null },\n active: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n linkClass: { default: null },\n itemClass: { default: null },\n noKeyNav: { type: Boolean, default: false }\n },\n render: function render(h) {\n var link = h('a', {\n class: ['nav-link', { active: this.active, disabled: this.disabled }, this.linkClass],\n attrs: {\n role: 'tab',\n tabindex: this.noKeyNav ? null : '-1',\n href: this.href,\n id: this.id,\n disabled: this.disabled,\n 'aria-selected': this.active ? 'true' : 'false',\n 'aria-setsize': this.setSize,\n 'aria-posinset': this.posInSet,\n 'aria-controls': this.controls\n },\n on: {\n click: this.handleClick,\n keydown: this.handleClick\n }\n }, this.content);\n return h('li', { class: ['nav-item', this.itemClass], attrs: { role: 'presentation' } }, [link]);\n },\n\n methods: {\n handleClick: function handleClick(evt) {\n function stop() {\n evt.preventDefault();\n evt.stopPropagation();\n }\n if (evt.type !== 'click' && this.noKeyNav) {\n return;\n }\n if (this.disabled) {\n stop();\n return;\n }\n if (evt.type === 'click' || evt.keyCode === KeyCodes.ENTER || evt.keyCode === KeyCodes.SPACE) {\n stop();\n this.$emit('click', evt);\n }\n }\n }\n};\n\nexport default {\n mixins: [idMixin],\n render: function render(h) {\n var _this = this,\n _ref;\n\n var tabs = this.tabs;\n // Navigation 'buttons'\n var buttons = tabs.map(function (tab, index) {\n return h(bTabButtonHelper, {\n key: index,\n props: {\n content: tab.$slots.title || tab.title,\n href: tab.href,\n id: tab.controlledBy || _this.safeId('_BV_tab_' + (index + 1) + '_'),\n active: tab.localActive,\n disabled: tab.disabled,\n setSize: tabs.length,\n posInSet: index + 1,\n controls: _this.safeId('_BV_tab_container_'),\n linkClass: tab.titleLinkClass,\n itemClass: tab.titleItemClass,\n noKeyNav: _this.noKeyNav\n },\n on: {\n click: function click(evt) {\n _this.setTab(index);\n }\n }\n });\n });\n\n // Nav 'button' wrapper\n var navs = h('ul', {\n class: ['nav', (_ref = {}, _defineProperty(_ref, 'nav-' + this.navStyle, !this.noNavStyle), _defineProperty(_ref, 'card-header-' + this.navStyle, this.card && !this.vertical), _defineProperty(_ref, 'card-header', this.card && this.vertical), _defineProperty(_ref, 'h-100', this.card && this.vertical), _defineProperty(_ref, 'flex-column', this.vertical), _defineProperty(_ref, 'border-bottom-0', this.vertical), _defineProperty(_ref, 'rounded-0', this.vertical), _defineProperty(_ref, 'small', this.small), _ref), this.navClass],\n attrs: {\n role: 'tablist',\n tabindex: this.noKeyNav ? null : '0',\n id: this.safeId('_BV_tab_controls_')\n },\n on: { keydown: this.onKeynav }\n }, [buttons, this.$slots.tabs]);\n navs = h('div', {\n class: [{\n 'card-header': this.card && !this.vertical && !(this.end || this.bottom),\n 'card-footer': this.card && !this.vertical && (this.end || this.bottom),\n 'col-auto': this.vertical\n }, this.navWrapperClass]\n }, [navs]);\n\n var empty = void 0;\n if (tabs && tabs.length) {\n empty = h(false);\n } else {\n empty = h('div', { class: ['tab-pane', 'active', { 'card-body': this.card }] }, this.$slots.empty);\n }\n\n // Main content section\n var content = h('div', {\n ref: 'tabsContainer',\n class: ['tab-content', { col: this.vertical }, this.contentClass],\n attrs: { id: this.safeId('_BV_tab_container_') }\n }, [this.$slots.default, empty]);\n\n // Render final output\n return h(this.tag, {\n class: ['tabs', { row: this.vertical, 'no-gutters': this.vertical && this.card }],\n attrs: { id: this.safeId() }\n }, [this.end || this.bottom ? content : h(false), [navs], this.end || this.bottom ? h(false) : content]);\n },\n data: function data() {\n return {\n currentTab: this.value,\n tabs: []\n };\n },\n\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n card: {\n type: Boolean,\n default: false\n },\n small: {\n type: Boolean,\n default: false\n },\n value: {\n type: Number,\n default: null\n },\n pills: {\n type: Boolean,\n default: false\n },\n vertical: {\n type: Boolean,\n default: false\n },\n bottom: {\n type: Boolean,\n default: false\n },\n end: {\n // Synonym for 'bottom'\n type: Boolean,\n default: false\n },\n noFade: {\n type: Boolean,\n default: false\n },\n noNavStyle: {\n type: Boolean,\n default: false\n },\n noKeyNav: {\n type: Boolean,\n default: false\n },\n lazy: {\n // This prop is sniffed by the tab child\n type: Boolean,\n default: false\n },\n contentClass: {\n type: [String, Array, Object],\n default: null\n },\n navClass: {\n type: [String, Array, Object],\n default: null\n },\n navWrapperClass: {\n type: [String, Array, Object],\n default: null\n }\n },\n watch: {\n currentTab: function currentTab(val, old) {\n if (val === old) {\n return;\n }\n this.$root.$emit('changed::tab', this, val, this.tabs[val]);\n this.$emit('input', val);\n this.tabs[val].$emit('click');\n },\n value: function value(val, old) {\n if (val === old) {\n return;\n }\n if (typeof old !== 'number') {\n old = 0;\n }\n // Moving left or right?\n var direction = val < old ? -1 : 1;\n this.setTab(val, false, direction);\n }\n },\n computed: {\n fade: function fade() {\n // This computed prop is sniffed by the tab child\n return !this.noFade;\n },\n navStyle: function navStyle() {\n return this.pills ? 'pills' : 'tabs';\n }\n },\n methods: {\n /**\n * Util: Return the sign of a number (as -1, 0, or 1)\n */\n sign: function sign(x) {\n return x === 0 ? 0 : x > 0 ? 1 : -1;\n },\n\n /*\n * handle keyboard navigation\n */\n onKeynav: function onKeynav(evt) {\n if (this.noKeyNav) {\n return;\n }\n var key = evt.keyCode;\n var shift = evt.shiftKey;\n function stop() {\n evt.preventDefault();\n evt.stopPropagation();\n }\n if (key === KeyCodes.UP || key === KeyCodes.LEFT) {\n stop();\n if (shift) {\n this.setTab(0, false, 1);\n } else {\n this.previousTab();\n }\n } else if (key === KeyCodes.DOWN || key === KeyCodes.RIGHT) {\n stop();\n if (shift) {\n this.setTab(this.tabs.length - 1, false, -1);\n } else {\n this.nextTab();\n }\n }\n },\n\n /**\n * Move to next tab\n */\n nextTab: function nextTab() {\n this.setTab(this.currentTab + 1, false, 1);\n },\n\n /**\n * Move to previous tab\n */\n previousTab: function previousTab() {\n this.setTab(this.currentTab - 1, false, -1);\n },\n\n /**\n * Set active tab on the tabs collection and the child 'tab' component\n * Index is the tab we want to activate. Direction is the direction we are moving\n * so if the tab we requested is disabled, we can skip over it.\n * Force is used by updateTabs to ensure we have cleared any previous active tabs.\n */\n setTab: function setTab(index, force, direction) {\n var _this2 = this;\n\n direction = this.sign(direction || 0);\n index = index || 0;\n // Prevent setting same tab and infinite loops!\n if (!force && index === this.currentTab) {\n return;\n }\n var tab = this.tabs[index];\n // Don't go beyond indexes!\n if (!tab) {\n // Reset the v-model to the current Tab\n this.$emit('input', this.currentTab);\n return;\n }\n // Ignore or Skip disabled\n if (tab.disabled) {\n if (direction) {\n // Skip to next non disabled tab in specified direction (recursive)\n this.setTab(index + direction, force, direction);\n }\n return;\n }\n // Activate requested current tab, and deactivte any old tabs\n this.tabs.forEach(function (t) {\n if (t === tab) {\n // Set new tab as active\n _this2.$set(t, 'localActive', true);\n } else {\n // Ensure non current tabs are not active\n _this2.$set(t, 'localActive', false);\n }\n });\n // Update currentTab\n this.currentTab = index;\n },\n\n /**\n * Dynamically update tabs list\n */\n updateTabs: function updateTabs() {\n // Probe tabs\n this.tabs = this.$children.filter(function (child) {\n return child._isTab;\n });\n // Set initial active tab\n var tabIndex = null;\n // Find *last* active non-dsabled tab in current tabs\n // We trust tab state over currentTab\n this.tabs.forEach(function (tab, index) {\n if (tab.localActive && !tab.disabled) {\n tabIndex = index;\n }\n });\n // Else try setting to currentTab\n if (tabIndex === null) {\n if (this.currentTab >= this.tabs.length) {\n // Handle last tab being removed\n this.setTab(this.tabs.length - 1, true, -1);\n return;\n } else if (this.tabs[this.currentTab] && !this.tabs[this.currentTab].disabled) {\n tabIndex = this.currentTab;\n }\n }\n // Else find *first* non-disabled tab in current tabs\n if (tabIndex === null) {\n this.tabs.forEach(function (tab, index) {\n if (!tab.disabled && tabIndex === null) {\n tabIndex = index;\n }\n });\n }\n this.setTab(tabIndex || 0, true, 0);\n }\n },\n mounted: function mounted() {\n this.updateTabs();\n // Observe Child changes so we can notify tabs change\n observeDom(this.$refs.tabsContainer, this.updateTabs.bind(this), {\n subtree: false\n });\n }\n};","import idMixin from '../../mixins/id';\n\nexport default {\n mixins: [idMixin],\n render: function render(h) {\n var content = h(false);\n if (this.localActive || !this.computedLazy) {\n content = h(this.tag, {\n ref: 'panel',\n class: this.tabClasses,\n directives: [{ name: 'show', value: this.localActive }],\n attrs: {\n role: 'tabpanel',\n id: this.safeId(),\n 'aria-hidden': this.localActive ? 'false' : 'true',\n 'aria-expanded': this.localActive ? 'true' : 'false',\n 'aria-lablelledby': this.controlledBy || null\n }\n }, [this.$slots.default]);\n }\n return h('transition', {\n props: { mode: 'out-in' },\n on: {\n beforeEnter: this.beforeEnter,\n afterEnter: this.afterEnter,\n afterLeave: this.afterLeave\n }\n }, [content]);\n },\n\n methods: {\n beforeEnter: function beforeEnter() {\n this.show = false;\n },\n afterEnter: function afterEnter() {\n this.show = true;\n },\n afterLeave: function afterLeave() {\n this.show = false;\n }\n },\n data: function data() {\n return {\n localActive: this.active && !this.disabled,\n show: false\n };\n },\n mounted: function mounted() {\n this.show = this.localActive;\n },\n\n computed: {\n tabClasses: function tabClasses() {\n return ['tab-pane', this.$parent && this.$parent.card && !this.noBody ? 'card-body' : '', this.show ? 'show' : '', this.computedFade ? 'fade' : '', this.disabled ? 'disabled' : '', this.localActive ? 'active' : ''];\n },\n controlledBy: function controlledBy() {\n return this.buttonId || this.safeId('__BV_tab_button__');\n },\n computedFade: function computedFade() {\n return this.$parent.fade;\n },\n computedLazy: function computedLazy() {\n return this.$parent.lazy;\n },\n _isTab: function _isTab() {\n // For parent sniffing of child\n return true;\n }\n },\n props: {\n active: {\n type: Boolean,\n default: false\n },\n tag: {\n type: String,\n default: 'div'\n },\n buttonId: {\n type: String,\n default: ''\n },\n title: {\n type: String,\n default: ''\n },\n titleItemClass: {\n // Sniffed by tabs.vue and added to nav 'li.nav-item'\n type: [String, Array, Object],\n default: null\n },\n titleLinkClass: {\n // Sniffed by tabs.vue and added to nav 'a.nav-link'\n type: [String, Array, Object],\n default: null\n },\n headHtml: {\n // Is this actually ever used?\n type: String,\n default: null\n },\n disabled: {\n type: Boolean,\n default: false\n },\n noBody: {\n type: Boolean,\n default: false\n },\n href: {\n type: String,\n default: '#'\n }\n }\n};","import bTooltip from './tooltip';\nimport { registerComponents, vueUse } from '../../utils/plugins';\n\nvar components = {\n bTooltip: bTooltip\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerComponents(Vue, components);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","import ToolTip from '../../utils/tooltip.class';\nimport warn from '../../utils/warn';\nimport toolpopMixin from '../../mixins/toolpop';\n\nexport default {\n mixins: [toolpopMixin],\n render: function render(h) {\n return h('div', { class: ['d-none'], style: { display: 'none' }, attrs: { 'aria-hidden': true } }, [h('div', { ref: 'title' }, this.$slots.default)]);\n },\n data: function data() {\n return {};\n },\n\n props: {\n title: {\n type: String,\n default: ''\n },\n triggers: {\n type: [String, Array],\n default: 'hover focus'\n },\n placement: {\n type: String,\n default: 'top'\n }\n },\n methods: {\n createToolpop: function createToolpop() {\n // getTarget is in toolpop mixin\n var target = this.getTarget();\n if (target) {\n this._toolpop = new ToolTip(target, this.getConfig(), this.$root);\n } else {\n this._toolpop = null;\n warn(\"b-tooltip: 'target' element not found!\");\n }\n return this._toolpop;\n }\n }\n};","import Toggle from './toggle';\nimport Modal from './modal';\nimport Scrollspy from './scrollspy';\nimport Tooltip from './tooltip';\nimport Popover from './popover';\n\nexport { Toggle, Modal, Scrollspy, Tooltip, Popover };","import bScrollspy from './scrollspy';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bScrollspy: bScrollspy\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\n/*\n * ScrollSpy directive v-b-scrollspy\n */\n\nimport ScrollSpy from './scrollspy.class';\nimport { keys } from '../../utils/object';\n\nvar inBrowser = typeof window !== 'undefined';\nvar isServer = !inBrowser;\n\n// Key we use to store our Instance\nvar BVSS = '__BV_ScrollSpy__';\n\n// Generate config from bindings\n/* istanbul ignore next: not easy to test */\nfunction makeConfig(binding) {\n var config = {};\n\n // If Argument, assume element ID\n if (binding.arg) {\n // Element ID specified as arg. We must pre-pend #\n config.element = '#' + binding.arg;\n }\n\n // Process modifiers\n keys(binding.modifiers).forEach(function (mod) {\n if (/^\\d+$/.test(mod)) {\n // Offest value\n config.offset = parseInt(mod, 10);\n } else if (/^(auto|position|offset)$/.test(mod)) {\n // Offset method\n config.method = mod;\n }\n });\n\n // Process value\n if (typeof binding.value === 'string') {\n // Value is a CSS ID or selector\n config.element = binding.value;\n } else if (typeof binding.value === 'number') {\n // Value is offset\n config.offset = Math.round(binding.value);\n } else if (_typeof(binding.value) === 'object') {\n // Value is config object\n // Filter the object based on our supported config options\n keys(binding.value).filter(function (k) {\n return Boolean(ScrollSpy.DefaultType[k]);\n }).forEach(function (k) {\n config[k] = binding.value[k];\n });\n }\n\n return config;\n}\n\n/* istanbul ignore next: not easy to test */\nfunction addBVSS(el, binding, vnode) {\n if (isServer) {\n return;\n }\n var cfg = makeConfig(binding);\n if (!el[BVSS]) {\n el[BVSS] = new ScrollSpy(el, cfg, vnode.context.$root);\n } else {\n el[BVSS].updateConfig(cfg, vnode.context.$root);\n }\n return el[BVSS];\n}\n\n/* istanbul ignore next: not easy to test */\nfunction removeBVSS(el) {\n if (el[BVSS]) {\n el[BVSS].dispose();\n el[BVSS] = null;\n }\n}\n\n/*\n * Export our directive\n */\n\n/* istanbul ignore next: not easy to test */\nexport default {\n bind: function bind(el, binding, vnode) {\n addBVSS(el, binding, vnode);\n },\n inserted: function inserted(el, binding, vnode) {\n addBVSS(el, binding, vnode);\n },\n update: function update(el, binding, vnode) {\n addBVSS(el, binding, vnode);\n },\n componentUpdated: function componentUpdated(el, binding, vnode) {\n addBVSS(el, binding, vnode);\n },\n unbind: function unbind(el) {\n if (isServer) {\n return;\n }\n // Remove scroll event listener on scrollElId\n removeBVSS(el);\n }\n};","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; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/*\n * ScrollSpy class definition\n */\n\nimport { assign } from '../../utils/object';\nimport observeDom from '../../utils/observe-dom';\nimport warn from '../../utils/warn';\nimport { isElement, isVisible, closest, matches, getBCR, offset, position, selectAll, select, hasClass, addClass, removeClass, getAttr, eventOn, eventOff } from '../../utils/dom';\n\n/*\n * Constants / Defaults\n */\n\nvar NAME = 'v-b-scrollspy';\nvar ACTIVATE_EVENT = 'bv::scrollspy::activate';\n\nvar Default = {\n element: 'body',\n offset: 10,\n method: 'auto',\n throttle: 75\n};\n\nvar DefaultType = {\n element: '(string|element|component)',\n offset: 'number',\n method: 'string',\n throttle: 'number'\n};\n\nvar ClassName = {\n DROPDOWN_ITEM: 'dropdown-item',\n ACTIVE: 'active'\n};\n\nvar Selector = {\n ACTIVE: '.active',\n NAV_LIST_GROUP: '.nav, .list-group',\n NAV_LINKS: '.nav-link',\n NAV_ITEMS: '.nav-item',\n LIST_ITEMS: '.list-group-item',\n DROPDOWN: '.dropdown, .dropup',\n DROPDOWN_ITEMS: '.dropdown-item',\n DROPDOWN_TOGGLE: '.dropdown-toggle'\n};\n\nvar OffsetMethod = {\n OFFSET: 'offset',\n POSITION: 'position'\n\n // HREFs must start with # but can be === '#', or start with '#/' or '#!' (which can be router links)\n};var HREF_REGEX = /^#[^/!]+/;\n\n// Transition Events\nvar TransitionEndEvents = ['webkitTransitionEnd', 'transitionend', 'otransitionend', 'oTransitionEnd'];\n\n/*\n * Utility Methods\n */\n\n// Better var type detection\n/* istanbul ignore next: not easy to test */\nfunction toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-zA-Z]+)/)[1].toLowerCase();\n}\n\n// Check config properties for expected types\n/* istanbul ignore next: not easy to test */\nfunction typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && isElement(value) ? 'element' : toType(value);\n // handle Vue instances\n valueType = value && value._isVue ? 'component' : valueType;\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n warn(componentName + ': Option \"' + property + '\" provided type \"' + valueType + '\", but expected type \"' + expectedTypes + '\"');\n }\n }\n }\n}\n\n/*\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n/* istanbul ignore next: not easy to test */\n\nvar ScrollSpy = function () {\n function ScrollSpy(element, config, $root) {\n _classCallCheck(this, ScrollSpy);\n\n // The element we activate links in\n this.$el = element;\n this.$scroller = null;\n this.$selector = [Selector.NAV_LINKS, Selector.LIST_ITEMS, Selector.DROPDOWN_ITEMS].join(',');\n this.$offsets = [];\n this.$targets = [];\n this.$activeTarget = null;\n this.$scrollHeight = 0;\n this.$resizeTimeout = null;\n this.$obs_scroller = null;\n this.$obs_targets = null;\n this.$root = $root || null;\n this.$config = null;\n\n this.updateConfig(config);\n }\n\n _createClass(ScrollSpy, [{\n key: 'updateConfig',\n value: function updateConfig(config, $root) {\n if (this.$scroller) {\n // Just in case out scroll element has changed\n this.unlisten();\n this.$scroller = null;\n }\n var cfg = assign({}, this.constructor.Default, config);\n if ($root) {\n this.$root = $root;\n }\n typeCheckConfig(this.constructor.Name, cfg, this.constructor.DefaultType);\n this.$config = cfg;\n\n if (this.$root) {\n var self = this;\n this.$root.$nextTick(function () {\n self.listen();\n });\n } else {\n this.listen();\n }\n }\n }, {\n key: 'dispose',\n value: function dispose() {\n this.unlisten();\n clearTimeout(this.$resizeTimeout);\n this.$resizeTimeout = null;\n this.$el = null;\n this.$config = null;\n this.$scroller = null;\n this.$selector = null;\n this.$offsets = null;\n this.$targets = null;\n this.$activeTarget = null;\n this.$scrollHeight = null;\n }\n }, {\n key: 'listen',\n value: function listen() {\n var _this = this;\n\n var scroller = this.getScroller();\n if (scroller && scroller.tagName !== 'BODY') {\n eventOn(scroller, 'scroll', this);\n }\n eventOn(window, 'scroll', this);\n eventOn(window, 'resize', this);\n eventOn(window, 'orientationchange', this);\n TransitionEndEvents.forEach(function (evtName) {\n eventOn(window, evtName, _this);\n });\n this.setObservers(true);\n // Scedule a refresh\n this.handleEvent('refresh');\n }\n }, {\n key: 'unlisten',\n value: function unlisten() {\n var _this2 = this;\n\n var scroller = this.getScroller();\n this.setObservers(false);\n if (scroller && scroller.tagName !== 'BODY') {\n eventOff(scroller, 'scroll', this);\n }\n eventOff(window, 'scroll', this);\n eventOff(window, 'resize', this);\n eventOff(window, 'orientationchange', this);\n TransitionEndEvents.forEach(function (evtName) {\n eventOff(window, evtName, _this2);\n });\n }\n }, {\n key: 'setObservers',\n value: function setObservers(on) {\n var _this3 = this;\n\n // We observe both the scroller for content changes, and the target links\n if (this.$obs_scroller) {\n this.$obs_scroller.disconnect();\n this.$obs_scroller = null;\n }\n if (this.$obs_targets) {\n this.$obs_targets.disconnect();\n this.$obs_targets = null;\n }\n if (on) {\n this.$obs_targets = observeDom(this.$el, function () {\n _this3.handleEvent('mutation');\n }, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['href']\n });\n this.$obs_scroller = observeDom(this.getScroller(), function () {\n _this3.handleEvent('mutation');\n }, {\n subtree: true,\n childList: true,\n characterData: true,\n attributes: true,\n attributeFilter: ['id', 'style', 'class']\n });\n }\n }\n\n // general event handler\n\n }, {\n key: 'handleEvent',\n value: function handleEvent(evt) {\n var type = typeof evt === 'string' ? evt : evt.type;\n\n var self = this;\n function resizeThrottle() {\n if (!self.$resizeTimeout) {\n self.$resizeTimeout = setTimeout(function () {\n self.refresh();\n self.process();\n self.$resizeTimeout = null;\n }, self.$config.throttle);\n }\n }\n\n if (type === 'scroll') {\n if (!this.$obs_scroller) {\n // Just in case we are added to the DOM before the scroll target is\n // We re-instantiate our listeners, just in case\n this.listen();\n }\n this.process();\n } else if (/(resize|orientationchange|mutation|refresh)/.test(type)) {\n // Postpone these events by throttle time\n resizeThrottle();\n }\n }\n\n // Refresh the list of target links on the element we are applied to\n\n }, {\n key: 'refresh',\n value: function refresh() {\n var _this4 = this;\n\n var scroller = this.getScroller();\n if (!scroller) {\n return;\n }\n var autoMethod = scroller !== scroller.window ? OffsetMethod.POSITION : OffsetMethod.OFFSET;\n var method = this.$config.method === 'auto' ? autoMethod : this.$config.method;\n var methodFn = method === OffsetMethod.POSITION ? position : offset;\n var offsetBase = method === OffsetMethod.POSITION ? this.getScrollTop() : 0;\n\n this.$offsets = [];\n this.$targets = [];\n\n this.$scrollHeight = this.getScrollHeight();\n\n // Find all the unique link href's\n selectAll(this.$selector, this.$el).map(function (link) {\n return getAttr(link, 'href');\n }).filter(function (href) {\n return HREF_REGEX.test(href || '');\n }).map(function (href) {\n var el = select(href, scroller);\n if (isVisible(el)) {\n return {\n offset: parseInt(methodFn(el).top, 10) + offsetBase,\n target: href\n };\n }\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a.offset - b.offset;\n }).reduce(function (memo, item) {\n // record only unique targets/offfsets\n if (!memo[item.target]) {\n _this4.$offsets.push(item.offset);\n _this4.$targets.push(item.target);\n memo[item.target] = true;\n }\n return memo;\n }, {});\n\n return this;\n }\n\n // Handle activating/clearing\n\n }, {\n key: 'process',\n value: function process() {\n var scrollTop = this.getScrollTop() + this.$config.offset;\n var scrollHeight = this.getScrollHeight();\n var maxScroll = this.$config.offset + scrollHeight - this.getOffsetHeight();\n\n if (this.$scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this.$targets[this.$targets.length - 1];\n if (this.$activeTarget !== target) {\n this.activate(target);\n }\n return;\n }\n\n if (this.$activeTarget && scrollTop < this.$offsets[0] && this.$offsets[0] > 0) {\n this.$activeTarget = null;\n this.clear();\n return;\n }\n\n for (var i = this.$offsets.length; i--;) {\n var isActiveTarget = this.$activeTarget !== this.$targets[i] && scrollTop >= this.$offsets[i] && (typeof this.$offsets[i + 1] === 'undefined' || scrollTop < this.$offsets[i + 1]);\n\n if (isActiveTarget) {\n this.activate(this.$targets[i]);\n }\n }\n }\n }, {\n key: 'getScroller',\n value: function getScroller() {\n if (this.$scroller) {\n return this.$scroller;\n }\n var scroller = this.$config.element;\n if (!scroller) {\n return null;\n } else if (isElement(scroller.$el)) {\n scroller = scroller.$el;\n } else if (typeof scroller === 'string') {\n scroller = select(scroller);\n }\n if (!scroller) {\n return null;\n }\n this.$scroller = scroller.tagName === 'BODY' ? window : scroller;\n return this.$scroller;\n }\n }, {\n key: 'getScrollTop',\n value: function getScrollTop() {\n var scroller = this.getScroller();\n return scroller === window ? scroller.pageYOffset : scroller.scrollTop;\n }\n }, {\n key: 'getScrollHeight',\n value: function getScrollHeight() {\n return this.getScroller().scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n }\n }, {\n key: 'getOffsetHeight',\n value: function getOffsetHeight() {\n var scroller = this.getScroller();\n return scroller === window ? window.innerHeight : getBCR(scroller).height;\n }\n }, {\n key: 'activate',\n value: function activate(target) {\n var _this5 = this;\n\n this.$activeTarget = target;\n this.clear();\n\n // Grab the list of target links (<a href=\"{$target}\">)\n var links = selectAll(this.$selector.split(',').map(function (selector) {\n return selector + '[href=\"' + target + '\"]';\n }).join(','), this.$el);\n\n links.forEach(function (link) {\n if (hasClass(link, ClassName.DROPDOWN_ITEM)) {\n // This is a dropdown item, so find the .dropdown-toggle and set it's state\n var dropdown = closest(Selector.DROPDOWN, link);\n if (dropdown) {\n _this5.setActiveState(select(Selector.DROPDOWN_TOGGLE, dropdown), true);\n }\n // Also set this link's state\n _this5.setActiveState(link, true);\n } else {\n // Set triggered link as active\n _this5.setActiveState(link, true);\n if (matches(link.parentElement, Selector.NAV_ITEMS)) {\n // Handle nav-link inside nav-item, and set nav-item active\n _this5.setActiveState(link.parentElement, true);\n }\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n var el = link;\n while (el) {\n el = closest(Selector.NAV_LIST_GROUP, el);\n var sibling = el ? el.previousElementSibling : null;\n if (matches(sibling, Selector.NAV_LINKS + ', ' + Selector.LIST_ITEMS)) {\n _this5.setActiveState(sibling, true);\n }\n // Handle special case where nav-link is inside a nav-item\n if (matches(sibling, Selector.NAV_ITEMS)) {\n _this5.setActiveState(select(Selector.NAV_LINKS, sibling), true);\n // Add active state to nav-item as well\n _this5.setActiveState(sibling, true);\n }\n }\n }\n });\n\n // Signal event to via $root, passing ID of activaed target and reference to array of links\n if (links && links.length > 0 && this.$root) {\n this.$root.$emit(ACTIVATE_EVENT, target, links);\n }\n }\n }, {\n key: 'clear',\n value: function clear() {\n var _this6 = this;\n\n selectAll(this.$selector + ', ' + Selector.NAV_ITEMS, this.$el).filter(function (el) {\n return hasClass(el, ClassName.ACTIVE);\n }).forEach(function (el) {\n return _this6.setActiveState(el, false);\n });\n }\n }, {\n key: 'setActiveState',\n value: function setActiveState(el, active) {\n if (!el) {\n return;\n }\n if (active) {\n addClass(el, ClassName.ACTIVE);\n } else {\n removeClass(el, ClassName.ACTIVE);\n }\n }\n }], [{\n key: 'Name',\n get: function get() {\n return NAME;\n }\n }, {\n key: 'Default',\n get: function get() {\n return Default;\n }\n }, {\n key: 'DefaultType',\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return ScrollSpy;\n}();\n\nexport default ScrollSpy;","import bTooltip from './tooltip';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bTooltip: bTooltip\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport Popper from 'popper.js';\nimport ToolTip from '../../utils/tooltip.class';\nimport { assign, keys } from '../../utils/object';\nimport warn from '../../utils/warn';\n\nvar inBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n// Key which we use to store tooltip object on element\nvar BVTT = '__BV_ToolTip__';\n\n// Valid event triggers\nvar validTriggers = {\n 'focus': true,\n 'hover': true,\n 'click': true,\n 'blur': true\n\n // Build a ToolTip config based on bindings (if any)\n // Arguments and modifiers take precedence over passed value config object\n /* istanbul ignore next: not easy to test */\n};function parseBindings(bindings) {\n // We start out with a blank config\n var config = {};\n\n // Process bindings.value\n if (typeof bindings.value === 'string') {\n // Value is tooltip content (html optionally supported)\n config.title = bindings.value;\n } else if (typeof bindings.value === 'function') {\n // Title generator function\n config.title = bindings.value;\n } else if (_typeof(bindings.value) === 'object') {\n // Value is config object, so merge\n config = assign(bindings.value);\n }\n\n // If Argument, assume element ID of container element\n if (bindings.arg) {\n // Element ID specified as arg. We must prepend '#' to become a CSS selector\n config.container = '#' + bindings.arg;\n }\n\n // Process modifiers\n keys(bindings.modifiers).forEach(function (mod) {\n if (/^html$/.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (/^nofade$/.test(mod)) {\n // no animation\n config.animation = false;\n } else if (/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)) {\n // placement of tooltip\n config.placement = mod;\n } else if (/^(window|viewport)$/.test(mod)) {\n // bounday of tooltip\n config.boundary = mod;\n } else if (/^d\\d+$/.test(mod)) {\n // delay value\n var delay = parseInt(mod.slice(1), 10) || 0;\n if (delay) {\n config.delay = delay;\n }\n } else if (/^o-?\\d+$/.test(mod)) {\n // offset value. Negative allowed\n var offset = parseInt(mod.slice(1), 10) || 0;\n if (offset) {\n config.offset = offset;\n }\n }\n });\n\n // Special handling of event trigger modifiers Trigger is a space separated list\n var selectedTriggers = {};\n\n // parse current config object trigger\n var triggers = typeof config.trigger === 'string' ? config.trigger.trim().split(/\\s+/) : [];\n triggers.forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n });\n\n // Parse Modifiers for triggers\n keys(validTriggers).forEach(function (trigger) {\n if (bindings.modifiers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n });\n\n // Sanitize triggers\n config.trigger = keys(selectedTriggers).join(' ');\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to 'focus'\n config.trigger = 'focus';\n }\n if (!config.trigger) {\n // remove trigger config\n delete config.trigger;\n }\n\n return config;\n}\n\n//\n// Add or Update tooltip on our element\n//\n/* istanbul ignore next: not easy to test */\nfunction applyBVTT(el, bindings, vnode) {\n if (!inBrowser) {\n return;\n }\n if (!Popper) {\n // Popper is required for tooltips to work\n warn('v-b-tooltip: Popper.js is required for tooltips to work');\n return;\n }\n if (el[BVTT]) {\n el[BVTT].updateConfig(parseBindings(bindings));\n } else {\n el[BVTT] = new ToolTip(el, parseBindings(bindings), vnode.context.$root);\n }\n}\n\n//\n// Remove tooltip on our element\n//\n/* istanbul ignore next: not easy to test */\nfunction removeBVTT(el) {\n if (!inBrowser) {\n return;\n }\n if (el[BVTT]) {\n el[BVTT].destroy();\n el[BVTT] = null;\n delete el[BVTT];\n }\n}\n\n/*\n * Export our directive\n */\n/* istanbul ignore next: not easy to test */\nexport default {\n bind: function bind(el, bindings, vnode) {\n applyBVTT(el, bindings, vnode);\n },\n inserted: function inserted(el, bindings, vnode) {\n applyBVTT(el, bindings, vnode);\n },\n update: function update(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyBVTT(el, bindings, vnode);\n }\n },\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyBVTT(el, bindings, vnode);\n }\n },\n unbind: function unbind(el) {\n removeBVTT(el);\n }\n};","import bPopover from './popover';\nimport { registerDirectives, vueUse } from '../../utils/plugins';\n\nvar directives = {\n bPopover: bPopover\n};\n\nvar VuePlugin = {\n install: function install(Vue) {\n registerDirectives(Vue, directives);\n }\n};\n\nvueUse(VuePlugin);\n\nexport default VuePlugin;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport Popper from 'popper.js';\nimport PopOver from '../../utils/popover.class';\nimport { assign, keys } from '../../utils/object';\nimport warn from '../../utils/warn';\n\nvar inBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n// Key which we use to store tooltip object on element\nvar BVPO = '__BV_PopOver__';\n\n// Valid event triggers\nvar validTriggers = {\n 'focus': true,\n 'hover': true,\n 'click': true,\n 'blur': true\n\n // Build a PopOver config based on bindings (if any)\n // Arguments and modifiers take precedence over pased value config object\n /* istanbul ignore next: not easy to test */\n};function parseBindings(bindings) {\n // We start out with a blank config\n var config = {};\n\n // Process bindings.value\n if (typeof bindings.value === 'string') {\n // Value is popover content (html optionally supported)\n config.content = bindings.value;\n } else if (typeof bindings.value === 'function') {\n // Content generator function\n config.content = bindings.value;\n } else if (_typeof(bindings.value) === 'object') {\n // Value is config object, so merge\n config = assign(bindings.value);\n }\n\n // If Argument, assume element ID of container element\n if (bindings.arg) {\n // Element ID specified as arg. We must prepend '#' to become a CSS selector\n config.container = '#' + bindings.arg;\n }\n\n // Process modifiers\n keys(bindings.modifiers).forEach(function (mod) {\n if (/^html$/.test(mod)) {\n // Title allows HTML\n config.html = true;\n } else if (/^nofade$/.test(mod)) {\n // no animation\n config.animation = false;\n } else if (/^(auto|top(left|right)?|bottom(left|right)?|left(top|bottom)?|right(top|bottom)?)$/.test(mod)) {\n // placement of popover\n config.placement = mod;\n } else if (/^(window|viewport)$/.test(mod)) {\n // bounday of popover\n config.boundary = mod;\n } else if (/^d\\d+$/.test(mod)) {\n // delay value\n var delay = parseInt(mod.slice(1), 10) || 0;\n if (delay) {\n config.delay = delay;\n }\n } else if (/^o-?\\d+$/.test(mod)) {\n // offset value (negative allowed)\n var offset = parseInt(mod.slice(1), 10) || 0;\n if (offset) {\n config.offset = offset;\n }\n }\n });\n\n // Special handling of event trigger modifiers Trigger is a space separated list\n var selectedTriggers = {};\n\n // parse current config object trigger\n var triggers = typeof config.trigger === 'string' ? config.trigger.trim().split(/\\s+/) : [];\n triggers.forEach(function (trigger) {\n if (validTriggers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n });\n\n // Parse Modifiers for triggers\n keys(validTriggers).forEach(function (trigger) {\n if (bindings.modifiers[trigger]) {\n selectedTriggers[trigger] = true;\n }\n });\n\n // Sanitize triggers\n config.trigger = keys(selectedTriggers).join(' ');\n if (config.trigger === 'blur') {\n // Blur by itself is useless, so convert it to focus\n config.trigger = 'focus';\n }\n if (!config.trigger) {\n // remove trigger config\n delete config.trigger;\n }\n\n return config;\n}\n\n//\n// Add or Update popover on our element\n//\n/* istanbul ignore next: not easy to test */\nfunction applyBVPO(el, bindings, vnode) {\n if (!inBrowser) {\n return;\n }\n if (!Popper) {\n // Popper is required for tooltips to work\n warn('v-b-popover: Popper.js is required for popovers to work');\n return;\n }\n if (el[BVPO]) {\n el[BVPO].updateConfig(parseBindings(bindings));\n } else {\n el[BVPO] = new PopOver(el, parseBindings(bindings), vnode.context.$root);\n }\n};\n\n//\n// Remove popover on our element\n//\n/* istanbul ignore next */\nfunction removeBVPO(el) {\n if (!inBrowser) {\n return;\n }\n if (el[BVPO]) {\n el[BVPO].destroy();\n el[BVPO] = null;\n delete el[BVPO];\n }\n}\n\n/*\n * Export our directive\n */\n/* istanbul ignore next: not easy to test */\nexport default {\n bind: function bind(el, bindings, vnode) {\n applyBVPO(el, bindings, vnode);\n },\n inserted: function inserted(el, bindings, vnode) {\n applyBVPO(el, bindings, vnode);\n },\n update: function update(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyBVPO(el, bindings, vnode);\n }\n },\n componentUpdated: function componentUpdated(el, bindings, vnode) {\n if (bindings.value !== bindings.oldValue) {\n applyBVPO(el, bindings, vnode);\n }\n },\n unbind: function unbind(el) {\n removeBVPO(el);\n }\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../css-loader/index.js!./bootstrap.min.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1bb891f9\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../../css-loader/index.js!./bootstrap.min.css\", function() {\n var newContent = require(\"!!../../../css-loader/index.js!./bootstrap.min.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"/*!\\n * Bootstrap v4.1.1 (https://getbootstrap.com/)\\n * Copyright 2011-2018 The Bootstrap Authors\\n * Copyright 2011-2018 Twitter, Inc.\\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:transparent}@-ms-viewport{width:device-width}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex=\\\"-1\\\"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent;-webkit-text-decoration-skip:objects}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.2;color:inherit}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:\\\"\\\\2014 \\\\A0\\\"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;min-height:1px;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:none}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;max-width:100%;margin-bottom:1rem;background-color:transparent}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#212529;border-color:#32383e}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#212529}.table-dark td,.table-dark th,.table-dark thead th{border-color:#32383e}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:not([size]):not([multiple]){height:calc(2.25rem + 2px)}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm,.input-group-lg>.form-control-plaintext.form-control,.input-group-lg>.input-group-append>.form-control-plaintext.btn,.input-group-lg>.input-group-append>.form-control-plaintext.input-group-text,.input-group-lg>.input-group-prepend>.form-control-plaintext.btn,.input-group-lg>.input-group-prepend>.form-control-plaintext.input-group-text,.input-group-sm>.form-control-plaintext.form-control,.input-group-sm>.input-group-append>.form-control-plaintext.btn,.input-group-sm>.input-group-append>.form-control-plaintext.input-group-text,.input-group-sm>.input-group-prepend>.form-control-plaintext.btn,.input-group-sm>.input-group-prepend>.form-control-plaintext.input-group-text{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-sm>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-sm>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-sm>select.form-control:not([size]):not([multiple]),select.form-control-sm:not([size]):not([multiple]){height:calc(1.8125rem + 2px)}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-lg>.input-group-append>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-append>select.input-group-text:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.btn:not([size]):not([multiple]),.input-group-lg>.input-group-prepend>select.input-group-text:not([size]):not([multiple]),.input-group-lg>select.form-control:not([size]):not([multiple]),select.form-control-lg:not([size]):not([multiple]){height:calc(2.875rem + 2px)}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(40,167,69,.8);border-radius:.2rem}.custom-select.is-valid,.form-control.is-valid,.was-validated .custom-select:valid,.was-validated .form-control:valid{border-color:#28a745}.custom-select.is-valid:focus,.form-control.is-valid:focus,.was-validated .custom-select:valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{background-color:#71dd8a}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(40,167,69,.25)}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label::before,.was-validated .custom-file-input:valid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.5rem;margin-top:.1rem;font-size:.875rem;line-height:1;color:#fff;background-color:rgba(220,53,69,.8);border-radius:.2rem}.custom-select.is-invalid,.form-control.is-invalid,.was-validated .custom-select:invalid,.was-validated .form-control:invalid{border-color:#dc3545}.custom-select.is-invalid:focus,.form-control.is-invalid:focus,.was-validated .custom-select:invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{background-color:#efa2a9}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(220,53,69,.25)}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label::before,.was-validated .custom-file-input:invalid~.custom-file-label::before{border-color:inherit}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;text-align:center;white-space:nowrap;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media screen and (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:focus,.btn:hover{text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn:not(:disabled):not(.disabled).active,.btn:not(:disabled):not(.disabled):active{background-image:none}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-primary{color:#007bff;background-color:transparent;background-image:none;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;background-color:transparent;background-image:none;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;background-color:transparent;background-image:none;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;background-color:transparent;background-image:none;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;background-color:transparent;background-image:none;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;background-color:transparent;background-image:none;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;background-color:transparent;background-image:none;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;background-color:transparent;background-image:none;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;background-color:transparent}.btn-link:hover{color:#0056b3;text-decoration:underline;background-color:transparent;border-color:transparent}.btn-link.focus,.btn-link:focus{text-decoration:underline;border-color:transparent;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media screen and (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media screen and (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;width:0;height:0;margin-left:.255em;vertical-align:.255em;content:\\\"\\\"}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;width:0;height:0;margin-right:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:0 1 auto;flex:0 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group,.btn-group-vertical .btn+.btn,.btn-group-vertical .btn+.btn-group,.btn-group-vertical .btn-group+.btn,.btn-group-vertical .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical .btn,.btn-group-vertical .btn-group{width:100%}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file:focus,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:active~.custom-control-label::before{color:#fff;background-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:\\\"\\\";-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#dee2e6}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:\\\"\\\";background-repeat:no-repeat;background-position:center center;background-size:50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::before{background-color:#007bff}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\\\")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(2.25rem + 2px);padding:.375rem 1.75rem .375rem .75rem;line-height:1.5;color:#495057;vertical-align:middle;background:#fff url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E\\\") no-repeat right .75rem center;background-size:8px 10px;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:inset 0 1px 2px rgba(0,0,0,.075),0 0 5px rgba(128,189,255,.5)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size=\\\"1\\\"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{opacity:0}.custom-select-sm{height:calc(1.8125rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:75%}.custom-select-lg{height:calc(2.875rem + 2px);padding-top:.375rem;padding-bottom:.375rem;font-size:125%}.custom-file{position:relative;display:inline-block;width:100%;height:calc(2.25rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(2.25rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:focus~.custom-file-label::after{border-color:#80bdff}.custom-file-input:lang(en)~.custom-file-label::after{content:\\\"Browse\\\"}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(2.25rem + 2px);padding:.375rem .75rem;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:2.25rem;padding:.375rem .75rem;line-height:1.5;color:#495057;content:\\\"Browse\\\";background-color:#e9ecef;border-left:1px solid #ced4da;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;padding-left:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;-webkit-appearance:none;appearance:none}.custom-range::-webkit-slider-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;-moz-appearance:none;appearance:none}.custom-range::-moz-range-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;appearance:none}.custom-range::-ms-thumb:focus{outline:0;box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler:not(:disabled):not(.disabled){cursor:pointer}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:\\\"\\\";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E\\\")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:first-child .card-header,.card-group>.card:first-child .card-img-top{border-top-right-radius:0}.card-group>.card:first-child .card-footer,.card-group>.card:first-child .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:last-child{border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:last-child .card-header,.card-group>.card:last-child .card-img-top{border-top-left-radius:0}.card-group>.card:last-child .card-footer,.card-group>.card:last-child .card-img-bottom{border-bottom-left-radius:0}.card-group>.card:only-child{border-radius:.25rem}.card-group>.card:only-child .card-header,.card-group>.card:only-child .card-img-top{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card-group>.card:only-child .card-footer,.card-group>.card:only-child .card-img-bottom{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-group>.card:not(:first-child):not(:last-child):not(:only-child){border-radius:0}.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-footer,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-header,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-bottom,.card-group>.card:not(:first-child):not(:last-child):not(:only-child) .card-img-top{border-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion .card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion .card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion .card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion .card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:\\\"/\\\"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-link:not(:disabled):not(.disabled){cursor:pointer}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}.badge-primary[href]:focus,.badge-primary[href]:hover{color:#fff;text-decoration:none;background-color:#0062cc}.badge-secondary{color:#fff;background-color:#6c757d}.badge-secondary[href]:focus,.badge-secondary[href]:hover{color:#fff;text-decoration:none;background-color:#545b62}.badge-success{color:#fff;background-color:#28a745}.badge-success[href]:focus,.badge-success[href]:hover{color:#fff;text-decoration:none;background-color:#1e7e34}.badge-info{color:#fff;background-color:#17a2b8}.badge-info[href]:focus,.badge-info[href]:hover{color:#fff;text-decoration:none;background-color:#117a8b}.badge-warning{color:#212529;background-color:#ffc107}.badge-warning[href]:focus,.badge-warning[href]:hover{color:#212529;text-decoration:none;background-color:#d39e00}.badge-danger{color:#fff;background-color:#dc3545}.badge-danger[href]:focus,.badge-danger[href]:hover{color:#fff;text-decoration:none;background-color:#bd2130}.badge-light{color:#212529;background-color:#f8f9fa}.badge-light[href]:focus,.badge-light[href]:hover{color:#212529;text-decoration:none;background-color:#dae0e5}.badge-dark{color:#fff;background-color:#343a40}.badge-dark[href]:focus,.badge-dark[href]:hover{color:#fff;text-decoration:none;background-color:#1d2124}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media screen and (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:focus,.list-group-item:hover{z-index:1;text-decoration:none}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:focus,.close:hover{color:#000;text-decoration:none;opacity:.75}.close:not(:disabled):not(.disabled){cursor:pointer}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;outline:0}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-25%);transform:translate(0,-25%)}@media screen and (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:translate(0,0);transform:translate(0,0)}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - (.5rem * 2))}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem;border-bottom:1px solid #e9ecef;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #e9ecef}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-centered{min-height:calc(100% - (1.75rem * 2))}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg{max-width:800px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,\\\"Helvetica Neue\\\",Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:\\\"\\\";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top] .arrow,.bs-popover-top .arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::after,.bs-popover-top .arrow::before{border-width:.5rem .5rem 0}.bs-popover-auto[x-placement^=top] .arrow::before,.bs-popover-top .arrow::before{bottom:0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top] .arrow::after,.bs-popover-top .arrow::after{bottom:1px;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right] .arrow,.bs-popover-right .arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::after,.bs-popover-right .arrow::before{border-width:.5rem .5rem .5rem 0}.bs-popover-auto[x-placement^=right] .arrow::before,.bs-popover-right .arrow::before{left:0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right] .arrow::after,.bs-popover-right .arrow::after{left:1px;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom] .arrow,.bs-popover-bottom .arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::after,.bs-popover-bottom .arrow::before{border-width:0 .5rem .5rem .5rem}.bs-popover-auto[x-placement^=bottom] .arrow::before,.bs-popover-bottom .arrow::before{top:0;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom] .arrow::after,.bs-popover-bottom .arrow::after{top:1px;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:\\\"\\\";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left] .arrow,.bs-popover-left .arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::after,.bs-popover-left .arrow::before{border-width:.5rem 0 .5rem .5rem}.bs-popover-auto[x-placement^=left] .arrow::before,.bs-popover-left .arrow::before{right:0;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left] .arrow::after,.bs-popover-left .arrow::after{right:1px;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;color:inherit;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-item{position:relative;display:none;-ms-flex-align:center;align-items:center;width:100%;transition:-webkit-transform .6s ease;transition:transform .6s ease;transition:transform .6s ease,-webkit-transform .6s ease;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}@media screen and (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.carousel-item-next,.carousel-item-prev{position:absolute;top:0}.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-item-next.carousel-item-left,.carousel-item-prev.carousel-item-right{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.active.carousel-item-right,.carousel-item-next{-webkit-transform:translateX(100%);transform:translateX(100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-right,.carousel-item-next{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translateX(-100%);transform:translateX(-100%)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.active.carousel-item-left,.carousel-item-prev{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.carousel-fade .carousel-item{opacity:0;transition-duration:.6s;transition-property:opacity}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{opacity:0}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translateX(0);transform:translateX(0)}@supports ((-webkit-transform-style:preserve-3d) or (transform-style:preserve-3d)){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-prev,.carousel-fade .carousel-item-next,.carousel-fade .carousel-item-prev,.carousel-fade .carousel-item.active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:transparent no-repeat center center;background-size:100% 100%}.carousel-control-prev-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E\\\")}.carousel-control-next-icon{background-image:url(\\\"data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E\\\")}.carousel-indicators{position:absolute;right:0;bottom:10px;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{position:relative;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:rgba(255,255,255,.5)}.carousel-indicators li::before{position:absolute;top:-10px;left:0;display:inline-block;width:100%;height:10px;content:\\\"\\\"}.carousel-indicators li::after{position:absolute;bottom:-10px;left:0;display:inline-block;width:100%;height:10px;content:\\\"\\\"}.carousel-indicators .active{background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-circle{border-radius:50%!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:\\\"\\\"}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:\\\"\\\"}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0062cc!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#545b62!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#1e7e34!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#117a8b!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#d39e00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#bd2130!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#dae0e5!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#1d2124!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:\\\" (\\\" attr(title) \\\")\\\"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}}\", \"\"]);\n\n// exports\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../css-loader/index.js!./bootstrap-vue.min.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"316608a2\", content, false, {});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n module.hot.accept(\"!!../../css-loader/index.js!./bootstrap-vue.min.css\", function() {\n var newContent = require(\"!!../../css-loader/index.js!./bootstrap-vue.min.css\");\n if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n update(newContent);\n });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","exports = module.exports = require(\"../../css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".input-group>.input-group-append:last-child>.b-dropdown:not(:last-child):not(.dropdown-toggle)>.btn,.input-group>.input-group-append:not(:last-child)>.b-dropdown>.btn,.input-group>.input-group-prepend>.b-dropdown>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.b-dropdown>.btn,.input-group>.input-group-prepend:first-child>.b-dropdown:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.b-dropdown>.btn{border-top-left-radius:0;border-bottom-left-radius:0}input.form-control[type=range],input.form-control[type=color]{height:2.25rem}input.form-control.form-control-sm[type=range],input.form-control.form-control-sm[type=color]{height:1.9375rem}input.form-control.form-control-lg[type=range],input.form-control.form-control-lg[type=color]{height:3rem}input.form-control[type=color]{padding:.25rem}input.form-control.form-control-sm[type=color]{padding:.125rem}table.b-table.b-table-fixed{table-layout:fixed}table.b-table[aria-busy=false]{opacity:1}table.b-table[aria-busy=true]{opacity:.6}table.b-table>tfoot>tr>th,table.b-table>thead>tr>th{position:relative}table.b-table>tfoot>tr>th.sorting,table.b-table>thead>tr>th.sorting{padding-right:1.5em;cursor:pointer}table.b-table>tfoot>tr>th.sorting::after,table.b-table>tfoot>tr>th.sorting::before,table.b-table>thead>tr>th.sorting::after,table.b-table>thead>tr>th.sorting::before{position:absolute;bottom:0;display:block;opacity:.4;padding-bottom:inherit;font-size:inherit;line-height:180%}table.b-table>tfoot>tr>th.sorting::before,table.b-table>thead>tr>th.sorting::before{right:.75em;content:'\\\\2191'}table.b-table>tfoot>tr>th.sorting::after,table.b-table>thead>tr>th.sorting::after{right:.25em;content:'\\\\2193'}table.b-table>tfoot>tr>th.sorting_asc::after,table.b-table>tfoot>tr>th.sorting_desc::before,table.b-table>thead>tr>th.sorting_asc::after,table.b-table>thead>tr>th.sorting_desc::before{opacity:1}table.b-table.b-table-stacked{width:100%}table.b-table.b-table-stacked,table.b-table.b-table-stacked>caption,table.b-table.b-table-stacked>tbody,table.b-table.b-table-stacked>tbody>tr,table.b-table.b-table-stacked>tbody>tr>td,table.b-table.b-table-stacked>tbody>tr>th{display:block}table.b-table.b-table-stacked>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked>tbody>tr.b-table-top-row,table.b-table.b-table-stacked>tfoot,table.b-table.b-table-stacked>thead{display:none}table.b-table.b-table-stacked>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}@media all and (max-width:575.99px){table.b-table.b-table-stacked-sm{width:100%}table.b-table.b-table-stacked-sm,table.b-table.b-table-stacked-sm>caption,table.b-table.b-table-stacked-sm>tbody,table.b-table.b-table-stacked-sm>tbody>tr,table.b-table.b-table-stacked-sm>tbody>tr>td,table.b-table.b-table-stacked-sm>tbody>tr>th{display:block}table.b-table.b-table-stacked-sm>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked-sm>tbody>tr.b-table-top-row,table.b-table.b-table-stacked-sm>tfoot,table.b-table.b-table-stacked-sm>thead{display:none}table.b-table.b-table-stacked-sm>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked-sm>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked-sm>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}}@media all and (max-width:767.99px){table.b-table.b-table-stacked-md{width:100%}table.b-table.b-table-stacked-md,table.b-table.b-table-stacked-md>caption,table.b-table.b-table-stacked-md>tbody,table.b-table.b-table-stacked-md>tbody>tr,table.b-table.b-table-stacked-md>tbody>tr>td,table.b-table.b-table-stacked-md>tbody>tr>th{display:block}table.b-table.b-table-stacked-md>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked-md>tbody>tr.b-table-top-row,table.b-table.b-table-stacked-md>tfoot,table.b-table.b-table-stacked-md>thead{display:none}table.b-table.b-table-stacked-md>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked-md>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked-md>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}}@media all and (max-width:991.99px){table.b-table.b-table-stacked-lg{width:100%}table.b-table.b-table-stacked-lg,table.b-table.b-table-stacked-lg>caption,table.b-table.b-table-stacked-lg>tbody,table.b-table.b-table-stacked-lg>tbody>tr,table.b-table.b-table-stacked-lg>tbody>tr>td,table.b-table.b-table-stacked-lg>tbody>tr>th{display:block}table.b-table.b-table-stacked-lg>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked-lg>tbody>tr.b-table-top-row,table.b-table.b-table-stacked-lg>tfoot,table.b-table.b-table-stacked-lg>thead{display:none}table.b-table.b-table-stacked-lg>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked-lg>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked-lg>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}}@media all and (max-width:1199.99px){table.b-table.b-table-stacked-xl{width:100%}table.b-table.b-table-stacked-xl,table.b-table.b-table-stacked-xl>caption,table.b-table.b-table-stacked-xl>tbody,table.b-table.b-table-stacked-xl>tbody>tr,table.b-table.b-table-stacked-xl>tbody>tr>td,table.b-table.b-table-stacked-xl>tbody>tr>th{display:block}table.b-table.b-table-stacked-xl>tbody>tr.b-table-bottom-row,table.b-table.b-table-stacked-xl>tbody>tr.b-table-top-row,table.b-table.b-table-stacked-xl>tfoot,table.b-table.b-table-stacked-xl>thead{display:none}table.b-table.b-table-stacked-xl>tbody>tr>:first-child{border-top-width:.4rem}table.b-table.b-table-stacked-xl>tbody>tr>[data-label]{display:grid;grid-template-columns:40% auto;grid-gap:.25rem 1rem}table.b-table.b-table-stacked-xl>tbody>tr>[data-label]::before{content:attr(data-label);display:inline;text-align:right;overflow-wrap:break-word;font-weight:700;font-style:normal}}table.b-table>tbody>tr.b-table-details>td{border-top:none}\", \"\"]);\n\n// exports\n"],"sourceRoot":""} \ No newline at end of file