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: '&times;' };\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: '&laquo;'\n  },\n  labelPrevPage: {\n    type: String,\n    default: 'Goto previous page'\n  },\n  prevText: {\n    type: String,\n    default: '&lsaquo;'\n  },\n  labelNextPage: {\n    type: String,\n    default: 'Goto next page'\n  },\n  nextText: {\n    type: String,\n    default: '&rsaquo;'\n  },\n  labelLastPage: {\n    type: String,\n    default: 'Goto last page'\n  },\n  lastText: {\n    type: String,\n    default: '&raquo;'\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: '&hellip;'\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: '&times;' };\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: '&laquo;'\n  },\n  labelPrevPage: {\n    type: String,\n    default: 'Goto previous page'\n  },\n  prevText: {\n    type: String,\n    default: '&lsaquo;'\n  },\n  labelNextPage: {\n    type: String,\n    default: 'Goto next page'\n  },\n  nextText: {\n    type: String,\n    default: '&rsaquo;'\n  },\n  labelLastPage: {\n    type: String,\n    default: 'Goto last page'\n  },\n  lastText: {\n    type: String,\n    default: '&raquo;'\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: '&hellip;'\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